From 0439a444a0f9071f1632e7909f7392a805cbd161 Mon Sep 17 00:00:00 2001 From: Agustincito Date: Thu, 27 Mar 2025 20:09:37 -0300 Subject: [PATCH 01/12] Add cross chain registrar --- contracts/Op/ICrossDomainMessanger.sol | 7 +++ ...perChainAccessControlDefaultAdminRules.sol | 25 +++++++++ .../Op/mocks/MockCrossDomainMessanger.sol | 37 ++++++++++++ contracts/Registrars/EnsRegistrar.sol | 13 +++-- .../Registrars/SuperChainSourceRegistrar.sol | 56 +++++++++++++++++++ .../Registrars/SuperChainTargetRegistrar.sol | 43 ++++++++++++++ ignition/modules/ProtocolModule.ts | 8 +-- ignition/modules/SateliteModule.ts | 9 +++ .../modules/registrars/EnsRegistrarModule.ts | 11 ++-- .../SuperChainTargetRegistrarModule.ts | 23 ++++++++ ignition/parameters/localhost.json5 | 7 +++ ignition/parameters/optimism-sepolia.json5 | 6 ++ ignition/parameters/optimism.json5 | 6 +- ignition/parameters/sepolia.json5 | 3 + package.json | 12 ++-- test/Registrars/EnsRegistrar.test.ts | 40 +++++++++---- 16 files changed, 270 insertions(+), 36 deletions(-) create mode 100644 contracts/Op/ICrossDomainMessanger.sol create mode 100644 contracts/Op/SuperChainAccessControlDefaultAdminRules.sol create mode 100644 contracts/Op/mocks/MockCrossDomainMessanger.sol create mode 100644 contracts/Registrars/SuperChainSourceRegistrar.sol create mode 100644 contracts/Registrars/SuperChainTargetRegistrar.sol create mode 100644 ignition/modules/SateliteModule.ts create mode 100644 ignition/modules/registrars/SuperChainTargetRegistrarModule.ts create mode 100644 ignition/parameters/optimism-sepolia.json5 diff --git a/contracts/Op/ICrossDomainMessanger.sol b/contracts/Op/ICrossDomainMessanger.sol new file mode 100644 index 0000000..795b333 --- /dev/null +++ b/contracts/Op/ICrossDomainMessanger.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.28; + +interface ICrossDomainMessanger { + function sendMessage(address target, bytes calldata _message, int32 gasLimit) external; + function xDomainMessageSender() external view returns (address); +} \ No newline at end of file diff --git a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol new file mode 100644 index 0000000..3b97616 --- /dev/null +++ b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.28; + +import {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol'; +import {ICrossDomainMessanger} from './ICrossDomainMessanger.sol'; + +contract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRules { + + ICrossDomainMessanger public immutable crossDomainMessanger; + + modifier onlyCrossChainRole(bytes32 role) { + require(msg.sender == address(crossDomainMessanger), 'SuperChainRegistrar: sender must be the OP Bridge'); + require(hasRole(role, crossDomainMessanger.xDomainMessageSender()), 'SuperChainRegistrar: cross domain sender must be an admin to grant'); + _; + } + + constructor( + address _crossDomainMessangerAddress, + uint48 initialDelay, + address initialDefaultAdmin + ) AccessControlDefaultAdminRules(initialDelay, initialDefaultAdmin) { + crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessangerAddress); + } + +} \ No newline at end of file diff --git a/contracts/Op/mocks/MockCrossDomainMessanger.sol b/contracts/Op/mocks/MockCrossDomainMessanger.sol new file mode 100644 index 0000000..f24ffe7 --- /dev/null +++ b/contracts/Op/mocks/MockCrossDomainMessanger.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.28; + +import {ICrossDomainMessanger} from "../ICrossDomainMessanger.sol"; + +contract MockCrossDomainMessanger is ICrossDomainMessanger { + address private xDomainMessageSenderAddress; + + bool public shouldSendMessage; + + event MessageSent(address target, bytes message, int32 gasLimit); + + constructor(address _xDomainMessageSenderAddress, bool _shouldSendMessage) { + xDomainMessageSenderAddress = _xDomainMessageSenderAddress; + shouldSendMessage = _shouldSendMessage; + } + + function sendMessage(address target, bytes calldata _message, int32 gasLimit) external { + if(shouldSendMessage) { + (bool success, ) = target.call{gas: uint256(uint32(gasLimit))}(_message); + require(success, "Call failed"); + } + emit MessageSent(target, _message, gasLimit); + } + + function xDomainMessageSender() external view override returns (address) { + return xDomainMessageSenderAddress; + } + + function setXDomainMessageSenderAddress(address _xDomainMessageSenderAddress) external { + xDomainMessageSenderAddress = _xDomainMessageSenderAddress; + } + + function setShouldSendMessage(bool _shouldSendMessage) external { + shouldSendMessage = _shouldSendMessage; + } +} \ No newline at end of file diff --git a/contracts/Registrars/EnsRegistrar.sol b/contracts/Registrars/EnsRegistrar.sol index 80feff5..8444124 100644 --- a/contracts/Registrars/EnsRegistrar.sol +++ b/contracts/Registrars/EnsRegistrar.sol @@ -4,6 +4,7 @@ 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 {SuperChainSourceRegistrar} from './SuperChainSourceRegistrar.sol'; /** * @title EnsRegistrar @@ -13,9 +14,8 @@ import {IVerifier} from '../Verifiers/IVerifier.sol'; * by verifying the domain ownership through the ENS contract. * @custom:security-contact security@sci.domains */ -contract EnsRegistrar { +contract EnsRegistrar is SuperChainSourceRegistrar { ENS public immutable ensRegistry; - ISciRegistry public immutable registry; /** * @dev Thrown when the `account` is not the owner of the ENS `domainhash`. @@ -34,14 +34,15 @@ contract EnsRegistrar { _; } + // TODO: Add new variables and comments + // TODO: Remove address in the name of the variables /** * @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) { + constructor(address _ensRegistryAddress, address _sciRegistryAddress, address _crossChainDomainMessagnger) SuperChainSourceRegistrar(_crossChainDomainMessagnger, _sciRegistryAddress) { ensRegistry = ENS(_ensRegistryAddress); - registry = ISciRegistry(_sciRegistryAddress); } /** @@ -57,7 +58,7 @@ contract EnsRegistrar { address owner, bytes32 domainHash ) external onlyEnsOwner(owner, domainHash) { - registry.registerDomain(owner, domainHash); + _registerDomainCrossChain(owner, domainHash); } /** @@ -73,7 +74,7 @@ contract EnsRegistrar { bytes32 domainHash, IVerifier verifier ) external onlyEnsOwner(msg.sender, domainHash) { - registry.registerDomainWithVerifier(msg.sender, domainHash, verifier); + _registerDomainWithVerifierCrossChain(msg.sender, domainHash, verifier); } /** diff --git a/contracts/Registrars/SuperChainSourceRegistrar.sol b/contracts/Registrars/SuperChainSourceRegistrar.sol new file mode 100644 index 0000000..6cc1acd --- /dev/null +++ b/contracts/Registrars/SuperChainSourceRegistrar.sol @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: AGPL-3.0 +pragma solidity 0.8.28; + +import {ISciRegistry} from '../SciRegistry/ISciRegistry.sol'; +import {IVerifier} from '../Verifiers/IVerifier.sol'; +import {ICrossDomainMessanger} from '../Op//ICrossDomainMessanger.sol'; + +abstract contract SuperChainSourceRegistrar { + + ICrossDomainMessanger public immutable crossDomainMessanger; + address public targetRegistrar; + + // TODO: Verify gas limit + int32 public constant REGISTER_DOMAIN_GAS_LIMIT = 1000000; + int32 public constant REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT = 1500000; + + constructor( + address _crossDomainMessanger, + address _targetRegistrar + ) { + crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessanger); + targetRegistrar = _targetRegistrar; + } + + function _registerDomainCrossChain( + address owner, + bytes32 domainHash + ) internal { + crossDomainMessanger.sendMessage( + targetRegistrar, + abi.encodeWithSelector( + ISciRegistry.registerDomain.selector, + owner, + domainHash + ), + REGISTER_DOMAIN_GAS_LIMIT + ); + } + + function _registerDomainWithVerifierCrossChain( + address owner, + bytes32 domainHash, + IVerifier verifier + ) internal { + crossDomainMessanger.sendMessage( + targetRegistrar, + abi.encodeWithSelector( + ISciRegistry.registerDomainWithVerifier.selector, + owner, + domainHash, + verifier + ), + REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT + ); + } +} diff --git a/contracts/Registrars/SuperChainTargetRegistrar.sol b/contracts/Registrars/SuperChainTargetRegistrar.sol new file mode 100644 index 0000000..4a99892 --- /dev/null +++ b/contracts/Registrars/SuperChainTargetRegistrar.sol @@ -0,0 +1,43 @@ +// 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'; +import {SuperChainAccessControlDefaultAdminRules} from '../Op/SuperChainAccessControlDefaultAdminRules.sol'; + +contract SuperChainTargetRegistrar is SuperChainAccessControlDefaultAdminRules { + // 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 _crossDomainMessangerAddress TODO. + * @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information. + */ + constructor( + address _sciRegistryAddress, + address _crossDomainMessangerAddress, + uint48 initialDelay + ) SuperChainAccessControlDefaultAdminRules(_crossDomainMessangerAddress, initialDelay, msg.sender) { + registry = ISciRegistry(_sciRegistryAddress); + } + + function registerDomain( + address owner, + bytes32 domainHash + ) external onlyCrossChainRole(REGISTER_DOMAIN_ROLE) { + registry.registerDomain(owner, domainHash); + } + + function registerDomainWithVerifier( + address owner, + bytes32 domainHash, + IVerifier verifier + ) external onlyCrossChainRole(REGISTER_DOMAIN_ROLE) { + registry.registerDomainWithVerifier(owner, domainHash, verifier); + } +} diff --git a/ignition/modules/ProtocolModule.ts b/ignition/modules/ProtocolModule.ts index 0b02a49..192d704 100644 --- a/ignition/modules/ProtocolModule.ts +++ b/ignition/modules/ProtocolModule.ts @@ -1,17 +1,13 @@ import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; import sciRegistryModule from './registry/SciRegistryModule'; -import ensRegistrarModule from './registrars/EnsRegistrarModule'; +import superChainTargetRegistrarModule from './registrars/SuperchainTargetRegistrarModule'; import publicListVerifierModule from './verifiers/PublicListVerifierModule'; import sciModule from './sci/SciModule'; import sciRegistrarModule from './registrars/SciRegistrarModule'; -/** - * 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(superChainTargetRegistrarModule); m.useModule(sciRegistrarModule); m.useModule(publicListVerifierModule); m.useModule(sciModule); diff --git a/ignition/modules/SateliteModule.ts b/ignition/modules/SateliteModule.ts new file mode 100644 index 0000000..f06b88c --- /dev/null +++ b/ignition/modules/SateliteModule.ts @@ -0,0 +1,9 @@ +import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; +import ensRegistrarModule from './registrars/EnsRegistrarModule'; + +export const SateliteModule = buildModule('SateliteModule', (m) => { + m.useModule(ensRegistrarModule); + return {}; +}); + +export default SateliteModule; diff --git a/ignition/modules/registrars/EnsRegistrarModule.ts b/ignition/modules/registrars/EnsRegistrarModule.ts index d87170e..b2bfea4 100644 --- a/ignition/modules/registrars/EnsRegistrarModule.ts +++ b/ignition/modules/registrars/EnsRegistrarModule.ts @@ -4,20 +4,17 @@ 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 l1CrossDomainMessangerAddress = m.getParameter('l1CrossDomainMessangerAddress'); + const sciRegistryAddress = m.getParameter('sciRegistryAddress'); - const ensRegistrar = m.contract('EnsRegistrar', [ensRegistry, sciRegistry]); - - m.call(sciRegistry, 'grantRole', [m.staticCall(sciRegistry, 'REGISTRAR_ROLE'), ensRegistrar]); + const ensRegistrar = m.contract('EnsRegistrar', [ensRegistry, sciRegistryAddress, l1CrossDomainMessangerAddress]); - return { ensRegistrar, sciRegistry }; + return { ensRegistrar }; }); export type EnsRegistrarModuleReturnType = Promise<{ ensRegistrar: EnsRegistrar; - sciRegistry: SciRegistry; }>; export default EnsRegistrarModule; diff --git a/ignition/modules/registrars/SuperChainTargetRegistrarModule.ts b/ignition/modules/registrars/SuperChainTargetRegistrarModule.ts new file mode 100644 index 0000000..61621d5 --- /dev/null +++ b/ignition/modules/registrars/SuperChainTargetRegistrarModule.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 SuperChainTargetRegistrarModule = buildModule('SuperChainTargetRegistrar', (m: IgnitionModuleBuilder) => { + const { sciRegistry } = m.useModule(SciRegistryModule); + + const l2CrossDomainMessangerAddress = m.getParameter('l2CrossDomainMessangerAddress'); + + const superChainTargetRegistrar = m.contract('SuperChainTargetRegistrar', [sciRegistry, l2CrossDomainMessangerAddress, 0]); + + m.call(sciRegistry, 'grantRole', [m.staticCall(sciRegistry, 'REGISTRAR_ROLE'), superChainTargetRegistrar]); + + return { superChainTargetRegistrar, sciRegistry }; +}); + +export type EnsRegistrarModuleReturnType = Promise<{ + ensRegistrar: EnsRegistrar; + sciRegistry: SciRegistry; +}>; + +export default SuperChainTargetRegistrarModule; diff --git a/ignition/parameters/localhost.json5 b/ignition/parameters/localhost.json5 index fdca2eb..def9eb0 100644 --- a/ignition/parameters/localhost.json5 +++ b/ignition/parameters/localhost.json5 @@ -2,5 +2,12 @@ EnsRegistrar: { // The address of the ENS Registry after running setup-localhost.ts in a new node ensRegistryAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', + // The address of the Mock + l1CrossDomainMessangerAddress: '', + sciRegistryAddress: '', + }, + SuperChainTargetRegistrar: { + // The address of the Mock + l2CrossDomainMessangerAddress: '', }, } diff --git a/ignition/parameters/optimism-sepolia.json5 b/ignition/parameters/optimism-sepolia.json5 new file mode 100644 index 0000000..3b9cf70 --- /dev/null +++ b/ignition/parameters/optimism-sepolia.json5 @@ -0,0 +1,6 @@ +{ + SuperChainTargetRegistrar: { + // https://docs.optimism.io/superchain/addresses + l2CrossDomainMessangerAddress: '0x4200000000000000000000000000000000000007', + }, +} diff --git a/ignition/parameters/optimism.json5 b/ignition/parameters/optimism.json5 index dc3744d..3b9cf70 100644 --- a/ignition/parameters/optimism.json5 +++ b/ignition/parameters/optimism.json5 @@ -1,6 +1,6 @@ { - EnsRegistrar: { - // Optimism doesn't have an ENS Registry - ensRegistryAddress: '0x0000000000000000000000000000000000000000', + SuperChainTargetRegistrar: { + // https://docs.optimism.io/superchain/addresses + l2CrossDomainMessangerAddress: '0x4200000000000000000000000000000000000007', }, } diff --git a/ignition/parameters/sepolia.json5 b/ignition/parameters/sepolia.json5 index b399fa3..f7b942b 100644 --- a/ignition/parameters/sepolia.json5 +++ b/ignition/parameters/sepolia.json5 @@ -2,5 +2,8 @@ EnsRegistrar: { // https://docs.ens.domains/learn/deployments ensRegistryAddress: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e', + l1CrossDomainMessangerAddress: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + // TODO: Complete once the protocol is deployed + sciRegistryAddress: '', }, } diff --git a/package.json b/package.json index 023e6b7..e50c47e 100644 --- a/package.json +++ b/package.json @@ -38,11 +38,15 @@ "lint": "hardhat check; prettier --write .", "dev": "corepack 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:protocol": "hardhat ignition deploy ignition/modules/ProtocolModule.ts", + "deploy:satelite": "hardhat ignition deploy ignition/modules/SateliteModule.ts", "save:deployments": "hardhat run scripts/build-deployment-address.ts", - "deploy:sepolia": "corepack pnpm run deploy --verify --network sepolia --parameters ignition/parameters/sepolia.json5", - "deploy:optimsim": "corepack pnpm run deploy --verify --network optimism --parameters ignition/parameters/optimism.json5", - "deploy:localhost": "corepack pnpm run deploy --network localhost --parameters ignition/parameters/sepolia.json5" + "deploy:sepolia": "corepack pnpm run deploy:satelite --verify --network sepolia --parameters ignition/parameters/sepolia.json5", + "deploy:ethereum": "corepack pnpm run deploy:satelite --verify --network ethereum --parameters ignition/parameters/ethereum.json5", + "deploy:optimsim": "corepack pnpm run deploy:protocol --verify --network optimism --parameters ignition/parameters/optimism.json5", + "deploy:sepolia-optimsim": "corepack pnpm run deploy:protocol --verify --network optimism-sepolia --parameters ignition/parameters/optimism-sepolia.json5", + "deploy:localhost:protocol": "corepack pnpm run deploy:protocol --network localhost --parameters ignition/parameters/sepolia.json5", + "deploy:localhost:satelite": "corepack pnpm run deploy:protocol --network localhost --parameters ignition/parameters/sepolia.json5" }, "engines": { "node": ">=20", diff --git a/test/Registrars/EnsRegistrar.test.ts b/test/Registrars/EnsRegistrar.test.ts index 9ebfb7d..d273c71 100644 --- a/test/Registrars/EnsRegistrar.test.ts +++ b/test/Registrars/EnsRegistrar.test.ts @@ -1,3 +1,4 @@ +import { MockCrossDomainMessanger } from './../../types/contracts/Op/mocks/MockCrossDomainMessanger'; import { expect } from 'chai'; import { ethers, ignition } from 'hardhat'; import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; @@ -7,6 +8,7 @@ import { EnsRegistrarModule, EnsRegistrarModuleReturnType, } from '../../ignition/modules/registrars/EnsRegistrarModule'; +import SciRegistrarModule, { SciRegistrarModuleReturnType } from '../../ignition/modules/registrars/SciRegistrarModule'; const NON_EXISTING_DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; @@ -14,17 +16,23 @@ const DOMAIN_HASH = '0xfcec0ff58c10be0e399a3a51186968513cc3a4c572a51d688ff338b3f describe('EnsRegistrar', function () { let owner: HardhatEthersSigner; + let xDomainMessageSender: HardhatEthersSigner; let addresses: HardhatEthersSigner[]; let ensRegistrar: EnsRegistrar; + let mockCrossDomainMessanger: MockCrossDomainMessanger; let sciRegistry: SciRegistry; beforeEach(async () => { - [owner, ...addresses] = await ethers.getSigners(); + [owner, xDomainMessageSender, ...addresses] = await ethers.getSigners(); // ENS Contracts Deployment const EnsFactory = await ethers.getContractFactory('ENSRegistry'); const ens = await EnsFactory.deploy(); + // ENS Contracts Deployment + const MockCrossDomainMessangerFactory = await ethers.getContractFactory('MockCrossDomainMessanger'); + mockCrossDomainMessanger = await MockCrossDomainMessangerFactory.deploy(xDomainMessageSender, false); + // Set ENS nodes for testing await ens.setSubnodeOwner( '0x0000000000000000000000000000000000000000000000000000000000000000', @@ -34,10 +42,14 @@ describe('EnsRegistrar', function () { await ens.setSubnodeOwner(namehash('eth'), keccak256(toUtf8Bytes('a')), owner.address); // SCI Contracts - ({ ensRegistrar, sciRegistry } = await (ignition.deploy(EnsRegistrarModule, { + ({ sciRegistry } = await (ignition.deploy(SciRegistrarModule, {}) as unknown as SciRegistrarModuleReturnType)); + + ({ ensRegistrar } = await (ignition.deploy(EnsRegistrarModule, { parameters: { EnsRegistrar: { ensRegistryAddress: ens.target as string, + l1CrossDomainMessangerAddress: mockCrossDomainMessanger.target as string, + sciRegistryAddress: sciRegistry.target as string, }, }, }) as unknown as EnsRegistrarModuleReturnType)); @@ -72,18 +84,26 @@ describe('EnsRegistrar', function () { }); 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; + await expect(ensRegistrar.registerDomain(owner, DOMAIN_HASH)).to.emit( + mockCrossDomainMessanger, + 'MessageSent' + ).withArgs( + sciRegistry.target, + sciRegistry.interface.encodeFunctionData("registerDomain", [owner.address, DOMAIN_HASH]), + ensRegistrar.REGISTER_DOMAIN_GAS_LIMIT() + ); }); 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); + await expect(ensRegistrar.connect(owner).registerDomainWithVerifier(DOMAIN_HASH, verifier)).to.emit( + mockCrossDomainMessanger, + 'MessageSent' + ).withArgs( + sciRegistry.target, + sciRegistry.interface.encodeFunctionData("registerDomainWithVerifier", [owner.address, DOMAIN_HASH, verifier]), + ensRegistrar.REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT() + ); }); }); }); From d9cac50e7e248bfdf19af57944ac44b913b10fb2 Mon Sep 17 00:00:00 2001 From: Agustincito Date: Fri, 28 Mar 2025 11:36:47 -0300 Subject: [PATCH 02/12] Coverage 100% --- .solcover.js | 5 + ...perChainAccessControlDefaultAdminRules.sol | 12 ++- .../Op/mocks/MockCrossDomainMessanger.sol | 16 +++- .../SuperChainTargetRegistrarModule.ts | 6 +- package.json | 2 +- test/Registrars/EnsRegistrar.test.ts | 24 ++--- test/Registrars/SciRegistrar.test.ts | 21 +++-- .../SuperChainTargetRegistrar.test.ts | 91 +++++++++++++++++++ 8 files changed, 149 insertions(+), 28 deletions(-) create mode 100644 .solcover.js create mode 100644 test/Registrars/SuperChainTargetRegistrar.test.ts diff --git a/.solcover.js b/.solcover.js new file mode 100644 index 0000000..5feff14 --- /dev/null +++ b/.solcover.js @@ -0,0 +1,5 @@ +module.exports = { + skipFiles: [ + "Op/mocks/", + ] +}; \ No newline at end of file diff --git a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol index 3b97616..357cf39 100644 --- a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol +++ b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol @@ -8,9 +8,17 @@ contract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRu ICrossDomainMessanger public immutable crossDomainMessanger; + error InvalidMessageSender(address account); + modifier onlyCrossChainRole(bytes32 role) { - require(msg.sender == address(crossDomainMessanger), 'SuperChainRegistrar: sender must be the OP Bridge'); - require(hasRole(role, crossDomainMessanger.xDomainMessageSender()), 'SuperChainRegistrar: cross domain sender must be an admin to grant'); + if(msg.sender != address(crossDomainMessanger)) { + revert InvalidMessageSender(msg.sender); + } + + address account = crossDomainMessanger.xDomainMessageSender(); + if (!hasRole(role, account)) { + revert AccessControlUnauthorizedAccount(account, role); + } _; } diff --git a/contracts/Op/mocks/MockCrossDomainMessanger.sol b/contracts/Op/mocks/MockCrossDomainMessanger.sol index f24ffe7..53ee5a9 100644 --- a/contracts/Op/mocks/MockCrossDomainMessanger.sol +++ b/contracts/Op/mocks/MockCrossDomainMessanger.sol @@ -17,8 +17,20 @@ contract MockCrossDomainMessanger is ICrossDomainMessanger { function sendMessage(address target, bytes calldata _message, int32 gasLimit) external { if(shouldSendMessage) { - (bool success, ) = target.call{gas: uint256(uint32(gasLimit))}(_message); - require(success, "Call failed"); + (bool success, bytes memory result) = target.call{gas: uint256(uint32(gasLimit))}(_message); + + if (!success) { + // Bubble up the original revert reason if present + if (result.length > 0) { + // The easiest way to bubble the reason is using assembly + assembly { + let returndata_size := mload(result) + revert(add(result, 32), returndata_size) + } + } else { + revert("Call failed without reason"); + } + } } emit MessageSent(target, _message, gasLimit); } diff --git a/ignition/modules/registrars/SuperChainTargetRegistrarModule.ts b/ignition/modules/registrars/SuperChainTargetRegistrarModule.ts index 61621d5..ebf4e57 100644 --- a/ignition/modules/registrars/SuperChainTargetRegistrarModule.ts +++ b/ignition/modules/registrars/SuperChainTargetRegistrarModule.ts @@ -1,6 +1,6 @@ import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; import { SciRegistryModule } from '../registry/SciRegistryModule'; -import { EnsRegistrar, SciRegistry } from '../../../types'; +import { EnsRegistrar, SciRegistry, SuperChainTargetRegistrar } from '../../../types'; import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'; export const SuperChainTargetRegistrarModule = buildModule('SuperChainTargetRegistrar', (m: IgnitionModuleBuilder) => { @@ -15,8 +15,8 @@ export const SuperChainTargetRegistrarModule = buildModule('SuperChainTargetRegi return { superChainTargetRegistrar, sciRegistry }; }); -export type EnsRegistrarModuleReturnType = Promise<{ - ensRegistrar: EnsRegistrar; +export type SuperChainTargetRegistrarModuleReturnType = Promise<{ + superChainTargetRegistrar: SuperChainTargetRegistrar; sciRegistry: SciRegistry; }>; diff --git a/package.json b/package.json index e50c47e..b4b874f 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "node": "hardhat node", "clean": "rm -rf artifacts cache types dist", "test": "hardhat test", - "test:cov": "hardhat coverage", + "test:cov": " hardhat clean && hardhat coverage", "lint:fail": "hardhat check; prettier --check .", "lint": "hardhat check; prettier --write .", "dev": "corepack pnpm setup:localhost; pnpm deploy:localhost", diff --git a/test/Registrars/EnsRegistrar.test.ts b/test/Registrars/EnsRegistrar.test.ts index d273c71..d39129a 100644 --- a/test/Registrars/EnsRegistrar.test.ts +++ b/test/Registrars/EnsRegistrar.test.ts @@ -3,12 +3,12 @@ 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 { EnsRegistrar, SuperChainTargetRegistrar__factory } from '../../types'; import { EnsRegistrarModule, EnsRegistrarModuleReturnType, } from '../../ignition/modules/registrars/EnsRegistrarModule'; -import SciRegistrarModule, { SciRegistrarModuleReturnType } from '../../ignition/modules/registrars/SciRegistrarModule'; +import { SuperChainTargetRegistrarInterface } from '../../types/contracts/Registrars/SuperChainTargetRegistrar'; const NON_EXISTING_DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; @@ -17,13 +17,14 @@ const DOMAIN_HASH = '0xfcec0ff58c10be0e399a3a51186968513cc3a4c572a51d688ff338b3f describe('EnsRegistrar', function () { let owner: HardhatEthersSigner; let xDomainMessageSender: HardhatEthersSigner; + let superChainTargetRegistrar: HardhatEthersSigner; + let superChainTargetRegistrarInterface: SuperChainTargetRegistrarInterface; let addresses: HardhatEthersSigner[]; let ensRegistrar: EnsRegistrar; let mockCrossDomainMessanger: MockCrossDomainMessanger; - let sciRegistry: SciRegistry; beforeEach(async () => { - [owner, xDomainMessageSender, ...addresses] = await ethers.getSigners(); + [owner, superChainTargetRegistrar, xDomainMessageSender, ...addresses] = await ethers.getSigners(); // ENS Contracts Deployment const EnsFactory = await ethers.getContractFactory('ENSRegistry'); @@ -33,6 +34,8 @@ describe('EnsRegistrar', function () { const MockCrossDomainMessangerFactory = await ethers.getContractFactory('MockCrossDomainMessanger'); mockCrossDomainMessanger = await MockCrossDomainMessangerFactory.deploy(xDomainMessageSender, false); + superChainTargetRegistrarInterface = SuperChainTargetRegistrar__factory.createInterface(); + // Set ENS nodes for testing await ens.setSubnodeOwner( '0x0000000000000000000000000000000000000000000000000000000000000000', @@ -41,15 +44,12 @@ describe('EnsRegistrar', function () { ); await ens.setSubnodeOwner(namehash('eth'), keccak256(toUtf8Bytes('a')), owner.address); - // SCI Contracts - ({ sciRegistry } = await (ignition.deploy(SciRegistrarModule, {}) as unknown as SciRegistrarModuleReturnType)); - ({ ensRegistrar } = await (ignition.deploy(EnsRegistrarModule, { parameters: { EnsRegistrar: { ensRegistryAddress: ens.target as string, l1CrossDomainMessangerAddress: mockCrossDomainMessanger.target as string, - sciRegistryAddress: sciRegistry.target as string, + sciRegistryAddress: superChainTargetRegistrar.address, }, }, }) as unknown as EnsRegistrarModuleReturnType)); @@ -88,8 +88,8 @@ describe('EnsRegistrar', function () { mockCrossDomainMessanger, 'MessageSent' ).withArgs( - sciRegistry.target, - sciRegistry.interface.encodeFunctionData("registerDomain", [owner.address, DOMAIN_HASH]), + superChainTargetRegistrar.address, + superChainTargetRegistrarInterface.encodeFunctionData("registerDomain", [owner.address, DOMAIN_HASH]), ensRegistrar.REGISTER_DOMAIN_GAS_LIMIT() ); }); @@ -100,8 +100,8 @@ describe('EnsRegistrar', function () { mockCrossDomainMessanger, 'MessageSent' ).withArgs( - sciRegistry.target, - sciRegistry.interface.encodeFunctionData("registerDomainWithVerifier", [owner.address, DOMAIN_HASH, verifier]), + superChainTargetRegistrar.address, + superChainTargetRegistrarInterface.encodeFunctionData("registerDomainWithVerifier", [owner.address, DOMAIN_HASH, verifier]), ensRegistrar.REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT() ); }); diff --git a/test/Registrars/SciRegistrar.test.ts b/test/Registrars/SciRegistrar.test.ts index 5141b36..806ef88 100644 --- a/test/Registrars/SciRegistrar.test.ts +++ b/test/Registrars/SciRegistrar.test.ts @@ -10,12 +10,13 @@ const DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b0 describe('SciRegistrar', function () { let user: HardhatEthersSigner; + let domainOwner: HardhatEthersSigner; let addresses: HardhatEthersSigner[]; let sciRegistrar: SciRegistrar; let sciRegistry: SciRegistry; beforeEach(async () => { - [user, ...addresses] = await ethers.getSigners(); + [user, domainOwner, ...addresses] = await ethers.getSigners(); ({ sciRegistrar, sciRegistry } = await (ignition.deploy( SciRegistrarModule, @@ -25,26 +26,30 @@ describe('SciRegistrar', function () { 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); + .registerDomainWithVerifier(domainOwner.address, DOMAIN_HASH, verifier); + + expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, domainOwner.address)).to.be.true; + expect(await sciRegistry.domainVerifier(DOMAIN_HASH)).to.equal(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); + it('It should register a domain if it has the REGISTER_DOMAIN_ROLE role', async function () { + await sciRegistrar.connect(user).registerDomain(domainOwner.address, DOMAIN_HASH); - expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, user)).to.be.true; + expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, domainOwner.address)).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)) + + await expect(sciRegistrar.connect(user).registerDomain(domainOwner.address, DOMAIN_HASH)) .to.revertedWithCustomError(sciRegistrar, 'AccessControlUnauthorizedAccount') .withArgs(user.address, await sciRegistrar.REGISTER_DOMAIN_ROLE()); - await expect(sciRegistrar.registerDomainWithVerifier(user, DOMAIN_HASH, ethers.ZeroAddress)) + await expect(sciRegistrar.registerDomainWithVerifier(domainOwner.address, DOMAIN_HASH, ethers.ZeroAddress)) .to.revertedWithCustomError(sciRegistrar, 'AccessControlUnauthorizedAccount') .withArgs(user.address, await sciRegistrar.REGISTER_DOMAIN_ROLE()); }); diff --git a/test/Registrars/SuperChainTargetRegistrar.test.ts b/test/Registrars/SuperChainTargetRegistrar.test.ts new file mode 100644 index 0000000..f40a878 --- /dev/null +++ b/test/Registrars/SuperChainTargetRegistrar.test.ts @@ -0,0 +1,91 @@ +import { expect } from 'chai'; +import { ethers, ignition } from 'hardhat'; +import { SuperChainTargetRegistrar, SciRegistry, MockCrossDomainMessanger } from '../../types'; +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; +import SuperChainTargetRegistrarModule, { SuperChainTargetRegistrarModuleReturnType } from '../../ignition/modules/registrars/SuperchainTargetRegistrarModule'; +const DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; + +const GAS_FOR_DOMAIN = 1000000; +const GAS_FOR_DOMAIN_AND_VERIFIER = 1500000; + +describe('SuperChainTargetRegistrar', function () { + let user: HardhatEthersSigner; + let domainOwner: HardhatEthersSigner; + let xDomainMessageSender: HardhatEthersSigner; + let addresses: HardhatEthersSigner[]; + let superChainTargetRegistrar: SuperChainTargetRegistrar; + let sciRegistry: SciRegistry; + let mockCrossDomainMessanger: MockCrossDomainMessanger; + + beforeEach(async () => { + [user, domainOwner, xDomainMessageSender, ...addresses] = await ethers.getSigners(); + + const MockCrossDomainMessangerFactory = await ethers.getContractFactory('MockCrossDomainMessanger'); + mockCrossDomainMessanger = await MockCrossDomainMessangerFactory.deploy(xDomainMessageSender, true); + + ({ superChainTargetRegistrar, sciRegistry } = await (ignition.deploy( + SuperChainTargetRegistrarModule, {parameters: { + SuperChainTargetRegistrar: { + l2CrossDomainMessangerAddress: mockCrossDomainMessanger.target as string, + }, + },} + ) as unknown as SuperChainTargetRegistrarModuleReturnType)); + + await superChainTargetRegistrar.grantRole(await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE(), xDomainMessageSender.address); + }); + + describe('Register domains', function () { + it('It should register a domain with verifier if it is called by the crossDomainMessanger and the xDomainMessageSender has the REGISTER_DOMAIN_ROLE role', async function () { + const verifier = addresses[0].address; + + await mockCrossDomainMessanger.sendMessage( + superChainTargetRegistrar.target, + superChainTargetRegistrar.interface.encodeFunctionData("registerDomainWithVerifier", [domainOwner.address, DOMAIN_HASH, verifier]), + GAS_FOR_DOMAIN + ); + + expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, domainOwner.address)).to.be.true; + expect(await sciRegistry.domainVerifier(DOMAIN_HASH)).to.equal(verifier); + }); + + it('It should register a domain if it has the REGISTER_DOMAIN_ROLE role', async function () { + await mockCrossDomainMessanger.sendMessage( + superChainTargetRegistrar.target, + superChainTargetRegistrar.interface.encodeFunctionData("registerDomain", [domainOwner.address, DOMAIN_HASH]), + GAS_FOR_DOMAIN_AND_VERIFIER + ); + + expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, domainOwner.address)).to.be.true; + }); + + it("It should reveret with AccessControlUnauthorizedAccount if it doesn't have the REGISTER_DOMAIN_ROLE role", async function () { + await superChainTargetRegistrar.revokeRole(await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE(), xDomainMessageSender.address); + + await expect(mockCrossDomainMessanger.sendMessage( + superChainTargetRegistrar.target, + superChainTargetRegistrar.interface.encodeFunctionData("registerDomain", [domainOwner.address, DOMAIN_HASH]), + GAS_FOR_DOMAIN + )) + .to.revertedWithCustomError(superChainTargetRegistrar, 'AccessControlUnauthorizedAccount') + .withArgs(xDomainMessageSender.address, await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE()); + + await expect(mockCrossDomainMessanger.sendMessage( + superChainTargetRegistrar.target, + superChainTargetRegistrar.interface.encodeFunctionData("registerDomainWithVerifier", [domainOwner.address, DOMAIN_HASH, ethers.ZeroAddress]), + GAS_FOR_DOMAIN + )) + .to.revertedWithCustomError(superChainTargetRegistrar, 'AccessControlUnauthorizedAccount') + .withArgs(xDomainMessageSender.address, await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE()); + }); + + it("It should reveret with InvalidMessageSender if the message sender is not the CrossDomainMessanger", async function () { + await expect(superChainTargetRegistrar.connect(user).registerDomain(domainOwner.address, DOMAIN_HASH)) + .to.revertedWithCustomError(superChainTargetRegistrar, 'InvalidMessageSender') + .withArgs(user.address); + + await expect(superChainTargetRegistrar.connect(user).registerDomainWithVerifier(domainOwner.address, DOMAIN_HASH, ethers.ZeroAddress)) + .to.revertedWithCustomError(superChainTargetRegistrar, 'InvalidMessageSender') + .withArgs(user.address); + }); + }); +}); From 21e75d9ad98bceffd72d4bfe4d3cb0e9959e4c41 Mon Sep 17 00:00:00 2001 From: Agustincito Date: Sat, 29 Mar 2025 21:53:27 -0300 Subject: [PATCH 03/12] Fix lint --- .solcover.js | 6 +- .solhintignore | 1 + contracts/Op/ICrossDomainMessanger.sol | 2 +- ...perChainAccessControlDefaultAdminRules.sol | 8 +- ...anger.sol => MockCrossDomainMessenger.sol} | 14 ++- contracts/Registrars/EnsRegistrar.sol | 7 +- .../Registrars/SuperChainSourceRegistrar.sol | 19 +-- .../Registrars/SuperChainTargetRegistrar.sol | 9 +- contracts/SciRegistry/SciRegistry.sol | 7 +- .../modules/registrars/EnsRegistrarModule.ts | 6 +- .../SuperChainTargetRegistrarModule.ts | 24 ++-- ignition/parameters/localhost.json5 | 11 +- package.json | 4 +- scripts/setup-localhost.ts | 12 +- test/Registrars/EnsRegistrar.test.ts | 55 +++++---- test/Registrars/SciRegistrar.test.ts | 11 +- .../SuperChainTargetRegistrar.test.ts | 116 ++++++++++++------ 17 files changed, 195 insertions(+), 117 deletions(-) create mode 100644 .solhintignore rename contracts/Op/mocks/{MockCrossDomainMessanger.sol => MockCrossDomainMessenger.sol} (83%) diff --git a/.solcover.js b/.solcover.js index 5feff14..7a09555 100644 --- a/.solcover.js +++ b/.solcover.js @@ -1,5 +1,3 @@ module.exports = { - skipFiles: [ - "Op/mocks/", - ] -}; \ No newline at end of file + skipFiles: ['Op/mocks/'], +}; diff --git a/.solhintignore b/.solhintignore new file mode 100644 index 0000000..04006e8 --- /dev/null +++ b/.solhintignore @@ -0,0 +1 @@ +contracts/Op/mocks/MockCrossDomainMessenger.sol diff --git a/contracts/Op/ICrossDomainMessanger.sol b/contracts/Op/ICrossDomainMessanger.sol index 795b333..78b8caf 100644 --- a/contracts/Op/ICrossDomainMessanger.sol +++ b/contracts/Op/ICrossDomainMessanger.sol @@ -4,4 +4,4 @@ pragma solidity 0.8.28; interface ICrossDomainMessanger { function sendMessage(address target, bytes calldata _message, int32 gasLimit) external; function xDomainMessageSender() external view returns (address); -} \ No newline at end of file +} diff --git a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol index 357cf39..4e2c8fd 100644 --- a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol +++ b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol @@ -5,16 +5,15 @@ import {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/ext import {ICrossDomainMessanger} from './ICrossDomainMessanger.sol'; contract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRules { - ICrossDomainMessanger public immutable crossDomainMessanger; error InvalidMessageSender(address account); modifier onlyCrossChainRole(bytes32 role) { - if(msg.sender != address(crossDomainMessanger)) { + if (msg.sender != address(crossDomainMessanger)) { revert InvalidMessageSender(msg.sender); } - + address account = crossDomainMessanger.xDomainMessageSender(); if (!hasRole(role, account)) { revert AccessControlUnauthorizedAccount(account, role); @@ -29,5 +28,4 @@ contract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRu ) AccessControlDefaultAdminRules(initialDelay, initialDefaultAdmin) { crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessangerAddress); } - -} \ No newline at end of file +} diff --git a/contracts/Op/mocks/MockCrossDomainMessanger.sol b/contracts/Op/mocks/MockCrossDomainMessenger.sol similarity index 83% rename from contracts/Op/mocks/MockCrossDomainMessanger.sol rename to contracts/Op/mocks/MockCrossDomainMessenger.sol index 53ee5a9..7f050ce 100644 --- a/contracts/Op/mocks/MockCrossDomainMessanger.sol +++ b/contracts/Op/mocks/MockCrossDomainMessenger.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: AGPL-3.0 pragma solidity 0.8.28; -import {ICrossDomainMessanger} from "../ICrossDomainMessanger.sol"; +import {ICrossDomainMessanger} from '../ICrossDomainMessanger.sol'; -contract MockCrossDomainMessanger is ICrossDomainMessanger { +contract MockCrossDomainMessenger is ICrossDomainMessanger { address private xDomainMessageSenderAddress; bool public shouldSendMessage; @@ -16,8 +16,10 @@ contract MockCrossDomainMessanger is ICrossDomainMessanger { } function sendMessage(address target, bytes calldata _message, int32 gasLimit) external { - if(shouldSendMessage) { - (bool success, bytes memory result) = target.call{gas: uint256(uint32(gasLimit))}(_message); + if (shouldSendMessage) { + (bool success, bytes memory result) = target.call{gas: uint256(uint32(gasLimit))}( + _message + ); if (!success) { // Bubble up the original revert reason if present @@ -28,7 +30,7 @@ contract MockCrossDomainMessanger is ICrossDomainMessanger { revert(add(result, 32), returndata_size) } } else { - revert("Call failed without reason"); + revert('Call failed without reason'); } } } @@ -46,4 +48,4 @@ contract MockCrossDomainMessanger is ICrossDomainMessanger { function setShouldSendMessage(bool _shouldSendMessage) external { shouldSendMessage = _shouldSendMessage; } -} \ No newline at end of file +} diff --git a/contracts/Registrars/EnsRegistrar.sol b/contracts/Registrars/EnsRegistrar.sol index 8444124..c3c8e12 100644 --- a/contracts/Registrars/EnsRegistrar.sol +++ b/contracts/Registrars/EnsRegistrar.sol @@ -2,7 +2,6 @@ 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 {SuperChainSourceRegistrar} from './SuperChainSourceRegistrar.sol'; @@ -41,7 +40,11 @@ contract EnsRegistrar is SuperChainSourceRegistrar { * @param _ensRegistryAddress Address of the ENS Registry contract. * @param _sciRegistryAddress Address of the SCI Registry contract. */ - constructor(address _ensRegistryAddress, address _sciRegistryAddress, address _crossChainDomainMessagnger) SuperChainSourceRegistrar(_crossChainDomainMessagnger, _sciRegistryAddress) { + constructor( + address _ensRegistryAddress, + address _sciRegistryAddress, + address _crossChainDomainMessagnger + ) SuperChainSourceRegistrar(_crossChainDomainMessagnger, _sciRegistryAddress) { ensRegistry = ENS(_ensRegistryAddress); } diff --git a/contracts/Registrars/SuperChainSourceRegistrar.sol b/contracts/Registrars/SuperChainSourceRegistrar.sol index 6cc1acd..1fcced0 100644 --- a/contracts/Registrars/SuperChainSourceRegistrar.sol +++ b/contracts/Registrars/SuperChainSourceRegistrar.sol @@ -6,33 +6,22 @@ import {IVerifier} from '../Verifiers/IVerifier.sol'; import {ICrossDomainMessanger} from '../Op//ICrossDomainMessanger.sol'; abstract contract SuperChainSourceRegistrar { - ICrossDomainMessanger public immutable crossDomainMessanger; address public targetRegistrar; - + // TODO: Verify gas limit int32 public constant REGISTER_DOMAIN_GAS_LIMIT = 1000000; int32 public constant REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT = 1500000; - constructor( - address _crossDomainMessanger, - address _targetRegistrar - ) { + constructor(address _crossDomainMessanger, address _targetRegistrar) { crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessanger); targetRegistrar = _targetRegistrar; } - function _registerDomainCrossChain( - address owner, - bytes32 domainHash - ) internal { + function _registerDomainCrossChain(address owner, bytes32 domainHash) internal { crossDomainMessanger.sendMessage( targetRegistrar, - abi.encodeWithSelector( - ISciRegistry.registerDomain.selector, - owner, - domainHash - ), + abi.encodeWithSelector(ISciRegistry.registerDomain.selector, owner, domainHash), REGISTER_DOMAIN_GAS_LIMIT ); } diff --git a/contracts/Registrars/SuperChainTargetRegistrar.sol b/contracts/Registrars/SuperChainTargetRegistrar.sol index 4a99892..7a58d1a 100644 --- a/contracts/Registrars/SuperChainTargetRegistrar.sol +++ b/contracts/Registrars/SuperChainTargetRegistrar.sol @@ -1,7 +1,6 @@ // 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'; import {SuperChainAccessControlDefaultAdminRules} from '../Op/SuperChainAccessControlDefaultAdminRules.sol'; @@ -22,7 +21,13 @@ contract SuperChainTargetRegistrar is SuperChainAccessControlDefaultAdminRules { address _sciRegistryAddress, address _crossDomainMessangerAddress, uint48 initialDelay - ) SuperChainAccessControlDefaultAdminRules(_crossDomainMessangerAddress, initialDelay, msg.sender) { + ) + SuperChainAccessControlDefaultAdminRules( + _crossDomainMessangerAddress, + initialDelay, + msg.sender + ) + { registry = ISciRegistry(_sciRegistryAddress); } diff --git a/contracts/SciRegistry/SciRegistry.sol b/contracts/SciRegistry/SciRegistry.sol index adc2e2b..3b53781 100644 --- a/contracts/SciRegistry/SciRegistry.sol +++ b/contracts/SciRegistry/SciRegistry.sol @@ -12,12 +12,7 @@ import {DomainManager} from '../DomainMangager/DomainManager.sol'; * @dev See {ISciRegistry}. * @custom:security-contact security@sci.domains */ -contract SciRegistry is - ISciRegistry, - AccessControlDefaultAdminRules, - DomainManager, - Pausable -{ +contract SciRegistry is ISciRegistry, AccessControlDefaultAdminRules, DomainManager, Pausable { /** * @dev Structure to hold domain record details, including: * - owner: Address of the domain owner. diff --git a/ignition/modules/registrars/EnsRegistrarModule.ts b/ignition/modules/registrars/EnsRegistrarModule.ts index b2bfea4..481292a 100644 --- a/ignition/modules/registrars/EnsRegistrarModule.ts +++ b/ignition/modules/registrars/EnsRegistrarModule.ts @@ -8,7 +8,11 @@ export const EnsRegistrarModule = buildModule('EnsRegistrar', (m: IgnitionModule const l1CrossDomainMessangerAddress = m.getParameter('l1CrossDomainMessangerAddress'); const sciRegistryAddress = m.getParameter('sciRegistryAddress'); - const ensRegistrar = m.contract('EnsRegistrar', [ensRegistry, sciRegistryAddress, l1CrossDomainMessangerAddress]); + const ensRegistrar = m.contract('EnsRegistrar', [ + ensRegistry, + sciRegistryAddress, + l1CrossDomainMessangerAddress, + ]); return { ensRegistrar }; }); diff --git a/ignition/modules/registrars/SuperChainTargetRegistrarModule.ts b/ignition/modules/registrars/SuperChainTargetRegistrarModule.ts index ebf4e57..a8cef14 100644 --- a/ignition/modules/registrars/SuperChainTargetRegistrarModule.ts +++ b/ignition/modules/registrars/SuperChainTargetRegistrarModule.ts @@ -3,17 +3,27 @@ import { SciRegistryModule } from '../registry/SciRegistryModule'; import { EnsRegistrar, SciRegistry, SuperChainTargetRegistrar } from '../../../types'; import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'; -export const SuperChainTargetRegistrarModule = buildModule('SuperChainTargetRegistrar', (m: IgnitionModuleBuilder) => { - const { sciRegistry } = m.useModule(SciRegistryModule); +export const SuperChainTargetRegistrarModule = buildModule( + 'SuperChainTargetRegistrar', + (m: IgnitionModuleBuilder) => { + const { sciRegistry } = m.useModule(SciRegistryModule); - const l2CrossDomainMessangerAddress = m.getParameter('l2CrossDomainMessangerAddress'); + const l2CrossDomainMessangerAddress = m.getParameter('l2CrossDomainMessangerAddress'); - const superChainTargetRegistrar = m.contract('SuperChainTargetRegistrar', [sciRegistry, l2CrossDomainMessangerAddress, 0]); + const superChainTargetRegistrar = m.contract('SuperChainTargetRegistrar', [ + sciRegistry, + l2CrossDomainMessangerAddress, + 0, + ]); - m.call(sciRegistry, 'grantRole', [m.staticCall(sciRegistry, 'REGISTRAR_ROLE'), superChainTargetRegistrar]); + m.call(sciRegistry, 'grantRole', [ + m.staticCall(sciRegistry, 'REGISTRAR_ROLE'), + superChainTargetRegistrar, + ]); - return { superChainTargetRegistrar, sciRegistry }; -}); + return { superChainTargetRegistrar, sciRegistry }; + }, +); export type SuperChainTargetRegistrarModuleReturnType = Promise<{ superChainTargetRegistrar: SuperChainTargetRegistrar; diff --git a/ignition/parameters/localhost.json5 b/ignition/parameters/localhost.json5 index def9eb0..4a9d8c3 100644 --- a/ignition/parameters/localhost.json5 +++ b/ignition/parameters/localhost.json5 @@ -2,12 +2,13 @@ EnsRegistrar: { // The address of the ENS Registry after running setup-localhost.ts in a new node ensRegistryAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3', - // The address of the Mock - l1CrossDomainMessangerAddress: '', - sciRegistryAddress: '', + // The address of the Mock after running setup-localhost.ts in a new node + l1CrossDomainMessangerAddress: '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9', + // The address of the Registry after running pnpm deploy:localhost:protocols in a new node + sciRegistryAddress: '0x5FC8d32690cc91D4c39d9d3abcBD16989F875707', }, SuperChainTargetRegistrar: { - // The address of the Mock - l2CrossDomainMessangerAddress: '', + // The address of the Mock after running setup-localhost.ts in a new node + l2CrossDomainMessangerAddress: '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9', }, } diff --git a/package.json b/package.json index b4b874f..41a784a 100644 --- a/package.json +++ b/package.json @@ -45,8 +45,8 @@ "deploy:ethereum": "corepack pnpm run deploy:satelite --verify --network ethereum --parameters ignition/parameters/ethereum.json5", "deploy:optimsim": "corepack pnpm run deploy:protocol --verify --network optimism --parameters ignition/parameters/optimism.json5", "deploy:sepolia-optimsim": "corepack pnpm run deploy:protocol --verify --network optimism-sepolia --parameters ignition/parameters/optimism-sepolia.json5", - "deploy:localhost:protocol": "corepack pnpm run deploy:protocol --network localhost --parameters ignition/parameters/sepolia.json5", - "deploy:localhost:satelite": "corepack pnpm run deploy:protocol --network localhost --parameters ignition/parameters/sepolia.json5" + "deploy:localhost:protocol": "corepack pnpm run deploy:protocol --network localhost --parameters ignition/parameters/localhost.json5", + "deploy:localhost:satelite": "corepack pnpm run deploy:satelite --network localhost --parameters ignition/parameters/localhost.json5" }, "engines": { "node": ">=20", diff --git a/scripts/setup-localhost.ts b/scripts/setup-localhost.ts index 2d5cc6d..a56ceb0 100644 --- a/scripts/setup-localhost.ts +++ b/scripts/setup-localhost.ts @@ -2,7 +2,7 @@ import { ethers } from 'hardhat'; import { keccak256, namehash, toUtf8Bytes } from 'ethers'; async function main() { - const [owner] = await ethers.getSigners(); + const [owner, xDomainMessegeSender] = await ethers.getSigners(); // ENS Contracts Deployment const EnsFactory = await ethers.getContractFactory('ENSRegistry'); @@ -16,6 +16,16 @@ async function main() { ); await ens.setSubnodeOwner(namehash('eth'), keccak256(toUtf8Bytes('a')), owner.address); console.log('Deployed ENS to:', await ens.getAddress()); + + const MockCrossDomainMessengerFactory = await ethers.getContractFactory( + 'MockCrossDomainMessenger', + ); + const mockCrossDomainMessenger = await MockCrossDomainMessengerFactory.deploy( + xDomainMessegeSender, + true, + ); + + console.log('Deployed MockCrossDomainMessenger to:', mockCrossDomainMessenger.target); } // We recommend this pattern to be able to use async/await everywhere diff --git a/test/Registrars/EnsRegistrar.test.ts b/test/Registrars/EnsRegistrar.test.ts index d39129a..f6b41c6 100644 --- a/test/Registrars/EnsRegistrar.test.ts +++ b/test/Registrars/EnsRegistrar.test.ts @@ -1,4 +1,4 @@ -import { MockCrossDomainMessanger } from './../../types/contracts/Op/mocks/MockCrossDomainMessanger'; +import { MockCrossDomainMessenger } from '../../types'; import { expect } from 'chai'; import { ethers, ignition } from 'hardhat'; import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; @@ -21,18 +21,24 @@ describe('EnsRegistrar', function () { let superChainTargetRegistrarInterface: SuperChainTargetRegistrarInterface; let addresses: HardhatEthersSigner[]; let ensRegistrar: EnsRegistrar; - let mockCrossDomainMessanger: MockCrossDomainMessanger; + let MockCrossDomainMessenger: MockCrossDomainMessenger; beforeEach(async () => { - [owner, superChainTargetRegistrar, xDomainMessageSender, ...addresses] = await ethers.getSigners(); + [owner, superChainTargetRegistrar, xDomainMessageSender, ...addresses] = + await ethers.getSigners(); // ENS Contracts Deployment const EnsFactory = await ethers.getContractFactory('ENSRegistry'); const ens = await EnsFactory.deploy(); // ENS Contracts Deployment - const MockCrossDomainMessangerFactory = await ethers.getContractFactory('MockCrossDomainMessanger'); - mockCrossDomainMessanger = await MockCrossDomainMessangerFactory.deploy(xDomainMessageSender, false); + const MockCrossDomainMessengerFactory = await ethers.getContractFactory( + 'MockCrossDomainMessenger', + ); + MockCrossDomainMessenger = await MockCrossDomainMessengerFactory.deploy( + xDomainMessageSender, + false, + ); superChainTargetRegistrarInterface = SuperChainTargetRegistrar__factory.createInterface(); @@ -48,7 +54,7 @@ describe('EnsRegistrar', function () { parameters: { EnsRegistrar: { ensRegistryAddress: ens.target as string, - l1CrossDomainMessangerAddress: mockCrossDomainMessanger.target as string, + l1CrossDomainMessangerAddress: MockCrossDomainMessenger.target as string, sciRegistryAddress: superChainTargetRegistrar.address, }, }, @@ -84,26 +90,31 @@ describe('EnsRegistrar', function () { }); it('It should register a domain if it is the domain owner', async function () { - await expect(ensRegistrar.registerDomain(owner, DOMAIN_HASH)).to.emit( - mockCrossDomainMessanger, - 'MessageSent' - ).withArgs( - superChainTargetRegistrar.address, - superChainTargetRegistrarInterface.encodeFunctionData("registerDomain", [owner.address, DOMAIN_HASH]), - ensRegistrar.REGISTER_DOMAIN_GAS_LIMIT() - ); + await expect(ensRegistrar.registerDomain(owner, DOMAIN_HASH)) + .to.emit(MockCrossDomainMessenger, 'MessageSent') + .withArgs( + superChainTargetRegistrar.address, + superChainTargetRegistrarInterface.encodeFunctionData('registerDomain', [ + owner.address, + DOMAIN_HASH, + ]), + ensRegistrar.REGISTER_DOMAIN_GAS_LIMIT(), + ); }); it('It should register a domain with verifier if it is the domain owner', async function () { const verifier = addresses[0].address; - await expect(ensRegistrar.connect(owner).registerDomainWithVerifier(DOMAIN_HASH, verifier)).to.emit( - mockCrossDomainMessanger, - 'MessageSent' - ).withArgs( - superChainTargetRegistrar.address, - superChainTargetRegistrarInterface.encodeFunctionData("registerDomainWithVerifier", [owner.address, DOMAIN_HASH, verifier]), - ensRegistrar.REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT() - ); + await expect(ensRegistrar.connect(owner).registerDomainWithVerifier(DOMAIN_HASH, verifier)) + .to.emit(MockCrossDomainMessenger, 'MessageSent') + .withArgs( + superChainTargetRegistrar.address, + superChainTargetRegistrarInterface.encodeFunctionData('registerDomainWithVerifier', [ + owner.address, + DOMAIN_HASH, + verifier, + ]), + ensRegistrar.REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT(), + ); }); }); }); diff --git a/test/Registrars/SciRegistrar.test.ts b/test/Registrars/SciRegistrar.test.ts index 806ef88..1d50822 100644 --- a/test/Registrars/SciRegistrar.test.ts +++ b/test/Registrars/SciRegistrar.test.ts @@ -33,7 +33,6 @@ describe('SciRegistrar', function () { expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, domainOwner.address)).to.be.true; expect(await sciRegistry.domainVerifier(DOMAIN_HASH)).to.equal(verifier); - }); it('It should register a domain if it has the REGISTER_DOMAIN_ROLE role', async function () { @@ -44,12 +43,18 @@ describe('SciRegistrar', function () { 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.connect(user).registerDomain(domainOwner.address, DOMAIN_HASH)) .to.revertedWithCustomError(sciRegistrar, 'AccessControlUnauthorizedAccount') .withArgs(user.address, await sciRegistrar.REGISTER_DOMAIN_ROLE()); - await expect(sciRegistrar.registerDomainWithVerifier(domainOwner.address, DOMAIN_HASH, ethers.ZeroAddress)) + await expect( + sciRegistrar.registerDomainWithVerifier( + domainOwner.address, + DOMAIN_HASH, + ethers.ZeroAddress, + ), + ) .to.revertedWithCustomError(sciRegistrar, 'AccessControlUnauthorizedAccount') .withArgs(user.address, await sciRegistrar.REGISTER_DOMAIN_ROLE()); }); diff --git a/test/Registrars/SuperChainTargetRegistrar.test.ts b/test/Registrars/SuperChainTargetRegistrar.test.ts index f40a878..c9d1fc7 100644 --- a/test/Registrars/SuperChainTargetRegistrar.test.ts +++ b/test/Registrars/SuperChainTargetRegistrar.test.ts @@ -1,8 +1,10 @@ import { expect } from 'chai'; import { ethers, ignition } from 'hardhat'; -import { SuperChainTargetRegistrar, SciRegistry, MockCrossDomainMessanger } from '../../types'; +import { SuperChainTargetRegistrar, SciRegistry, MockCrossDomainMessenger } from '../../types'; import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; -import SuperChainTargetRegistrarModule, { SuperChainTargetRegistrarModuleReturnType } from '../../ignition/modules/registrars/SuperchainTargetRegistrarModule'; +import SuperChainTargetRegistrarModule, { + SuperChainTargetRegistrarModuleReturnType, +} from '../../ignition/modules/registrars/SuperchainTargetRegistrarModule'; const DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; const GAS_FOR_DOMAIN = 1000000; @@ -15,33 +17,48 @@ describe('SuperChainTargetRegistrar', function () { let addresses: HardhatEthersSigner[]; let superChainTargetRegistrar: SuperChainTargetRegistrar; let sciRegistry: SciRegistry; - let mockCrossDomainMessanger: MockCrossDomainMessanger; + let mockCrossDomainMessenger: MockCrossDomainMessenger; beforeEach(async () => { [user, domainOwner, xDomainMessageSender, ...addresses] = await ethers.getSigners(); - const MockCrossDomainMessangerFactory = await ethers.getContractFactory('MockCrossDomainMessanger'); - mockCrossDomainMessanger = await MockCrossDomainMessangerFactory.deploy(xDomainMessageSender, true); + const MockCrossDomainMessengerFactory = await ethers.getContractFactory( + 'MockCrossDomainMessenger', + ); + mockCrossDomainMessenger = await MockCrossDomainMessengerFactory.deploy( + xDomainMessageSender, + true, + ); ({ superChainTargetRegistrar, sciRegistry } = await (ignition.deploy( - SuperChainTargetRegistrarModule, {parameters: { - SuperChainTargetRegistrar: { - l2CrossDomainMessangerAddress: mockCrossDomainMessanger.target as string, + SuperChainTargetRegistrarModule, + { + parameters: { + SuperChainTargetRegistrar: { + l2CrossDomainMessangerAddress: mockCrossDomainMessenger.target as string, + }, }, - },} + }, ) as unknown as SuperChainTargetRegistrarModuleReturnType)); - await superChainTargetRegistrar.grantRole(await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE(), xDomainMessageSender.address); + await superChainTargetRegistrar.grantRole( + await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE(), + xDomainMessageSender.address, + ); }); describe('Register domains', function () { it('It should register a domain with verifier if it is called by the crossDomainMessanger and the xDomainMessageSender has the REGISTER_DOMAIN_ROLE role', async function () { const verifier = addresses[0].address; - await mockCrossDomainMessanger.sendMessage( - superChainTargetRegistrar.target, - superChainTargetRegistrar.interface.encodeFunctionData("registerDomainWithVerifier", [domainOwner.address, DOMAIN_HASH, verifier]), - GAS_FOR_DOMAIN + await mockCrossDomainMessenger.sendMessage( + superChainTargetRegistrar.target, + superChainTargetRegistrar.interface.encodeFunctionData('registerDomainWithVerifier', [ + domainOwner.address, + DOMAIN_HASH, + verifier, + ]), + GAS_FOR_DOMAIN, ); expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, domainOwner.address)).to.be.true; @@ -49,41 +66,70 @@ describe('SuperChainTargetRegistrar', function () { }); it('It should register a domain if it has the REGISTER_DOMAIN_ROLE role', async function () { - await mockCrossDomainMessanger.sendMessage( - superChainTargetRegistrar.target, - superChainTargetRegistrar.interface.encodeFunctionData("registerDomain", [domainOwner.address, DOMAIN_HASH]), - GAS_FOR_DOMAIN_AND_VERIFIER + await mockCrossDomainMessenger.sendMessage( + superChainTargetRegistrar.target, + superChainTargetRegistrar.interface.encodeFunctionData('registerDomain', [ + domainOwner.address, + DOMAIN_HASH, + ]), + GAS_FOR_DOMAIN_AND_VERIFIER, ); expect(await sciRegistry.isDomainOwner(DOMAIN_HASH, domainOwner.address)).to.be.true; }); it("It should reveret with AccessControlUnauthorizedAccount if it doesn't have the REGISTER_DOMAIN_ROLE role", async function () { - await superChainTargetRegistrar.revokeRole(await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE(), xDomainMessageSender.address); - - await expect(mockCrossDomainMessanger.sendMessage( - superChainTargetRegistrar.target, - superChainTargetRegistrar.interface.encodeFunctionData("registerDomain", [domainOwner.address, DOMAIN_HASH]), - GAS_FOR_DOMAIN - )) + await superChainTargetRegistrar.revokeRole( + await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE(), + xDomainMessageSender.address, + ); + + await expect( + mockCrossDomainMessenger.sendMessage( + superChainTargetRegistrar.target, + superChainTargetRegistrar.interface.encodeFunctionData('registerDomain', [ + domainOwner.address, + DOMAIN_HASH, + ]), + GAS_FOR_DOMAIN, + ), + ) .to.revertedWithCustomError(superChainTargetRegistrar, 'AccessControlUnauthorizedAccount') - .withArgs(xDomainMessageSender.address, await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE()); + .withArgs( + xDomainMessageSender.address, + await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE(), + ); - await expect(mockCrossDomainMessanger.sendMessage( - superChainTargetRegistrar.target, - superChainTargetRegistrar.interface.encodeFunctionData("registerDomainWithVerifier", [domainOwner.address, DOMAIN_HASH, ethers.ZeroAddress]), - GAS_FOR_DOMAIN - )) + await expect( + mockCrossDomainMessenger.sendMessage( + superChainTargetRegistrar.target, + superChainTargetRegistrar.interface.encodeFunctionData('registerDomainWithVerifier', [ + domainOwner.address, + DOMAIN_HASH, + ethers.ZeroAddress, + ]), + GAS_FOR_DOMAIN, + ), + ) .to.revertedWithCustomError(superChainTargetRegistrar, 'AccessControlUnauthorizedAccount') - .withArgs(xDomainMessageSender.address, await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE()); + .withArgs( + xDomainMessageSender.address, + await superChainTargetRegistrar.REGISTER_DOMAIN_ROLE(), + ); }); - it("It should reveret with InvalidMessageSender if the message sender is not the CrossDomainMessanger", async function () { - await expect(superChainTargetRegistrar.connect(user).registerDomain(domainOwner.address, DOMAIN_HASH)) + it('It should reveret with InvalidMessageSender if the message sender is not the CrossDomainMessanger', async function () { + await expect( + superChainTargetRegistrar.connect(user).registerDomain(domainOwner.address, DOMAIN_HASH), + ) .to.revertedWithCustomError(superChainTargetRegistrar, 'InvalidMessageSender') .withArgs(user.address); - await expect(superChainTargetRegistrar.connect(user).registerDomainWithVerifier(domainOwner.address, DOMAIN_HASH, ethers.ZeroAddress)) + await expect( + superChainTargetRegistrar + .connect(user) + .registerDomainWithVerifier(domainOwner.address, DOMAIN_HASH, ethers.ZeroAddress), + ) .to.revertedWithCustomError(superChainTargetRegistrar, 'InvalidMessageSender') .withArgs(user.address); }); From 5ad51de38c3f4b3acca2a52693fc6c9d1b71c940 Mon Sep 17 00:00:00 2001 From: Agustincito Date: Mon, 31 Mar 2025 09:30:52 -0300 Subject: [PATCH 04/12] Add deployment scripts --- contracts/Op/ICrossDomainMessanger.sol | 2 +- .../Op/mocks/MockCrossDomainMessenger.sol | 6 +- .../Registrars/SuperChainSourceRegistrar.sol | 5 +- hardhat.config.ts | 17 + .../EnsRegistrar#EnsRegistrar.dbg.json | 4 - .../artifacts/EnsRegistrar#EnsRegistrar.json | 105 - .../artifacts/ProxyModule#ProxyAdmin.dbg.json | 4 - .../artifacts/ProxyModule#ProxyAdmin.json | 132 - .../artifacts/ProxyModule#SCI.dbg.json | 4 - .../chain-10/artifacts/ProxyModule#SCI.json | 302 - ...odule#TransparentUpgradeableProxy.dbg.json | 4 - ...oxyModule#TransparentUpgradeableProxy.json | 116 - ...icListVerifier#PublicListVerifier.dbg.json | 4 - ...PublicListVerifier#PublicListVerifier.json | 217 - .../chain-10/artifacts/SciModule#SCI.dbg.json | 4 - .../chain-10/artifacts/SciModule#SCI.json | 302 - .../SciRegistry#SciRegistry.dbg.json | 4 - .../artifacts/SciRegistry#SciRegistry.json | 867 - .../SciRegstrar#SciRegistrar.dbg.json | 4 - .../artifacts/SciRegstrar#SciRegistrar.json | 547 - .../d016ed3d45366322068f83ae4ee1f5ab.json | 172966 --------------- .../chain-10/deployed_addresses.json | 10 - ignition/deployments/chain-10/journal.jsonl | 72 - .../EnsRegistrar#EnsRegistrar.dbg.json | 4 - .../artifacts/EnsRegistrar#EnsRegistrar.json | 105 - .../artifacts/ProxyModule#ProxyAdmin.dbg.json | 4 - .../artifacts/ProxyModule#ProxyAdmin.json | 132 - .../artifacts/ProxyModule#SCI.dbg.json | 4 - .../artifacts/ProxyModule#SCI.json | 302 - ...odule#TransparentUpgradeableProxy.dbg.json | 4 - ...oxyModule#TransparentUpgradeableProxy.json | 116 - ...icListVerifier#PublicListVerifier.dbg.json | 4 - ...PublicListVerifier#PublicListVerifier.json | 217 - .../artifacts/SciModule#SCI.dbg.json | 4 - .../artifacts/SciModule#SCI.json | 302 - .../SciRegistry#SciRegistry.dbg.json | 4 - .../artifacts/SciRegistry#SciRegistry.json | 867 - .../SciRegstrar#SciRegistrar.dbg.json | 4 - .../artifacts/SciRegstrar#SciRegistrar.json | 547 - .../d016ed3d45366322068f83ae4ee1f5ab.json | 172966 --------------- .../chain-11155111/deployed_addresses.json | 10 - .../deployments/chain-11155111/journal.jsonl | 72 - ignition/modules/CleanupModule.ts | 17 + .../modules/registrars/EnsRegistrarModule.ts | 7 +- ignition/parameters/optimism-sepolia.json5 | 3 + ignition/parameters/sepolia.json5 | 7 +- package.json | 2 + .../SuperChainTargetRegistrar.test.ts | 2 +- 48 files changed, 53 insertions(+), 351351 deletions(-) delete mode 100644 ignition/deployments/chain-10/artifacts/EnsRegistrar#EnsRegistrar.dbg.json delete mode 100644 ignition/deployments/chain-10/artifacts/EnsRegistrar#EnsRegistrar.json delete mode 100644 ignition/deployments/chain-10/artifacts/ProxyModule#ProxyAdmin.dbg.json delete mode 100644 ignition/deployments/chain-10/artifacts/ProxyModule#ProxyAdmin.json delete mode 100644 ignition/deployments/chain-10/artifacts/ProxyModule#SCI.dbg.json delete mode 100644 ignition/deployments/chain-10/artifacts/ProxyModule#SCI.json delete mode 100644 ignition/deployments/chain-10/artifacts/ProxyModule#TransparentUpgradeableProxy.dbg.json delete mode 100644 ignition/deployments/chain-10/artifacts/ProxyModule#TransparentUpgradeableProxy.json delete mode 100644 ignition/deployments/chain-10/artifacts/PublicListVerifier#PublicListVerifier.dbg.json delete mode 100644 ignition/deployments/chain-10/artifacts/PublicListVerifier#PublicListVerifier.json delete mode 100644 ignition/deployments/chain-10/artifacts/SciModule#SCI.dbg.json delete mode 100644 ignition/deployments/chain-10/artifacts/SciModule#SCI.json delete mode 100644 ignition/deployments/chain-10/artifacts/SciRegistry#SciRegistry.dbg.json delete mode 100644 ignition/deployments/chain-10/artifacts/SciRegistry#SciRegistry.json delete mode 100644 ignition/deployments/chain-10/artifacts/SciRegstrar#SciRegistrar.dbg.json delete mode 100644 ignition/deployments/chain-10/artifacts/SciRegstrar#SciRegistrar.json delete mode 100644 ignition/deployments/chain-10/build-info/d016ed3d45366322068f83ae4ee1f5ab.json delete mode 100644 ignition/deployments/chain-10/deployed_addresses.json delete mode 100644 ignition/deployments/chain-10/journal.jsonl delete mode 100644 ignition/deployments/chain-11155111/artifacts/EnsRegistrar#EnsRegistrar.dbg.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/EnsRegistrar#EnsRegistrar.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.dbg.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/ProxyModule#SCI.dbg.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/ProxyModule#SCI.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/ProxyModule#TransparentUpgradeableProxy.dbg.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/ProxyModule#TransparentUpgradeableProxy.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/PublicListVerifier#PublicListVerifier.dbg.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/PublicListVerifier#PublicListVerifier.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/SciModule#SCI.dbg.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/SciModule#SCI.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/SciRegistry#SciRegistry.dbg.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/SciRegistry#SciRegistry.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/SciRegstrar#SciRegistrar.dbg.json delete mode 100644 ignition/deployments/chain-11155111/artifacts/SciRegstrar#SciRegistrar.json delete mode 100644 ignition/deployments/chain-11155111/build-info/d016ed3d45366322068f83ae4ee1f5ab.json delete mode 100644 ignition/deployments/chain-11155111/deployed_addresses.json delete mode 100644 ignition/deployments/chain-11155111/journal.jsonl create mode 100644 ignition/modules/CleanupModule.ts diff --git a/contracts/Op/ICrossDomainMessanger.sol b/contracts/Op/ICrossDomainMessanger.sol index 78b8caf..d2dc05d 100644 --- a/contracts/Op/ICrossDomainMessanger.sol +++ b/contracts/Op/ICrossDomainMessanger.sol @@ -2,6 +2,6 @@ pragma solidity 0.8.28; interface ICrossDomainMessanger { - function sendMessage(address target, bytes calldata _message, int32 gasLimit) external; + function sendMessage(address target, bytes calldata _message, uint32 gasLimit) external; function xDomainMessageSender() external view returns (address); } diff --git a/contracts/Op/mocks/MockCrossDomainMessenger.sol b/contracts/Op/mocks/MockCrossDomainMessenger.sol index 7f050ce..0dd5eee 100644 --- a/contracts/Op/mocks/MockCrossDomainMessenger.sol +++ b/contracts/Op/mocks/MockCrossDomainMessenger.sol @@ -8,16 +8,16 @@ contract MockCrossDomainMessenger is ICrossDomainMessanger { bool public shouldSendMessage; - event MessageSent(address target, bytes message, int32 gasLimit); + event MessageSent(address target, bytes message, uint32 gasLimit); constructor(address _xDomainMessageSenderAddress, bool _shouldSendMessage) { xDomainMessageSenderAddress = _xDomainMessageSenderAddress; shouldSendMessage = _shouldSendMessage; } - function sendMessage(address target, bytes calldata _message, int32 gasLimit) external { + function sendMessage(address target, bytes calldata _message, uint32 gasLimit) external { if (shouldSendMessage) { - (bool success, bytes memory result) = target.call{gas: uint256(uint32(gasLimit))}( + (bool success, bytes memory result) = target.call{gas: uint256(gasLimit)}( _message ); diff --git a/contracts/Registrars/SuperChainSourceRegistrar.sol b/contracts/Registrars/SuperChainSourceRegistrar.sol index 1fcced0..7ddd3c6 100644 --- a/contracts/Registrars/SuperChainSourceRegistrar.sol +++ b/contracts/Registrars/SuperChainSourceRegistrar.sol @@ -9,9 +9,8 @@ abstract contract SuperChainSourceRegistrar { ICrossDomainMessanger public immutable crossDomainMessanger; address public targetRegistrar; - // TODO: Verify gas limit - int32 public constant REGISTER_DOMAIN_GAS_LIMIT = 1000000; - int32 public constant REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT = 1500000; + uint32 public constant REGISTER_DOMAIN_GAS_LIMIT = 200000; + uint32 public constant REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT = 300000; constructor(address _crossDomainMessanger, address _targetRegistrar) { crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessanger); diff --git a/hardhat.config.ts b/hardhat.config.ts index 5c794d4..15e0b58 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -26,9 +26,15 @@ const config: HardhatUserConfig = { url: getUrl(process.env.ETHEREUM_SEPOLIA_PROVIDER_URL), ledgerAccounts: [process.env.ADDRESS!], }, + 'optimism-sepolia': { + chainId: 11155420, + url: getUrl(process.env.OPTIMISM_SEPOLIA_PROVIDER_URL), + ledgerAccounts: [process.env.ADDRESS!], + }, mainnet: { chainId: 1, url: getUrl(process.env.ETHEREUM_MAINNET_PROVIDER_URL), + ledgerAccounts: [process.env.ADDRESS!], }, optimism: { chainId: 10, @@ -38,6 +44,17 @@ const config: HardhatUserConfig = { }, etherscan: { apiKey: process.env.ETHERSCAN_API_KEY!, + customChains: [ + { + network: "optimism-sepolia", + chainId: 11155420, + urls: { + apiURL: + "https://api-sepolia-optimistic.etherscan.io/api", + browserURL: "https://sepolia-optimism.etherscan.io", + }, + }, + ] }, sourcify: { enabled: false, diff --git a/ignition/deployments/chain-10/artifacts/EnsRegistrar#EnsRegistrar.dbg.json b/ignition/deployments/chain-10/artifacts/EnsRegistrar#EnsRegistrar.dbg.json deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-10/artifacts/EnsRegistrar#EnsRegistrar.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/EnsRegistrar#EnsRegistrar.json b/ignition/deployments/chain-10/artifacts/EnsRegistrar#EnsRegistrar.json deleted file mode 100644 index e573a36..0000000 --- a/ignition/deployments/chain-10/artifacts/EnsRegistrar#EnsRegistrar.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "EnsRegistrar", - "sourceName": "contracts/Registrars/EnsRegistrar.sol", - "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" - } - ], - "bytecode": "0x60c060405234801561001057600080fd5b5060405161082e38038061082e83398181016040528101906100329190610104565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250505050610144565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100d1826100a6565b9050919050565b6100e1816100c6565b81146100ec57600080fd5b50565b6000815190506100fe816100d8565b92915050565b6000806040838503121561011b5761011a6100a1565b5b6000610129858286016100ef565b925050602061013a858286016100ef565b9150509250929050565b60805160a0516106b161017d6000396000818160da0152818161017601526101ca01526000818161019a015261027c01526106b16000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea2646970667358221220c90dbfa0c27c6833e6ed98d1937d68c4ddcf4ef68d5d349eef2753821461b49064736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea2646970667358221220c90dbfa0c27c6833e6ed98d1937d68c4ddcf4ef68d5d349eef2753821461b49064736f6c634300081c0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/ProxyModule#ProxyAdmin.dbg.json b/ignition/deployments/chain-10/artifacts/ProxyModule#ProxyAdmin.dbg.json deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-10/artifacts/ProxyModule#ProxyAdmin.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/ProxyModule#ProxyAdmin.json b/ignition/deployments/chain-10/artifacts/ProxyModule#ProxyAdmin.json deleted file mode 100644 index 0b3e0cf..0000000 --- a/ignition/deployments/chain-10/artifacts/ProxyModule#ProxyAdmin.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "_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": "0x608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/ProxyModule#SCI.dbg.json b/ignition/deployments/chain-10/artifacts/ProxyModule#SCI.dbg.json deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-10/artifacts/ProxyModule#SCI.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/ProxyModule#SCI.json b/ignition/deployments/chain-10/artifacts/ProxyModule#SCI.json deleted file mode 100644 index 509355b..0000000 --- a/ignition/deployments/chain-10/artifacts/ProxyModule#SCI.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "_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": "0x6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/ProxyModule#TransparentUpgradeableProxy.dbg.json b/ignition/deployments/chain-10/artifacts/ProxyModule#TransparentUpgradeableProxy.dbg.json deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-10/artifacts/ProxyModule#TransparentUpgradeableProxy.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/ProxyModule#TransparentUpgradeableProxy.json b/ignition/deployments/chain-10/artifacts/ProxyModule#TransparentUpgradeableProxy.json deleted file mode 100644 index c57e5ea..0000000 --- a/ignition/deployments/chain-10/artifacts/ProxyModule#TransparentUpgradeableProxy.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "_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": "FailedCall", - "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": "0x60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "deployedBytecode": "0x608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/PublicListVerifier#PublicListVerifier.dbg.json b/ignition/deployments/chain-10/artifacts/PublicListVerifier#PublicListVerifier.dbg.json deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-10/artifacts/PublicListVerifier#PublicListVerifier.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/PublicListVerifier#PublicListVerifier.json b/ignition/deployments/chain-10/artifacts/PublicListVerifier#PublicListVerifier.json deleted file mode 100644 index 145e4b6..0000000 --- a/ignition/deployments/chain-10/artifacts/PublicListVerifier#PublicListVerifier.json +++ /dev/null @@ -1,217 +0,0 @@ -{ - "_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-10/artifacts/SciModule#SCI.dbg.json b/ignition/deployments/chain-10/artifacts/SciModule#SCI.dbg.json deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-10/artifacts/SciModule#SCI.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/SciModule#SCI.json b/ignition/deployments/chain-10/artifacts/SciModule#SCI.json deleted file mode 100644 index 509355b..0000000 --- a/ignition/deployments/chain-10/artifacts/SciModule#SCI.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "_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": "0x6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/SciRegistry#SciRegistry.dbg.json b/ignition/deployments/chain-10/artifacts/SciRegistry#SciRegistry.dbg.json deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-10/artifacts/SciRegistry#SciRegistry.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/SciRegistry#SciRegistry.json b/ignition/deployments/chain-10/artifacts/SciRegistry#SciRegistry.json deleted file mode 100644 index 0601e35..0000000 --- a/ignition/deployments/chain-10/artifacts/SciRegistry#SciRegistry.json +++ /dev/null @@ -1,867 +0,0 @@ -{ - "_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": "0x60a060405234801561001057600080fd5b506040516129513803806129518339818101604052810190610032919061051a565b308161004261019560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b45760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100ab9190610588565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100ec6000801b8261019d60201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506000600360006101000a81548160ff02191690831515021790555061018f7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092387f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750961027660201b60201c565b506105a3565b600033905090565b60008060001b830361025e57600073ffffffffffffffffffffffffffffffffffffffff166101cf6102c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461021c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61026e83836102f060201b60201c565b905092915050565b6000801b82036102b2576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c282826103ed60201b60201c565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610302838361044e60201b60201c565b6103e257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061037f61019560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506103e7565b600090505b92915050565b60006103fe836104b860201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806000838152602001908152602001600020600101549050919050565b600080fd5b600065ffffffffffff82169050919050565b6104f7816104dc565b811461050257600080fd5b50565b600081519050610514816104ee565b92915050565b6000602082840312156105305761052f6104d7565b5b600061053e84828501610505565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061057282610547565b9050919050565b61058281610567565b82525050565b600060208201905061059d6000830184610579565b92915050565b60805161238c6105c560003960008181610924015261115a015261238c6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ccb565b6105ff565b6040516102279190611d13565b60405180910390f35b610238610679565b6040516102459190611d4f565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611da0565b61069c565b60405161027f9190611ddc565b60405180910390f35b6102a2600480360381019061029d9190611e55565b6106bb565b005b6102be60048036038101906102b99190611e55565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611da0565b610827565b6040516102f19190611ef4565b60405180910390f35b610314600480360381019061030f9190611da0565b610867565b6040516103249493929190611f37565b60405180910390f35b6103356108d7565b6040516103429190611d13565b60405180910390f35b61036560048036038101906103609190611f7c565b6108ee565b005b610381600480360381019061037c9190611fd5565b610908565b005b61038b610922565b6040516103989190612023565b60405180910390f35b6103bb60048036038101906103b69190611e55565b610946565b6040516103c89190611d13565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061203e565b60405180910390f35b6104016109e6565b60405161040e919061203e565b60405180910390f35b610431600480360381019061042c9190611e55565b6109f5565b60405161043e9190611d13565b60405180910390f35b61044f610a5f565b60405161045d929190612059565b60405180910390f35b61046e610abf565b60405161047b9190611ddc565b60405180910390f35b61049e60048036038101906104999190611da0565b610ac6565b6040516104ab9190612082565b60405180910390f35b6104ce60048036038101906104c991906120db565b610ae6565b005b6104ea60048036038101906104e5919061211b565b610b09565b005b6104f4610b17565b6040516105019190611ddc565b60405180910390f35b610512610b3b565b60405161051f9190611d4f565b60405180910390f35b610530610ba9565b005b61053a610c3f565b60405161054892919061215b565b60405180910390f35b61056b60048036038101906105669190611da0565b610c82565b604051610578919061203e565b60405180910390f35b61059b60048036038101906105969190611e55565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612184565b610d24565b005b6105cb610d3d565b6040516105d89190611ddc565b60405180910390f35b6105e9610d61565b6040516105f69190611ddc565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d4f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061203e565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061203e565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b6110119190612206565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d4f565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d9190612206565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612059565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061203e565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611ddc565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612255565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611243929190612282565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061203e565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d4f565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c4929190612282565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122f3565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b2919061231c565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061203e565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000611c408284108484611c48565b905092915050565b6000611c5384611c62565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ca881611c73565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b600060208284031215611ce157611ce0611c6e565b5b6000611cef84828501611cb6565b91505092915050565b60008115159050919050565b611d0d81611cf8565b82525050565b6000602082019050611d286000830184611d04565b92915050565b600065ffffffffffff82169050919050565b611d4981611d2e565b82525050565b6000602082019050611d646000830184611d40565b92915050565b6000819050919050565b611d7d81611d6a565b8114611d8857600080fd5b50565b600081359050611d9a81611d74565b92915050565b600060208284031215611db657611db5611c6e565b5b6000611dc484828501611d8b565b91505092915050565b611dd681611d6a565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e2282611df7565b9050919050565b611e3281611e17565b8114611e3d57600080fd5b50565b600081359050611e4f81611e29565b92915050565b60008060408385031215611e6c57611e6b611c6e565b5b6000611e7a85828601611d8b565b9250506020611e8b85828601611e40565b9150509250929050565b6000819050919050565b6000611eba611eb5611eb084611df7565b611e95565b611df7565b9050919050565b6000611ecc82611e9f565b9050919050565b6000611ede82611ec1565b9050919050565b611eee81611ed3565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b611f1881611e17565b82525050565b6000819050919050565b611f3181611f1e565b82525050565b6000608082019050611f4c6000830187611f0f565b611f596020830186611ee5565b611f666040830185611f28565b611f736060830184611f28565b95945050505050565b600060208284031215611f9257611f91611c6e565b5b6000611fa084828501611e40565b91505092915050565b611fb281611d2e565b8114611fbd57600080fd5b50565b600081359050611fcf81611fa9565b92915050565b600060208284031215611feb57611fea611c6e565b5b6000611ff984828501611fc0565b91505092915050565b600061200d82611ec1565b9050919050565b61201d81612002565b82525050565b60006020820190506120386000830184612014565b92915050565b60006020820190506120536000830184611f0f565b92915050565b600060408201905061206e6000830185611d40565b61207b6020830184611d40565b9392505050565b60006020820190506120976000830184611f28565b92915050565b60006120a882611e17565b9050919050565b6120b88161209d565b81146120c357600080fd5b50565b6000813590506120d5816120af565b92915050565b600080604083850312156120f2576120f1611c6e565b5b600061210085828601611d8b565b9250506020612111858286016120c6565b9150509250929050565b6000806040838503121561213257612131611c6e565b5b600061214085828601611e40565b925050602061215185828601611d8b565b9150509250929050565b60006040820190506121706000830185611f0f565b61217d6020830184611d40565b9392505050565b60008060006060848603121561219d5761219c611c6e565b5b60006121ab86828701611e40565b93505060206121bc86828701611d8b565b92505060406121cd868287016120c6565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061221182611d2e565b915061221c83611d2e565b9250828201905065ffffffffffff81111561223a576122396121d7565b5b92915050565b60008151905061224f81611e29565b92915050565b60006020828403121561226b5761226a611c6e565b5b600061227984828501612240565b91505092915050565b60006040820190506122976000830185611f0f565b6122a46020830184611dcd565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122dd6122d86122d3846122ab565b611e95565b6122b5565b9050919050565b6122ed816122c2565b82525050565b600060408201905061230860008301856122e4565b6123156020830184611f28565b9392505050565b600061232782611d2e565b915061233283611d2e565b9250828203905065ffffffffffff8111156123505761234f6121d7565b5b9291505056fea26469706673582212208d9faa5a557b2963a1f0927d9241c63c1ae66f5d48267732b4a8678b6cd45e3b64736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ccb565b6105ff565b6040516102279190611d13565b60405180910390f35b610238610679565b6040516102459190611d4f565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611da0565b61069c565b60405161027f9190611ddc565b60405180910390f35b6102a2600480360381019061029d9190611e55565b6106bb565b005b6102be60048036038101906102b99190611e55565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611da0565b610827565b6040516102f19190611ef4565b60405180910390f35b610314600480360381019061030f9190611da0565b610867565b6040516103249493929190611f37565b60405180910390f35b6103356108d7565b6040516103429190611d13565b60405180910390f35b61036560048036038101906103609190611f7c565b6108ee565b005b610381600480360381019061037c9190611fd5565b610908565b005b61038b610922565b6040516103989190612023565b60405180910390f35b6103bb60048036038101906103b69190611e55565b610946565b6040516103c89190611d13565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061203e565b60405180910390f35b6104016109e6565b60405161040e919061203e565b60405180910390f35b610431600480360381019061042c9190611e55565b6109f5565b60405161043e9190611d13565b60405180910390f35b61044f610a5f565b60405161045d929190612059565b60405180910390f35b61046e610abf565b60405161047b9190611ddc565b60405180910390f35b61049e60048036038101906104999190611da0565b610ac6565b6040516104ab9190612082565b60405180910390f35b6104ce60048036038101906104c991906120db565b610ae6565b005b6104ea60048036038101906104e5919061211b565b610b09565b005b6104f4610b17565b6040516105019190611ddc565b60405180910390f35b610512610b3b565b60405161051f9190611d4f565b60405180910390f35b610530610ba9565b005b61053a610c3f565b60405161054892919061215b565b60405180910390f35b61056b60048036038101906105669190611da0565b610c82565b604051610578919061203e565b60405180910390f35b61059b60048036038101906105969190611e55565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612184565b610d24565b005b6105cb610d3d565b6040516105d89190611ddc565b60405180910390f35b6105e9610d61565b6040516105f69190611ddc565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d4f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061203e565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061203e565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b6110119190612206565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d4f565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d9190612206565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612059565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061203e565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611ddc565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612255565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611243929190612282565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061203e565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d4f565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c4929190612282565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122f3565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b2919061231c565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061203e565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000611c408284108484611c48565b905092915050565b6000611c5384611c62565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ca881611c73565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b600060208284031215611ce157611ce0611c6e565b5b6000611cef84828501611cb6565b91505092915050565b60008115159050919050565b611d0d81611cf8565b82525050565b6000602082019050611d286000830184611d04565b92915050565b600065ffffffffffff82169050919050565b611d4981611d2e565b82525050565b6000602082019050611d646000830184611d40565b92915050565b6000819050919050565b611d7d81611d6a565b8114611d8857600080fd5b50565b600081359050611d9a81611d74565b92915050565b600060208284031215611db657611db5611c6e565b5b6000611dc484828501611d8b565b91505092915050565b611dd681611d6a565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e2282611df7565b9050919050565b611e3281611e17565b8114611e3d57600080fd5b50565b600081359050611e4f81611e29565b92915050565b60008060408385031215611e6c57611e6b611c6e565b5b6000611e7a85828601611d8b565b9250506020611e8b85828601611e40565b9150509250929050565b6000819050919050565b6000611eba611eb5611eb084611df7565b611e95565b611df7565b9050919050565b6000611ecc82611e9f565b9050919050565b6000611ede82611ec1565b9050919050565b611eee81611ed3565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b611f1881611e17565b82525050565b6000819050919050565b611f3181611f1e565b82525050565b6000608082019050611f4c6000830187611f0f565b611f596020830186611ee5565b611f666040830185611f28565b611f736060830184611f28565b95945050505050565b600060208284031215611f9257611f91611c6e565b5b6000611fa084828501611e40565b91505092915050565b611fb281611d2e565b8114611fbd57600080fd5b50565b600081359050611fcf81611fa9565b92915050565b600060208284031215611feb57611fea611c6e565b5b6000611ff984828501611fc0565b91505092915050565b600061200d82611ec1565b9050919050565b61201d81612002565b82525050565b60006020820190506120386000830184612014565b92915050565b60006020820190506120536000830184611f0f565b92915050565b600060408201905061206e6000830185611d40565b61207b6020830184611d40565b9392505050565b60006020820190506120976000830184611f28565b92915050565b60006120a882611e17565b9050919050565b6120b88161209d565b81146120c357600080fd5b50565b6000813590506120d5816120af565b92915050565b600080604083850312156120f2576120f1611c6e565b5b600061210085828601611d8b565b9250506020612111858286016120c6565b9150509250929050565b6000806040838503121561213257612131611c6e565b5b600061214085828601611e40565b925050602061215185828601611d8b565b9150509250929050565b60006040820190506121706000830185611f0f565b61217d6020830184611d40565b9392505050565b60008060006060848603121561219d5761219c611c6e565b5b60006121ab86828701611e40565b93505060206121bc86828701611d8b565b92505060406121cd868287016120c6565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061221182611d2e565b915061221c83611d2e565b9250828201905065ffffffffffff81111561223a576122396121d7565b5b92915050565b60008151905061224f81611e29565b92915050565b60006020828403121561226b5761226a611c6e565b5b600061227984828501612240565b91505092915050565b60006040820190506122976000830185611f0f565b6122a46020830184611dcd565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122dd6122d86122d3846122ab565b611e95565b6122b5565b9050919050565b6122ed816122c2565b82525050565b600060408201905061230860008301856122e4565b6123156020830184611f28565b9392505050565b600061232782611d2e565b915061233283611d2e565b9250828203905065ffffffffffff8111156123505761234f6121d7565b5b9291505056fea26469706673582212208d9faa5a557b2963a1f0927d9241c63c1ae66f5d48267732b4a8678b6cd45e3b64736f6c634300081c0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/SciRegstrar#SciRegistrar.dbg.json b/ignition/deployments/chain-10/artifacts/SciRegstrar#SciRegistrar.dbg.json deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-10/artifacts/SciRegstrar#SciRegistrar.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/artifacts/SciRegstrar#SciRegistrar.json b/ignition/deployments/chain-10/artifacts/SciRegstrar#SciRegistrar.json deleted file mode 100644 index da3403f..0000000 --- a/ignition/deployments/chain-10/artifacts/SciRegstrar#SciRegistrar.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "_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": "0x60a060405234801561001057600080fd5b50604051611f85380380611f858339818101604052810190610032919061043c565b8061004161012960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b35760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100aa919061048b565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100eb6000801b8261013160201b60201c565b5050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506104a6565b600033905090565b60008060001b83036101f257600073ffffffffffffffffffffffffffffffffffffffff1661016361020a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146101b0576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610202838361023460201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610246838361033160201b60201c565b61032657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102c361012960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061032b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103cb826103a0565b9050919050565b6103db816103c0565b81146103e657600080fd5b50565b6000815190506103f8816103d2565b92915050565b600065ffffffffffff82169050919050565b610419816103fe565b811461042457600080fd5b50565b60008151905061043681610410565b92915050565b600080604083850312156104535761045261039b565b5b6000610461858286016103e9565b925050602061047285828601610427565b9150509250929050565b610485816103c0565b82525050565b60006020820190506104a0600083018461047c565b92915050565b608051611ab66104cf6000396000818161063e0152818161079601526109fb0152611ab66000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea2646970667358221220d44239aa553373132c81fc8c57e3b38437535b47175888a8cbee49e7e0b303e064736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea2646970667358221220d44239aa553373132c81fc8c57e3b38437535b47175888a8cbee49e7e0b303e064736f6c634300081c0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-10/build-info/d016ed3d45366322068f83ae4ee1f5ab.json b/ignition/deployments/chain-10/build-info/d016ed3d45366322068f83ae4ee1f5ab.json deleted file mode 100644 index 791d0cc..0000000 --- a/ignition/deployments/chain-10/build-info/d016ed3d45366322068f83ae4ee1f5ab.json +++ /dev/null @@ -1,172966 +0,0 @@ -{ - "id": "d016ed3d45366322068f83ae4ee1f5ab", - "_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": "//SPDX-License-Identifier: MIT\npragma 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.1.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 * This extension of the {Ownable} contract includes a two-step mechanism to transfer\n * ownership, where the new owner must call {acceptOwnership} in order to replace the\n * old one. This can help prevent common mistakes, such as transfers of ownership to\n * incorrect accounts, or to contracts that are unable to interact with the\n * permission system.\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 * Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\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.1.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 ERC-165 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.1.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC-165 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. This account bears the admin role (for the granted role).\n * Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\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.1.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[ERC-1967], 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 ERC-1967) 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.1.0) (proxy/ERC1967/ERC1967Utils.sol)\n\npragma solidity ^0.8.21;\n\nimport {IBeacon} from \"../beacon/IBeacon.sol\";\nimport {IERC1967} from \"../../interfaces/IERC1967.sol\";\nimport {Address} from \"../../utils/Address.sol\";\nimport {StorageSlot} from \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This library provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots.\n */\nlibrary ERC1967Utils {\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 ERC-1967 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 IERC1967.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 ERC-1967) 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 ERC-1967 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 IERC1967.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 ERC-1967 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 IERC1967.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.1.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,address)`\n * and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called,\n * while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string.\n * If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third 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.1.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 /// @dev See {UUPSUpgradeable-upgradeToAndCall}\n function upgradeToAndCall(address newImplementation, bytes calldata data) 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. Relying on the value of the admin slot\n * is generally fine if the implementation is trusted.\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 view 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.1.0) (utils/Address.sol)\n\npragma solidity ^0.8.20;\n\nimport {Errors} from \"./Errors.sol\";\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev There's no code at `target` (it is not a contract).\n */\n error AddressEmptyCode(address target);\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 Errors.InsufficientBalance(address(this).balance, amount);\n }\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n if (!success) {\n revert Errors.FailedCall();\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 * {Errors.FailedCall} 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 Errors.InsufficientBalance(address(this).balance, value);\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 {Errors.FailedCall}) in case\n * of an 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 {Errors.FailedCall} 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 {Errors.FailedCall}.\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 assembly (\"memory-safe\") {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert Errors.FailedCall();\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/Errors.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Errors.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of common custom errors used in multiple contracts\n *\n * IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.\n * It is recommended to avoid relying on the error API for critical functionality.\n *\n * _Available since v5.1._\n */\nlibrary Errors {\n /**\n * @dev The ETH balance of the account is not enough to perform the operation.\n */\n error InsufficientBalance(uint256 balance, uint256 needed);\n\n /**\n * @dev A call to an address target failed. The target may have reverted.\n */\n error FailedCall();\n\n /**\n * @dev The deployment failed.\n */\n error FailedDeployment();\n\n /**\n * @dev A necessary precompile is missing.\n */\n error MissingPrecompile(address);\n}\n" - }, - "@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.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 ERC-165 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.1.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\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[ERC 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.1.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\nimport {Panic} from \"../Panic.sol\";\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\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 success flag (no overflow).\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no overflow).\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no overflow).\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no division by zero).\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no division by zero).\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, uint256 a, uint256 b) internal pure returns (uint256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * SafeCast.toUint(condition));\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 ternary(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 ternary(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 Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n\n // The following calculation ensures accurate ceiling division without overflow.\n // Since a is non-zero, (a - 1) / b will not overflow.\n // The largest possible result occurs when (a - 1) / b is type(uint256).max,\n // but the largest value we can obtain is type(uint256).max - 1, which happens\n // when a = type(uint256).max and b = 1.\n unchecked {\n return SafeCast.toUint(a > 0) * ((a - 1) / b + 1);\n }\n }\n\n /**\n * @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n *\n * 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²⁵⁶ and mod 2²⁵⁶ - 1, then use\n // the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2²⁵⁶ + 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²⁵⁶. Also prevents denominator == 0.\n if (denominator <= prod1) {\n Panic.panic(ternary(denominator == 0, Panic.DIVISION_BY_ZERO, Panic.UNDER_OVERFLOW));\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²⁵⁶ / 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²⁵⁶. Now that denominator is an odd number, it has an inverse modulo 2²⁵⁶ such\n // that denominator * inv ≡ 1 mod 2²⁵⁶. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv ≡ 1 mod 2⁴.\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⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2¹⁶\n inverse *= 2 - denominator * inverse; // inverse mod 2³²\n inverse *= 2 - denominator * inverse; // inverse mod 2⁶⁴\n inverse *= 2 - denominator * inverse; // inverse mod 2¹²⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2²⁵⁶\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²⁵⁶. Since the preconditions guarantee that the outcome is\n // less than 2²⁵⁶, 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 * @dev 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 return mulDiv(x, y, denominator) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0);\n }\n\n /**\n * @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n *\n * If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n * If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n *\n * If the input value is not inversible, 0 is returned.\n *\n * NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n * inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}.\n */\n function invMod(uint256 a, uint256 n) internal pure returns (uint256) {\n unchecked {\n if (n == 0) return 0;\n\n // The inverse modulo is calculated using the Extended Euclidean Algorithm (iterative version)\n // Used to compute integers x and y such that: ax + ny = gcd(a, n).\n // When the gcd is 1, then the inverse of a modulo n exists and it's x.\n // ax + ny = 1\n // ax = 1 + (-y)n\n // ax ≡ 1 (mod n) # x is the inverse of a modulo n\n\n // If the remainder is 0 the gcd is n right away.\n uint256 remainder = a % n;\n uint256 gcd = n;\n\n // Therefore the initial coefficients are:\n // ax + ny = gcd(a, n) = n\n // 0a + 1n = n\n int256 x = 0;\n int256 y = 1;\n\n while (remainder != 0) {\n uint256 quotient = gcd / remainder;\n\n (gcd, remainder) = (\n // The old remainder is the next gcd to try.\n remainder,\n // Compute the next remainder.\n // Can't overflow given that (a % gcd) * (gcd // (a % gcd)) <= gcd\n // where gcd is at most n (capped to type(uint256).max)\n gcd - remainder * quotient\n );\n\n (x, y) = (\n // Increment the coefficient of a.\n y,\n // Decrement the coefficient of n.\n // Can overflow, but the result is casted to uint256 so that the\n // next value of y is \"wrapped around\" to a value between 0 and n - 1.\n x - y * int256(quotient)\n );\n }\n\n if (gcd != 1) return 0; // No inverse exists.\n return ternary(x < 0, n - uint256(-x), uint256(x)); // Wrap the result if it's negative.\n }\n }\n\n /**\n * @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n *\n * From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n * prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n * `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n *\n * NOTE: this function does NOT check that `p` is a prime greater than `2`.\n */\n function invModPrime(uint256 a, uint256 p) internal view returns (uint256) {\n unchecked {\n return Math.modExp(a, p - 2, p);\n }\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n *\n * Requirements:\n * - modulus can't be zero\n * - underlying staticcall to precompile must succeed\n *\n * IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n * sure the chain you're using it on supports the precompiled contract for modular exponentiation\n * at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n * the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n * interpreted as 0.\n */\n function modExp(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {\n (bool success, uint256 result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n * It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n * to operate modulo 0 or if the underlying precompile reverted.\n *\n * IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n * you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n * https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n * of a revert, but the result may be incorrectly interpreted as 0.\n */\n function tryModExp(uint256 b, uint256 e, uint256 m) internal view returns (bool success, uint256 result) {\n if (m == 0) return (false, 0);\n assembly (\"memory-safe\") {\n let ptr := mload(0x40)\n // | Offset | Content | Content (Hex) |\n // |-----------|------------|--------------------------------------------------------------------|\n // | 0x00:0x1f | size of b | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x20:0x3f | size of e | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x40:0x5f | size of m | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x60:0x7f | value of b | 0x<.............................................................b> |\n // | 0x80:0x9f | value of e | 0x<.............................................................e> |\n // | 0xa0:0xbf | value of m | 0x<.............................................................m> |\n mstore(ptr, 0x20)\n mstore(add(ptr, 0x20), 0x20)\n mstore(add(ptr, 0x40), 0x20)\n mstore(add(ptr, 0x60), b)\n mstore(add(ptr, 0x80), e)\n mstore(add(ptr, 0xa0), m)\n\n // Given the result < m, it's guaranteed to fit in 32 bytes,\n // so we can use the memory scratch space located at offset 0.\n success := staticcall(gas(), 0x05, ptr, 0xc0, 0x00, 0x20)\n result := mload(0x00)\n }\n }\n\n /**\n * @dev Variant of {modExp} that supports inputs of arbitrary length.\n */\n function modExp(bytes memory b, bytes memory e, bytes memory m) internal view returns (bytes memory) {\n (bool success, bytes memory result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Variant of {tryModExp} that supports inputs of arbitrary length.\n */\n function tryModExp(\n bytes memory b,\n bytes memory e,\n bytes memory m\n ) internal view returns (bool success, bytes memory result) {\n if (_zeroBytes(m)) return (false, new bytes(0));\n\n uint256 mLen = m.length;\n\n // Encode call args in result and move the free memory pointer\n result = abi.encodePacked(b.length, e.length, mLen, b, e, m);\n\n assembly (\"memory-safe\") {\n let dataPtr := add(result, 0x20)\n // Write result on top of args to avoid allocating extra memory.\n success := staticcall(gas(), 0x05, dataPtr, mload(result), dataPtr, mLen)\n // Overwrite the length.\n // result.length > returndatasize() is guaranteed because returndatasize() == m.length\n mstore(result, mLen)\n // Set the memory pointer after the returned data.\n mstore(0x40, add(dataPtr, mLen))\n }\n }\n\n /**\n * @dev Returns whether the provided byte array is zero.\n */\n function _zeroBytes(bytes memory byteArray) private pure returns (bool) {\n for (uint256 i = 0; i < byteArray.length; ++i) {\n if (byteArray[i] != 0) {\n return false;\n }\n }\n return true;\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 * This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n * using integer operations.\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n unchecked {\n // Take care of easy edge cases when a == 0 or a == 1\n if (a <= 1) {\n return a;\n }\n\n // In this function, we use Newton's method to get a root of `f(x) := x² - a`. It involves building a\n // sequence x_n that converges toward sqrt(a). For each iteration x_n, we also define the error between\n // the current value as `ε_n = | x_n - sqrt(a) |`.\n //\n // For our first estimation, we consider `e` the smallest power of 2 which is bigger than the square root\n // of the target. (i.e. `2**(e-1) ≤ sqrt(a) < 2**e`). We know that `e ≤ 128` because `(2¹²⁸)² = 2²⁵⁶` is\n // bigger than any uint256.\n //\n // By noticing that\n // `2**(e-1) ≤ sqrt(a) < 2**e → (2**(e-1))² ≤ a < (2**e)² → 2**(2*e-2) ≤ a < 2**(2*e)`\n // we can deduce that `e - 1` is `log2(a) / 2`. We can thus compute `x_n = 2**(e-1)` using a method similar\n // to the msb function.\n uint256 aa = a;\n uint256 xn = 1;\n\n if (aa >= (1 << 128)) {\n aa >>= 128;\n xn <<= 64;\n }\n if (aa >= (1 << 64)) {\n aa >>= 64;\n xn <<= 32;\n }\n if (aa >= (1 << 32)) {\n aa >>= 32;\n xn <<= 16;\n }\n if (aa >= (1 << 16)) {\n aa >>= 16;\n xn <<= 8;\n }\n if (aa >= (1 << 8)) {\n aa >>= 8;\n xn <<= 4;\n }\n if (aa >= (1 << 4)) {\n aa >>= 4;\n xn <<= 2;\n }\n if (aa >= (1 << 2)) {\n xn <<= 1;\n }\n\n // We now have x_n such that `x_n = 2**(e-1) ≤ sqrt(a) < 2**e = 2 * x_n`. This implies ε_n ≤ 2**(e-1).\n //\n // We can refine our estimation by noticing that the middle of that interval minimizes the error.\n // If we move x_n to equal 2**(e-1) + 2**(e-2), then we reduce the error to ε_n ≤ 2**(e-2).\n // This is going to be our x_0 (and ε_0)\n xn = (3 * xn) >> 1; // ε_0 := | x_0 - sqrt(a) | ≤ 2**(e-2)\n\n // From here, Newton's method give us:\n // x_{n+1} = (x_n + a / x_n) / 2\n //\n // One should note that:\n // x_{n+1}² - a = ((x_n + a / x_n) / 2)² - a\n // = ((x_n² + a) / (2 * x_n))² - a\n // = (x_n⁴ + 2 * a * x_n² + a²) / (4 * x_n²) - a\n // = (x_n⁴ + 2 * a * x_n² + a² - 4 * a * x_n²) / (4 * x_n²)\n // = (x_n⁴ - 2 * a * x_n² + a²) / (4 * x_n²)\n // = (x_n² - a)² / (2 * x_n)²\n // = ((x_n² - a) / (2 * x_n))²\n // ≥ 0\n // Which proves that for all n ≥ 1, sqrt(a) ≤ x_n\n //\n // This gives us the proof of quadratic convergence of the sequence:\n // ε_{n+1} = | x_{n+1} - sqrt(a) |\n // = | (x_n + a / x_n) / 2 - sqrt(a) |\n // = | (x_n² + a - 2*x_n*sqrt(a)) / (2 * x_n) |\n // = | (x_n - sqrt(a))² / (2 * x_n) |\n // = | ε_n² / (2 * x_n) |\n // = ε_n² / | (2 * x_n) |\n //\n // For the first iteration, we have a special case where x_0 is known:\n // ε_1 = ε_0² / | (2 * x_0) |\n // ≤ (2**(e-2))² / (2 * (2**(e-1) + 2**(e-2)))\n // ≤ 2**(2*e-4) / (3 * 2**(e-1))\n // ≤ 2**(e-3) / 3\n // ≤ 2**(e-3-log2(3))\n // ≤ 2**(e-4.5)\n //\n // For the following iterations, we use the fact that, 2**(e-1) ≤ sqrt(a) ≤ x_n:\n // ε_{n+1} = ε_n² / | (2 * x_n) |\n // ≤ (2**(e-k))² / (2 * 2**(e-1))\n // ≤ 2**(2*e-2*k) / 2**e\n // ≤ 2**(e-2*k)\n xn = (xn + a / xn) >> 1; // ε_1 := | x_1 - sqrt(a) | ≤ 2**(e-4.5) -- special case, see above\n xn = (xn + a / xn) >> 1; // ε_2 := | x_2 - sqrt(a) | ≤ 2**(e-9) -- general case with k = 4.5\n xn = (xn + a / xn) >> 1; // ε_3 := | x_3 - sqrt(a) | ≤ 2**(e-18) -- general case with k = 9\n xn = (xn + a / xn) >> 1; // ε_4 := | x_4 - sqrt(a) | ≤ 2**(e-36) -- general case with k = 18\n xn = (xn + a / xn) >> 1; // ε_5 := | x_5 - sqrt(a) | ≤ 2**(e-72) -- general case with k = 36\n xn = (xn + a / xn) >> 1; // ε_6 := | x_6 - sqrt(a) | ≤ 2**(e-144) -- general case with k = 72\n\n // Because e ≤ 128 (as discussed during the first estimation phase), we know have reached a precision\n // ε_6 ≤ 2**(e-144) < 1. Given we're operating on integers, then we can ensure that xn is now either\n // sqrt(a) or sqrt(a) + 1.\n return xn - SafeCast.toUint(xn > a / xn);\n }\n }\n\n /**\n * @dev 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 + SafeCast.toUint(unsignedRoundsUp(rounding) && result * result < a);\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 uint256 exp;\n unchecked {\n exp = 128 * SafeCast.toUint(value > (1 << 128) - 1);\n value >>= exp;\n result += exp;\n\n exp = 64 * SafeCast.toUint(value > (1 << 64) - 1);\n value >>= exp;\n result += exp;\n\n exp = 32 * SafeCast.toUint(value > (1 << 32) - 1);\n value >>= exp;\n result += exp;\n\n exp = 16 * SafeCast.toUint(value > (1 << 16) - 1);\n value >>= exp;\n result += exp;\n\n exp = 8 * SafeCast.toUint(value > (1 << 8) - 1);\n value >>= exp;\n result += exp;\n\n exp = 4 * SafeCast.toUint(value > (1 << 4) - 1);\n value >>= exp;\n result += exp;\n\n exp = 2 * SafeCast.toUint(value > (1 << 2) - 1);\n value >>= exp;\n result += exp;\n\n result += SafeCast.toUint(value > 1);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << result < value);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 10 ** result < value);\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 uint256 isGt;\n unchecked {\n isGt = SafeCast.toUint(value > (1 << 128) - 1);\n value >>= isGt * 128;\n result += isGt * 16;\n\n isGt = SafeCast.toUint(value > (1 << 64) - 1);\n value >>= isGt * 64;\n result += isGt * 8;\n\n isGt = SafeCast.toUint(value > (1 << 32) - 1);\n value >>= isGt * 32;\n result += isGt * 4;\n\n isGt = SafeCast.toUint(value > (1 << 16) - 1);\n value >>= isGt * 16;\n result += isGt * 2;\n\n result += SafeCast.toUint(value > (1 << 8) - 1);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << (result << 3) < value);\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.1.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/bool 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 /**\n * @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump.\n */\n function toUint(bool b) internal pure returns (uint256 u) {\n assembly (\"memory-safe\") {\n u := iszero(iszero(b))\n }\n }\n}\n" - }, - "@openzeppelin/contracts/utils/Panic.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n * using Panic for uint256;\n *\n * // Use any of the declared internal constants\n * function foo() { Panic.GENERIC.panic(); }\n *\n * // Alternatively\n * function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n *\n * _Available since v5.1._\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n /// @dev generic / unspecified error\n uint256 internal constant GENERIC = 0x00;\n /// @dev used by the assert() builtin\n uint256 internal constant ASSERT = 0x01;\n /// @dev arithmetic underflow or overflow\n uint256 internal constant UNDER_OVERFLOW = 0x11;\n /// @dev division or modulo by zero\n uint256 internal constant DIVISION_BY_ZERO = 0x12;\n /// @dev enum conversion error\n uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n /// @dev invalid encoding in storage\n uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n /// @dev empty array pop\n uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n /// @dev array out of bounds access\n uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n /// @dev resource error (too large allocation or too large array)\n uint256 internal constant RESOURCE_ERROR = 0x41;\n /// @dev calling invalid internal function\n uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n /// @dev Reverts with a panic code. Recommended to use with\n /// the internal constants with predefined codes.\n function panic(uint256 code) internal pure {\n assembly (\"memory-safe\") {\n mstore(0x00, 0x4e487b71)\n mstore(0x20, code)\n revert(0x1c, 0x24)\n }\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.1.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 ERC-1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\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 *\n * TIP: Consider using this library along with {SlotDerivation}.\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 Int256Slot {\n int256 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 assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Int256Slot` with member `value` located at `slot`.\n */\n function getInt256Slot(bytes32 slot) internal pure returns (Int256Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n assembly (\"memory-safe\") {\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 assembly (\"memory-safe\") {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns a `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n assembly (\"memory-safe\") {\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 assembly (\"memory-safe\") {\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/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, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.8", - ".4" - ], - "nodeType": "PragmaDirective", - "src": "31:24:0" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ENS", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "id": 136, - "linearizedBaseContracts": [ - 136 - ], - "name": "ENS", - "nameLocation": "67:3:0", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "eventSelector": "ce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82", - "id": 9, - "name": "NewOwner", - "nameLocation": "156:8:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 8, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3, - "indexed": true, - "mutability": "mutable", - "name": "node", - "nameLocation": "181:4:0", - "nodeType": "VariableDeclaration", - "scope": 9, - "src": "165:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "165:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5, - "indexed": true, - "mutability": "mutable", - "name": "label", - "nameLocation": "203:5:0", - "nodeType": "VariableDeclaration", - "scope": 9, - "src": "187:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "187:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7, - "indexed": false, - "mutability": "mutable", - "name": "owner", - "nameLocation": "218:5:0", - "nodeType": "VariableDeclaration", - "scope": 9, - "src": "210:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "210:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "164:60:0" - }, - "src": "150:75:0" - }, - { - "anonymous": false, - "eventSelector": "d4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266", - "id": 15, - "name": "Transfer", - "nameLocation": "314:8:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 14, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11, - "indexed": true, - "mutability": "mutable", - "name": "node", - "nameLocation": "339:4:0", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "323:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "323:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13, - "indexed": false, - "mutability": "mutable", - "name": "owner", - "nameLocation": "353:5:0", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "345:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "345:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "322:37:0" - }, - "src": "308:52:0" - }, - { - "anonymous": false, - "eventSelector": "335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0", - "id": 21, - "name": "NewResolver", - "nameLocation": "424:11:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 20, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "indexed": true, - "mutability": "mutable", - "name": "node", - "nameLocation": "452:4:0", - "nodeType": "VariableDeclaration", - "scope": 21, - "src": "436:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 16, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "436:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 19, - "indexed": false, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "466:8:0", - "nodeType": "VariableDeclaration", - "scope": 21, - "src": "458:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "458:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "435:40:0" - }, - "src": "418:58:0" - }, - { - "anonymous": false, - "eventSelector": "1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68", - "id": 27, - "name": "NewTTL", - "nameLocation": "533:6:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 26, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 23, - "indexed": true, - "mutability": "mutable", - "name": "node", - "nameLocation": "556:4:0", - "nodeType": "VariableDeclaration", - "scope": 27, - "src": "540:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 22, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "540:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 25, - "indexed": false, - "mutability": "mutable", - "name": "ttl", - "nameLocation": "569:3:0", - "nodeType": "VariableDeclaration", - "scope": 27, - "src": "562:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 24, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "562:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "539:34:0" - }, - "src": "527:47:0" - }, - { - "anonymous": false, - "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", - "id": 35, - "name": "ApprovalForAll", - "nameLocation": "638:14:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 34, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 29, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "678:5:0", - "nodeType": "VariableDeclaration", - "scope": 35, - "src": "662:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "662:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31, - "indexed": true, - "mutability": "mutable", - "name": "operator", - "nameLocation": "709:8:0", - "nodeType": "VariableDeclaration", - "scope": 35, - "src": "693:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "693:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33, - "indexed": false, - "mutability": "mutable", - "name": "approved", - "nameLocation": "732:8:0", - "nodeType": "VariableDeclaration", - "scope": 35, - "src": "727:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 32, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "727:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "652:94:0" - }, - "src": "632:115:0" - }, - { - "functionSelector": "cf408823", - "id": 46, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setRecord", - "nameLocation": "762:9:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 44, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 37, - "mutability": "mutable", - "name": "node", - "nameLocation": "789:4:0", - "nodeType": "VariableDeclaration", - "scope": 46, - "src": "781:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 36, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "781:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 39, - "mutability": "mutable", - "name": "owner", - "nameLocation": "811:5:0", - "nodeType": "VariableDeclaration", - "scope": 46, - "src": "803:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 38, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "803:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 41, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "834:8:0", - "nodeType": "VariableDeclaration", - "scope": 46, - "src": "826:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 40, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "826:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 43, - "mutability": "mutable", - "name": "ttl", - "nameLocation": "859:3:0", - "nodeType": "VariableDeclaration", - "scope": 46, - "src": "852:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 42, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "852:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "771:97:0" - }, - "returnParameters": { - "id": 45, - "nodeType": "ParameterList", - "parameters": [], - "src": "877:0:0" - }, - "scope": 136, - "src": "753:125:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "5ef2c7f0", - "id": 59, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSubnodeRecord", - "nameLocation": "893:16:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 57, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 48, - "mutability": "mutable", - "name": "node", - "nameLocation": "927:4:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "919:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 47, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "919:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 50, - "mutability": "mutable", - "name": "label", - "nameLocation": "949:5:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "941:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 49, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "941:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 52, - "mutability": "mutable", - "name": "owner", - "nameLocation": "972:5:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "964:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "964:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 54, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "995:8:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "987:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "987:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 56, - "mutability": "mutable", - "name": "ttl", - "nameLocation": "1020:3:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "1013:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 55, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1013:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "909:120:0" - }, - "returnParameters": { - "id": 58, - "nodeType": "ParameterList", - "parameters": [], - "src": "1038:0:0" - }, - "scope": 136, - "src": "884:155:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "06ab5923", - "id": 70, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSubnodeOwner", - "nameLocation": "1054:15:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 66, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 61, - "mutability": "mutable", - "name": "node", - "nameLocation": "1087:4:0", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "1079:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 60, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1079:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 63, - "mutability": "mutable", - "name": "label", - "nameLocation": "1109:5:0", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "1101:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 62, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1101:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1132:5:0", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "1124:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 64, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1124:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1069:74:0" - }, - "returnParameters": { - "id": 69, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 68, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "1162:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 67, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1162:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1161:9:0" - }, - "scope": 136, - "src": "1045:126:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "1896f70a", - "id": 77, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setResolver", - "nameLocation": "1186:11:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 75, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 72, - "mutability": "mutable", - "name": "node", - "nameLocation": "1206:4:0", - "nodeType": "VariableDeclaration", - "scope": 77, - "src": "1198:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 71, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1198:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 74, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "1220:8:0", - "nodeType": "VariableDeclaration", - "scope": 77, - "src": "1212:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 73, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1212:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1197:32:0" - }, - "returnParameters": { - "id": 76, - "nodeType": "ParameterList", - "parameters": [], - "src": "1238:0:0" - }, - "scope": 136, - "src": "1177:62:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "5b0fc9c3", - "id": 84, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setOwner", - "nameLocation": "1254:8:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 82, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 79, - "mutability": "mutable", - "name": "node", - "nameLocation": "1271:4:0", - "nodeType": "VariableDeclaration", - "scope": 84, - "src": "1263:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 78, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1263:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 81, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1285:5:0", - "nodeType": "VariableDeclaration", - "scope": 84, - "src": "1277:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1277:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1262:29:0" - }, - "returnParameters": { - "id": 83, - "nodeType": "ParameterList", - "parameters": [], - "src": "1300:0:0" - }, - "scope": 136, - "src": "1245:56:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "14ab9038", - "id": 91, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setTTL", - "nameLocation": "1316:6:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 89, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 86, - "mutability": "mutable", - "name": "node", - "nameLocation": "1331:4:0", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "1323:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 85, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1323:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 88, - "mutability": "mutable", - "name": "ttl", - "nameLocation": "1344:3:0", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "1337:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 87, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1337:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "1322:26:0" - }, - "returnParameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [], - "src": "1357:0:0" - }, - "scope": 136, - "src": "1307:51:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "a22cb465", - "id": 98, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nameLocation": "1373:17:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 96, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "operator", - "nameLocation": "1399:8:0", - "nodeType": "VariableDeclaration", - "scope": 98, - "src": "1391:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1391:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 95, - "mutability": "mutable", - "name": "approved", - "nameLocation": "1414:8:0", - "nodeType": "VariableDeclaration", - "scope": 98, - "src": "1409:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 94, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1409:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1390:33:0" - }, - "returnParameters": { - "id": 97, - "nodeType": "ParameterList", - "parameters": [], - "src": "1432:0:0" - }, - "scope": 136, - "src": "1364:69:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "02571be3", - "id": 105, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "owner", - "nameLocation": "1448:5:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "mutability": "mutable", - "name": "node", - "nameLocation": "1462:4:0", - "nodeType": "VariableDeclaration", - "scope": 105, - "src": "1454:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 99, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1454:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1453:14:0" - }, - "returnParameters": { - "id": 104, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 103, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 105, - "src": "1491:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1491:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1490:9:0" - }, - "scope": 136, - "src": "1439:61:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "0178b8bf", - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "resolver", - "nameLocation": "1515:8:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 107, - "mutability": "mutable", - "name": "node", - "nameLocation": "1532:4:0", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "1524:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 106, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1524:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1523:14:0" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "1561:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 109, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1561:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1560:9:0" - }, - "scope": 136, - "src": "1506:64:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "16a25cbd", - "id": 119, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ttl", - "nameLocation": "1585:3:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "mutability": "mutable", - "name": "node", - "nameLocation": "1597:4:0", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1589:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 113, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1589:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1588:14:0" - }, - "returnParameters": { - "id": 118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1626:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 116, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1626:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "1625:8:0" - }, - "scope": 136, - "src": "1576:58:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "f79fe538", - "id": 126, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "recordExists", - "nameLocation": "1649:12:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 121, - "mutability": "mutable", - "name": "node", - "nameLocation": "1670:4:0", - "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1662:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 120, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1662:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1661:14:0" - }, - "returnParameters": { - "id": 125, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1699:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 123, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1699:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1698:6:0" - }, - "scope": 136, - "src": "1640:65:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "e985e9c5", - "id": 135, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nameLocation": "1720:16:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 131, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 128, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1754:5:0", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1746:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 127, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1746:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 130, - "mutability": "mutable", - "name": "operator", - "nameLocation": "1777:8:0", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1769:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 129, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1769:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1736:55:0" - }, - "returnParameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1815:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 132, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1815:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1814:6:0" - }, - "scope": 136, - "src": "1711:110:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 137, - "src": "57:1766:0", - "usedErrors": [], - "usedEvents": [ - 9, - 15, - 21, - 27, - 35 - ] - } - ], - "src": "31: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": [ - "1115:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1146, - "src": "1115:13:2" - }, - "id": 569, - "nodeType": "InheritanceSpecifier", - "src": "1115:13:2" - }, - { - "baseName": { - "id": 570, - "name": "OwnableUpgradeable", - "nameLocations": [ - "1130:18:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 892, - "src": "1130:18:2" - }, - "id": 571, - "nodeType": "InheritanceSpecifier", - "src": "1130:18:2" - } - ], - "canonicalName": "Ownable2StepUpgradeable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 567, - "nodeType": "StructuredDocumentation", - "src": "259:810: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 This extension of the {Ownable} contract includes a two-step mechanism to transfer\n ownership, where the new owner must call {acceptOwnership} in order to replace the\n old one. This can help prevent common mistakes, such as transfers of ownership to\n incorrect accounts, or to contracts that are unable to interact with the\n permission system.\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": "1088:23:2", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Ownable2StepUpgradeable.Ownable2StepStorage", - "documentation": { - "id": 572, - "nodeType": "StructuredDocumentation", - "src": "1155:70:2", - "text": "@custom:storage-location erc7201:openzeppelin.storage.Ownable2Step" - }, - "id": 575, - "members": [ - { - "constant": false, - "id": 574, - "mutability": "mutable", - "name": "_pendingOwner", - "nameLocation": "1275:13:2", - "nodeType": "VariableDeclaration", - "scope": 575, - "src": "1267:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1267:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "name": "Ownable2StepStorage", - "nameLocation": "1237:19:2", - "nodeType": "StructDefinition", - "scope": 697, - "src": "1230:65:2", - "visibility": "public" - }, - { - "constant": true, - "id": 578, - "mutability": "constant", - "name": "Ownable2StepStorageLocation", - "nameLocation": "1442:27:2", - "nodeType": "VariableDeclaration", - "scope": 697, - "src": "1417:121:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 576, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1417: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": "1472: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": "1633:86:2", - "statements": [ - { - "AST": { - "nativeSrc": "1652:61:2", - "nodeType": "YulBlock", - "src": "1652:61:2", - "statements": [ - { - "nativeSrc": "1666:37:2", - "nodeType": "YulAssignment", - "src": "1666:37:2", - "value": { - "name": "Ownable2StepStorageLocation", - "nativeSrc": "1676:27:2", - "nodeType": "YulIdentifier", - "src": "1676:27:2" - }, - "variableNames": [ - { - "name": "$.slot", - "nativeSrc": "1666:6:2", - "nodeType": "YulIdentifier", - "src": "1666:6:2" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 582, - "isOffset": false, - "isSlot": true, - "src": "1666:6:2", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 578, - "isOffset": false, - "isSlot": false, - "src": "1676:27:2", - "valueSize": 1 - } - ], - "id": 584, - "nodeType": "InlineAssembly", - "src": "1643:70:2" - } - ] - }, - "id": 586, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getOwnable2StepStorage", - "nameLocation": "1554:23:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 579, - "nodeType": "ParameterList", - "parameters": [], - "src": "1577:2:2" - }, - "returnParameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 582, - "mutability": "mutable", - "name": "$", - "nameLocation": "1630:1:2", - "nodeType": "VariableDeclaration", - "scope": 586, - "src": "1602: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": [ - "1602:19:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 575, - "src": "1602:19:2" - }, - "referencedDeclaration": 575, - "src": "1602:19:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", - "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" - } - }, - "visibility": "internal" - } - ], - "src": "1601:31:2" - }, - "scope": 697, - "src": "1545:174:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "anonymous": false, - "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", - "id": 592, - "name": "OwnershipTransferStarted", - "nameLocation": "1731:24:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 591, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 588, - "indexed": true, - "mutability": "mutable", - "name": "previousOwner", - "nameLocation": "1772:13:2", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "1756:29:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1756:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 590, - "indexed": true, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "1803:8:2", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "1787:24:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 589, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1787:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1755:57:2" - }, - "src": "1725:88:2" - }, - { - "body": { - "id": 597, - "nodeType": "Block", - "src": "1876:7:2", - "statements": [] - }, - "id": 598, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 595, - "kind": "modifierInvocation", - "modifierName": { - "id": 594, - "name": "onlyInitializing", - "nameLocations": [ - "1859:16:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1055, - "src": "1859:16:2" - }, - "nodeType": "ModifierInvocation", - "src": "1859:16:2" - } - ], - "name": "__Ownable2Step_init", - "nameLocation": "1828:19:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 593, - "nodeType": "ParameterList", - "parameters": [], - "src": "1847:2:2" - }, - "returnParameters": { - "id": 596, - "nodeType": "ParameterList", - "parameters": [], - "src": "1876:0:2" - }, - "scope": 697, - "src": "1819:64:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 603, - "nodeType": "Block", - "src": "1956:7:2", - "statements": [] - }, - "id": 604, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 601, - "kind": "modifierInvocation", - "modifierName": { - "id": 600, - "name": "onlyInitializing", - "nameLocations": [ - "1939:16:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1055, - "src": "1939:16:2" - }, - "nodeType": "ModifierInvocation", - "src": "1939:16:2" - } - ], - "name": "__Ownable2Step_init_unchained", - "nameLocation": "1898:29:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 599, - "nodeType": "ParameterList", - "parameters": [], - "src": "1927:2:2" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "1956:0:2" - }, - "scope": 697, - "src": "1889:74:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 619, - "nodeType": "Block", - "src": "2100:106:2", - "statements": [ - { - "assignments": [ - 612 - ], - "declarations": [ - { - "constant": false, - "id": 612, - "mutability": "mutable", - "name": "$", - "nameLocation": "2138:1:2", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "2110: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": [ - "2110:19:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 575, - "src": "2110:19:2" - }, - "referencedDeclaration": 575, - "src": "2110: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": "2142: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": "2142:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", - "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2110:57:2" - }, - { - "expression": { - "expression": { - "id": 616, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 612, - "src": "2184: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": "2186:13:2", - "memberName": "_pendingOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 574, - "src": "2184:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 609, - "id": 618, - "nodeType": "Return", - "src": "2177:22:2" - } - ] - }, - "documentation": { - "id": 605, - "nodeType": "StructuredDocumentation", - "src": "1968:65:2", - "text": " @dev Returns the address of the pending owner." - }, - "functionSelector": "e30c3978", - "id": 620, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pendingOwner", - "nameLocation": "2047:12:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 606, - "nodeType": "ParameterList", - "parameters": [], - "src": "2059:2:2" - }, - "returnParameters": { - "id": 609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 608, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 620, - "src": "2091:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 607, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2091:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2090:9:2" - }, - "scope": 697, - "src": "2038:168:2", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 862 - ], - "body": { - "id": 647, - "nodeType": "Block", - "src": "2603:168:2", - "statements": [ - { - "assignments": [ - 631 - ], - "declarations": [ - { - "constant": false, - "id": 631, - "mutability": "mutable", - "name": "$", - "nameLocation": "2641:1:2", - "nodeType": "VariableDeclaration", - "scope": 647, - "src": "2613: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": [ - "2613:19:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 575, - "src": "2613:19:2" - }, - "referencedDeclaration": 575, - "src": "2613: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": "2645: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": "2645:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", - "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2613:57:2" - }, - { - "expression": { - "id": 639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 635, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 631, - "src": "2680: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": "2682:13:2", - "memberName": "_pendingOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 574, - "src": "2680:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 638, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "2698:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2680:26:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 640, - "nodeType": "ExpressionStatement", - "src": "2680:26:2" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 642, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "2746: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": "2746:7:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 644, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "2755: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": "2721: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": "2721:43:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 646, - "nodeType": "EmitStatement", - "src": "2716:48:2" - } - ] - }, - "documentation": { - "id": 621, - "nodeType": "StructuredDocumentation", - "src": "2212:307: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.\n Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer." - }, - "functionSelector": "f2fde38b", - "id": 648, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 627, - "kind": "modifierInvocation", - "modifierName": { - "id": 626, - "name": "onlyOwner", - "nameLocations": [ - "2593:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 787, - "src": "2593:9:2" - }, - "nodeType": "ModifierInvocation", - "src": "2593:9:2" - } - ], - "name": "transferOwnership", - "nameLocation": "2533:17:2", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 625, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2584:8:2" - }, - "parameters": { - "id": 624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 623, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "2559:8:2", - "nodeType": "VariableDeclaration", - "scope": 648, - "src": "2551:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2551:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2550:18:2" - }, - "returnParameters": { - "id": 628, - "nodeType": "ParameterList", - "parameters": [], - "src": "2603:0:2" - }, - "scope": 697, - "src": "2524:247:2", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 891 - ], - "body": { - "id": 671, - "nodeType": "Block", - "src": "3027:150:2", - "statements": [ - { - "assignments": [ - 657 - ], - "declarations": [ - { - "constant": false, - "id": 657, - "mutability": "mutable", - "name": "$", - "nameLocation": "3065:1:2", - "nodeType": "VariableDeclaration", - "scope": 671, - "src": "3037: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": [ - "3037:19:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 575, - "src": "3037:19:2" - }, - "referencedDeclaration": 575, - "src": "3037: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": "3069: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": "3069:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", - "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3037:57:2" - }, - { - "expression": { - "id": 663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "3104:22:2", - "subExpression": { - "expression": { - "id": 661, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 657, - "src": "3111: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": "3113:13:2", - "memberName": "_pendingOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 574, - "src": "3111:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 664, - "nodeType": "ExpressionStatement", - "src": "3104:22:2" - }, - { - "expression": { - "arguments": [ - { - "id": 668, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 651, - "src": "3161: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": "3136: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": "3142:18:2", - "memberName": "_transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 891, - "src": "3136: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": "3136:34:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 670, - "nodeType": "ExpressionStatement", - "src": "3136:34:2" - } - ] - }, - "documentation": { - "id": 649, - "nodeType": "StructuredDocumentation", - "src": "2777: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": "2964:18:2", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 653, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "3018:8:2" - }, - "parameters": { - "id": 652, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 651, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "2991:8:2", - "nodeType": "VariableDeclaration", - "scope": 672, - "src": "2983:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 650, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2983:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2982:18:2" - }, - "returnParameters": { - "id": 654, - "nodeType": "ParameterList", - "parameters": [], - "src": "3027:0:2" - }, - "scope": 697, - "src": "2955:222:2", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 695, - "nodeType": "Block", - "src": "3299:187:2", - "statements": [ - { - "assignments": [ - 677 - ], - "declarations": [ - { - "constant": false, - "id": 677, - "mutability": "mutable", - "name": "sender", - "nameLocation": "3317:6:2", - "nodeType": "VariableDeclaration", - "scope": 695, - "src": "3309:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3309: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": "3326: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": "3326:12:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3309: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": "3352: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": "3352:14:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 683, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3370:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3352:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 690, - "nodeType": "IfStatement", - "src": "3348:96:2", - "trueBody": { - "id": 689, - "nodeType": "Block", - "src": "3378:66:2", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 686, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3426: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": "3399: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": "3399:34:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 688, - "nodeType": "RevertStatement", - "src": "3392:41:2" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 692, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3472: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": "3453: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": "3453:26:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 694, - "nodeType": "ExpressionStatement", - "src": "3453:26:2" - } - ] - }, - "documentation": { - "id": 673, - "nodeType": "StructuredDocumentation", - "src": "3183:69:2", - "text": " @dev The new owner accepts the ownership transfer." - }, - "functionSelector": "79ba5097", - "id": 696, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "acceptOwnership", - "nameLocation": "3266:15:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 674, - "nodeType": "ParameterList", - "parameters": [], - "src": "3281:2:2" - }, - "returnParameters": { - "id": 675, - "nodeType": "ParameterList", - "parameters": [], - "src": "3299:0:2" - }, - "scope": 697, - "src": "3257:229:2", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - } - ], - "scope": 698, - "src": "1070:2418:2", - "usedErrors": [ - 728, - 733, - 909, - 912 - ], - "usedEvents": [ - 592, - 739, - 917 - ] - } - ], - "src": "107:3382: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": [ - 3417 - ], - "ERC165": [ - 3756 - ], - "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": 3418, - "src": "187:45:6", - "symbolAliases": [ - { - "foreign": { - "id": 1197, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "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": 3757, - "src": "233:57:6", - "symbolAliases": [ - { - "foreign": { - "id": 1199, - "name": "ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "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": 3417, - "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": 3756, - "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, - 3756, - 3768, - 1571, - 3417 - ], - "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": [ - 3755 - ], - "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": 3755, - "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": 3399, - "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": 3399, - "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": 3399, - "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": 3399, - "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:90:7", - "text": " @dev External interface of AccessControl declared to support ERC-165 detection." - }, - "fullyImplemented": false, - "id": 1571, - "linearizedBaseContracts": [ - 1571 - ], - "name": "IAccessControl", - "nameLocation": "236:14:7", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 1492, - "nodeType": "StructuredDocumentation", - "src": "257:56:7", - "text": " @dev The `account` is missing a role." - }, - "errorSelector": "e2517d3f", - "id": 1498, - "name": "AccessControlUnauthorizedAccount", - "nameLocation": "324:32:7", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1494, - "mutability": "mutable", - "name": "account", - "nameLocation": "365:7:7", - "nodeType": "VariableDeclaration", - "scope": 1498, - "src": "357:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "357:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1496, - "mutability": "mutable", - "name": "neededRole", - "nameLocation": "382:10:7", - "nodeType": "VariableDeclaration", - "scope": 1498, - "src": "374:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1495, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "374:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "356:37:7" - }, - "src": "318:76:7" - }, - { - "documentation": { - "id": 1499, - "nodeType": "StructuredDocumentation", - "src": "400: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": "559:28:7", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1500, - "nodeType": "ParameterList", - "parameters": [], - "src": "587:2:7" - }, - "src": "553:37:7" - }, - { - "anonymous": false, - "documentation": { - "id": 1502, - "nodeType": "StructuredDocumentation", - "src": "596: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": "861:16:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 1509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1504, - "indexed": true, - "mutability": "mutable", - "name": "role", - "nameLocation": "894:4:7", - "nodeType": "VariableDeclaration", - "scope": 1510, - "src": "878:20:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1503, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "878:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1506, - "indexed": true, - "mutability": "mutable", - "name": "previousAdminRole", - "nameLocation": "916:17:7", - "nodeType": "VariableDeclaration", - "scope": 1510, - "src": "900:33:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1505, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "900:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1508, - "indexed": true, - "mutability": "mutable", - "name": "newAdminRole", - "nameLocation": "951:12:7", - "nodeType": "VariableDeclaration", - "scope": 1510, - "src": "935:28:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1507, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "935:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "877:87:7" - }, - "src": "855:110:7" - }, - { - "anonymous": false, - "documentation": { - "id": 1511, - "nodeType": "StructuredDocumentation", - "src": "971:295:7", - "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n Expected in cases where the role was granted using the internal {AccessControl-_grantRole}." - }, - "eventSelector": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "id": 1519, - "name": "RoleGranted", - "nameLocation": "1277:11:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 1518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1513, - "indexed": true, - "mutability": "mutable", - "name": "role", - "nameLocation": "1305:4:7", - "nodeType": "VariableDeclaration", - "scope": 1519, - "src": "1289:20:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1512, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1289:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1515, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "1327:7:7", - "nodeType": "VariableDeclaration", - "scope": 1519, - "src": "1311:23:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1514, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1311:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1517, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nameLocation": "1352:6:7", - "nodeType": "VariableDeclaration", - "scope": 1519, - "src": "1336:22:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1516, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1336:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1288:71:7" - }, - "src": "1271:89:7" - }, - { - "anonymous": false, - "documentation": { - "id": 1520, - "nodeType": "StructuredDocumentation", - "src": "1366: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": "1652:11:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 1527, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1522, - "indexed": true, - "mutability": "mutable", - "name": "role", - "nameLocation": "1680:4:7", - "nodeType": "VariableDeclaration", - "scope": 1528, - "src": "1664:20:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1521, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1664:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1524, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "1702:7:7", - "nodeType": "VariableDeclaration", - "scope": 1528, - "src": "1686:23:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1523, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1686:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1526, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nameLocation": "1727:6:7", - "nodeType": "VariableDeclaration", - "scope": 1528, - "src": "1711:22:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1711:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1663:71:7" - }, - "src": "1646:89:7" - }, - { - "documentation": { - "id": 1529, - "nodeType": "StructuredDocumentation", - "src": "1741:76:7", - "text": " @dev Returns `true` if `account` has been granted `role`." - }, - "functionSelector": "91d14854", - "id": 1538, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "hasRole", - "nameLocation": "1831:7:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1531, - "mutability": "mutable", - "name": "role", - "nameLocation": "1847:4:7", - "nodeType": "VariableDeclaration", - "scope": 1538, - "src": "1839:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1530, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1839:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1533, - "mutability": "mutable", - "name": "account", - "nameLocation": "1861:7:7", - "nodeType": "VariableDeclaration", - "scope": 1538, - "src": "1853:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1532, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1853:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1838:31:7" - }, - "returnParameters": { - "id": 1537, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1536, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1538, - "src": "1893:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1535, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1893:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1892:6:7" - }, - "scope": 1571, - "src": "1822:77:7", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1539, - "nodeType": "StructuredDocumentation", - "src": "1905: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": "2103:12:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1542, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1541, - "mutability": "mutable", - "name": "role", - "nameLocation": "2124:4:7", - "nodeType": "VariableDeclaration", - "scope": 1546, - "src": "2116:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1540, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2116:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2115:14:7" - }, - "returnParameters": { - "id": 1545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1544, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1546, - "src": "2153:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1543, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2153:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2152:9:7" - }, - "scope": 1571, - "src": "2094:68:7", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1547, - "nodeType": "StructuredDocumentation", - "src": "2168: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": "2421:9:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1552, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1549, - "mutability": "mutable", - "name": "role", - "nameLocation": "2439:4:7", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2431:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1548, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2431:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1551, - "mutability": "mutable", - "name": "account", - "nameLocation": "2453:7:7", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2445:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1550, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2445:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2430:31:7" - }, - "returnParameters": { - "id": 1553, - "nodeType": "ParameterList", - "parameters": [], - "src": "2470:0:7" - }, - "scope": 1571, - "src": "2412:59:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1555, - "nodeType": "StructuredDocumentation", - "src": "2477: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": "2714:10:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1557, - "mutability": "mutable", - "name": "role", - "nameLocation": "2733:4:7", - "nodeType": "VariableDeclaration", - "scope": 1562, - "src": "2725:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1556, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2725:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1559, - "mutability": "mutable", - "name": "account", - "nameLocation": "2747:7:7", - "nodeType": "VariableDeclaration", - "scope": 1562, - "src": "2739:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1558, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2739:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2724:31:7" - }, - "returnParameters": { - "id": 1561, - "nodeType": "ParameterList", - "parameters": [], - "src": "2764:0:7" - }, - "scope": 1571, - "src": "2705:60:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1563, - "nodeType": "StructuredDocumentation", - "src": "2771: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": "3276:12:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1568, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1565, - "mutability": "mutable", - "name": "role", - "nameLocation": "3297:4:7", - "nodeType": "VariableDeclaration", - "scope": 1570, - "src": "3289:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1564, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3289:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1567, - "mutability": "mutable", - "name": "callerConfirmation", - "nameLocation": "3311:18:7", - "nodeType": "VariableDeclaration", - "scope": 1570, - "src": "3303:26:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3303:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3288:42:7" - }, - "returnParameters": { - "id": 1569, - "nodeType": "ParameterList", - "parameters": [], - "src": "3339:0:7" - }, - "scope": 1571, - "src": "3267:73:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 1572, - "src": "226:3116:7", - "usedErrors": [ - 1498, - 1501 - ], - "usedEvents": [ - 1510, - 1519, - 1528 - ] - } - ], - "src": "109:3234:7" - }, - "id": 7 - }, - "@openzeppelin/contracts/access/Ownable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "exportedSymbols": { - "Context": [ - 3417 - ], - "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": 3418, - "src": "128:45:8", - "symbolAliases": [ - { - "foreign": { - "id": 1574, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "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": 3417, - "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, - 3417 - ], - "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": 3399, - "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": 3399, - "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": [ - 5374 - ], - "SafeCast": [ - 7139 - ] - }, - "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": 7140, - "src": "317:55:9", - "symbolAliases": [ - { - "foreign": { - "id": 1727, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "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": 5375, - "src": "373:47:9", - "symbolAliases": [ - { - "foreign": { - "id": 1729, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5374, - "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, - 3756, - 3768, - 2566, - 2535, - 1571, - 3417 - ], - "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": 7139, - "src": "8447:8:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 2133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8456:8:9", - "memberName": "toUint48", - "nodeType": "MemberAccess", - "referencedDeclaration": 6129, - "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": 3399, - "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": 3399, - "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": 7139, - "src": "10665:8:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 2267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10674:8:9", - "memberName": "toUint48", - "nodeType": "MemberAccess", - "referencedDeclaration": 6129, - "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": 5374, - "src": "12722:4:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$5374_$", - "typeString": "type(library Math)" - } - }, - "id": 2327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12727:3:9", - "memberName": "min", - "nodeType": "MemberAccess", - "referencedDeclaration": 4003, - "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, - 5384 - ], - "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": [ - "371:14:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1571, - "src": "371:14:10" - }, - "id": 2443, - "nodeType": "InheritanceSpecifier", - "src": "371:14:10" - } - ], - "canonicalName": "IAccessControlDefaultAdminRules", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2441, - "nodeType": "StructuredDocumentation", - "src": "218:107:10", - "text": " @dev External interface of AccessControlDefaultAdminRules declared to support ERC-165 detection." - }, - "fullyImplemented": false, - "id": 2535, - "linearizedBaseContracts": [ - 2535, - 1571 - ], - "name": "IAccessControlDefaultAdminRules", - "nameLocation": "336:31:10", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 2444, - "nodeType": "StructuredDocumentation", - "src": "392:75:10", - "text": " @dev The new default admin is not a valid default admin." - }, - "errorSelector": "c22c8022", - "id": 2448, - "name": "AccessControlInvalidDefaultAdmin", - "nameLocation": "478:32:10", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2446, - "mutability": "mutable", - "name": "defaultAdmin", - "nameLocation": "519:12:10", - "nodeType": "VariableDeclaration", - "scope": 2448, - "src": "511:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2445, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "511:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "510:22:10" - }, - "src": "472:61:10" - }, - { - "documentation": { - "id": 2449, - "nodeType": "StructuredDocumentation", - "src": "539: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": "849:38:10", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2450, - "nodeType": "ParameterList", - "parameters": [], - "src": "887:2:10" - }, - "src": "843:47:10" - }, - { - "documentation": { - "id": 2452, - "nodeType": "StructuredDocumentation", - "src": "896: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": "1128:38:10", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2455, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2454, - "mutability": "mutable", - "name": "schedule", - "nameLocation": "1174:8:10", - "nodeType": "VariableDeclaration", - "scope": 2456, - "src": "1167:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2453, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "1167:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "1166:17:10" - }, - "src": "1122:62:10" - }, - { - "anonymous": false, - "documentation": { - "id": 2457, - "nodeType": "StructuredDocumentation", - "src": "1190: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": "1433:29:10", - "nodeType": "EventDefinition", - "parameters": { - "id": 2462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2459, - "indexed": true, - "mutability": "mutable", - "name": "newAdmin", - "nameLocation": "1479:8:10", - "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1463:24:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1463:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2461, - "indexed": false, - "mutability": "mutable", - "name": "acceptSchedule", - "nameLocation": "1496:14:10", - "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1489:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2460, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "1489:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "1462:49:10" - }, - "src": "1427:85:10" - }, - { - "anonymous": false, - "documentation": { - "id": 2464, - "nodeType": "StructuredDocumentation", - "src": "1518: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": "1652:28:10", - "nodeType": "EventDefinition", - "parameters": { - "id": 2465, - "nodeType": "ParameterList", - "parameters": [], - "src": "1680:2:10" - }, - "src": "1646:37:10" - }, - { - "anonymous": false, - "documentation": { - "id": 2467, - "nodeType": "StructuredDocumentation", - "src": "1689: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": "1901:32:10", - "nodeType": "EventDefinition", - "parameters": { - "id": 2472, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2469, - "indexed": false, - "mutability": "mutable", - "name": "newDelay", - "nameLocation": "1941:8:10", - "nodeType": "VariableDeclaration", - "scope": 2473, - "src": "1934:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2468, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "1934:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2471, - "indexed": false, - "mutability": "mutable", - "name": "effectSchedule", - "nameLocation": "1958:14:10", - "nodeType": "VariableDeclaration", - "scope": 2473, - "src": "1951:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2470, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "1951:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "1933:40:10" - }, - "src": "1895:79:10" - }, - { - "anonymous": false, - "documentation": { - "id": 2474, - "nodeType": "StructuredDocumentation", - "src": "1980:103:10", - "text": " @dev Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass." - }, - "eventSelector": "2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5", - "id": 2476, - "name": "DefaultAdminDelayChangeCanceled", - "nameLocation": "2094:31:10", - "nodeType": "EventDefinition", - "parameters": { - "id": 2475, - "nodeType": "ParameterList", - "parameters": [], - "src": "2125:2:10" - }, - "src": "2088:40:10" - }, - { - "documentation": { - "id": 2477, - "nodeType": "StructuredDocumentation", - "src": "2134: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": "2235:12:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2478, - "nodeType": "ParameterList", - "parameters": [], - "src": "2247:2:10" - }, - "returnParameters": { - "id": 2481, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2480, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2482, - "src": "2273:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2479, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2273:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2272:9:10" - }, - "scope": 2535, - "src": "2226:56:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2483, - "nodeType": "StructuredDocumentation", - "src": "2288: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": "2745:19:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2484, - "nodeType": "ParameterList", - "parameters": [], - "src": "2764:2:10" - }, - "returnParameters": { - "id": 2489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2486, - "mutability": "mutable", - "name": "newAdmin", - "nameLocation": "2798:8:10", - "nodeType": "VariableDeclaration", - "scope": 2490, - "src": "2790:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2488, - "mutability": "mutable", - "name": "acceptSchedule", - "nameLocation": "2815:14:10", - "nodeType": "VariableDeclaration", - "scope": 2490, - "src": "2808:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2487, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "2808:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "2789:41:10" - }, - "scope": 2535, - "src": "2736:95:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2491, - "nodeType": "StructuredDocumentation", - "src": "2837: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": "3302:17:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2492, - "nodeType": "ParameterList", - "parameters": [], - "src": "3319:2:10" - }, - "returnParameters": { - "id": 2495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2494, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2496, - "src": "3345:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2493, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "3345:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "3344:8:10" - }, - "scope": 2535, - "src": "3293:60:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2497, - "nodeType": "StructuredDocumentation", - "src": "3359: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": "3855:24:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2498, - "nodeType": "ParameterList", - "parameters": [], - "src": "3879:2:10" - }, - "returnParameters": { - "id": 2503, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2500, - "mutability": "mutable", - "name": "newDelay", - "nameLocation": "3912:8:10", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "3905:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2499, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "3905:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2502, - "mutability": "mutable", - "name": "effectSchedule", - "nameLocation": "3929:14:10", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "3922:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2501, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "3922:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "3904:40:10" - }, - "scope": 2535, - "src": "3846:99:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2505, - "nodeType": "StructuredDocumentation", - "src": "3951: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": "4297:25:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2508, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2507, - "mutability": "mutable", - "name": "newAdmin", - "nameLocation": "4331:8:10", - "nodeType": "VariableDeclaration", - "scope": 2510, - "src": "4323:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4323:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4322:18:10" - }, - "returnParameters": { - "id": 2509, - "nodeType": "ParameterList", - "parameters": [], - "src": "4349:0:10" - }, - "scope": 2535, - "src": "4288:62:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2511, - "nodeType": "StructuredDocumentation", - "src": "4356: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": "4732:26:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2512, - "nodeType": "ParameterList", - "parameters": [], - "src": "4758:2:10" - }, - "returnParameters": { - "id": 2513, - "nodeType": "ParameterList", - "parameters": [], - "src": "4769:0:10" - }, - "scope": 2535, - "src": "4723:47:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2515, - "nodeType": "StructuredDocumentation", - "src": "4776: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": "5329:26:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2516, - "nodeType": "ParameterList", - "parameters": [], - "src": "5355:2:10" - }, - "returnParameters": { - "id": 2517, - "nodeType": "ParameterList", - "parameters": [], - "src": "5366:0:10" - }, - "scope": 2535, - "src": "5320:47:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2519, - "nodeType": "StructuredDocumentation", - "src": "5373: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": "6797:23:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2521, - "mutability": "mutable", - "name": "newDelay", - "nameLocation": "6828:8:10", - "nodeType": "VariableDeclaration", - "scope": 2524, - "src": "6821:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2520, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "6821:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "6820:17:10" - }, - "returnParameters": { - "id": 2523, - "nodeType": "ParameterList", - "parameters": [], - "src": "6846:0:10" - }, - "scope": 2535, - "src": "6788:59:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2525, - "nodeType": "StructuredDocumentation", - "src": "6853: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": "7096:25:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2526, - "nodeType": "ParameterList", - "parameters": [], - "src": "7121:2:10" - }, - "returnParameters": { - "id": 2527, - "nodeType": "ParameterList", - "parameters": [], - "src": "7132:0:10" - }, - "scope": 2535, - "src": "7087:46:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2529, - "nodeType": "StructuredDocumentation", - "src": "7139: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": "8105:29:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2530, - "nodeType": "ParameterList", - "parameters": [], - "src": "8134:2:10" - }, - "returnParameters": { - "id": 2533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2532, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2534, - "src": "8160:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2531, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "8160:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "8159:8:10" - }, - "scope": 2535, - "src": "8096:72:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 2536, - "src": "326:7844:10", - "usedErrors": [ - 1498, - 1501, - 2448, - 2451, - 2456 - ], - "usedEvents": [ - 1510, - 1519, - 1528, - 2463, - 2466, - 2473, - 2476 - ] - } - ], - "src": "137:8034: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": [ - 2898 - ], - "Proxy": [ - 2934 - ] - }, - "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": 2935, - "src": "140:35:13", - "symbolAliases": [ - { - "foreign": { - "id": 2569, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "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": 2899, - "src": "176:48:13", - "symbolAliases": [ - { - "foreign": { - "id": 2571, - "name": "ERC1967Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "184:12:13", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 2574, - "name": "Proxy", - "nameLocations": [ - "625:5:13" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2934, - "src": "625:5:13" - }, - "id": 2575, - "nodeType": "InheritanceSpecifier", - "src": "625:5:13" - } - ], - "canonicalName": "ERC1967Proxy", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 2573, - "nodeType": "StructuredDocumentation", - "src": "226:373: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[ERC-1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy." - }, - "fullyImplemented": true, - "id": 2604, - "linearizedBaseContracts": [ - 2604, - 2934 - ], - "name": "ERC1967Proxy", - "nameLocation": "609:12:13", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2590, - "nodeType": "Block", - "src": "1145:69:13", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 2586, - "name": "implementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2578, - "src": "1185:14:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 2587, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1201: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": 2898, - "src": "1155:12:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2898_$", - "typeString": "type(library ERC1967Utils)" - } - }, - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1168:16:13", - "memberName": "upgradeToAndCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 2713, - "src": "1155: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": "1155:52:13", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2589, - "nodeType": "ExpressionStatement", - "src": "1155:52:13" - } - ] - }, - "documentation": { - "id": 2576, - "nodeType": "StructuredDocumentation", - "src": "637: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": "1101:14:13", - "nodeType": "VariableDeclaration", - "scope": 2591, - "src": "1093:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2577, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1093:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2580, - "mutability": "mutable", - "name": "_data", - "nameLocation": "1130:5:13", - "nodeType": "VariableDeclaration", - "scope": 2591, - "src": "1117:18:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2579, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1117:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1092:44:13" - }, - "returnParameters": { - "id": 2582, - "nodeType": "ParameterList", - "parameters": [], - "src": "1145:0:13" - }, - "scope": 2604, - "src": "1081:133:13", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 2915 - ], - "body": { - "id": 2602, - "nodeType": "Block", - "src": "1659:56:13", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 2598, - "name": "ERC1967Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "1676:12:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2898_$", - "typeString": "type(library ERC1967Utils)" - } - }, - "id": 2599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1689:17:13", - "memberName": "getImplementation", - "nodeType": "MemberAccess", - "referencedDeclaration": 2650, - "src": "1676: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": "1676:32:13", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2597, - "id": 2601, - "nodeType": "Return", - "src": "1669:39:13" - } - ] - }, - "documentation": { - "id": 2592, - "nodeType": "StructuredDocumentation", - "src": "1220:358: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 ERC-1967) 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": "1592:15:13", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 2594, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "1632:8:13" - }, - "parameters": { - "id": 2593, - "nodeType": "ParameterList", - "parameters": [], - "src": "1607:2:13" - }, - "returnParameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2596, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2603, - "src": "1650:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1650:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1649:9:13" - }, - "scope": 2604, - "src": "1583:132:13", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 2605, - "src": "600:1117:13", - "usedErrors": [ - 2624, - 2637, - 3138, - 3430 - ], - "usedEvents": [ - 2543 - ] - } - ], - "src": "114:1604:13" - }, - "id": 13 - }, - "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol", - "exportedSymbols": { - "Address": [ - 3387 - ], - "ERC1967Utils": [ - 2898 - ], - "IBeacon": [ - 2944 - ], - "IERC1967": [ - 2556 - ], - "StorageSlot": [ - 3732 - ] - }, - "id": 2899, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2606, - "literals": [ - "solidity", - "^", - "0.8", - ".21" - ], - "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": 2899, - "sourceUnit": 2945, - "src": "140:46:14", - "symbolAliases": [ - { - "foreign": { - "id": 2607, - "name": "IBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2944, - "src": "148:7:14", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/interfaces/IERC1967.sol", - "file": "../../interfaces/IERC1967.sol", - "id": 2610, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2899, - "sourceUnit": 2557, - "src": "187:55:14", - "symbolAliases": [ - { - "foreign": { - "id": 2609, - "name": "IERC1967", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2556, - "src": "195:8:14", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Address.sol", - "file": "../../utils/Address.sol", - "id": 2612, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2899, - "sourceUnit": 3388, - "src": "243:48:14", - "symbolAliases": [ - { - "foreign": { - "id": 2611, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3387, - "src": "251:7:14", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", - "file": "../../utils/StorageSlot.sol", - "id": 2614, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2899, - "sourceUnit": 3733, - "src": "292:56:14", - "symbolAliases": [ - { - "foreign": { - "id": 2613, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "300:11:14", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ERC1967Utils", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 2615, - "nodeType": "StructuredDocumentation", - "src": "350:145:14", - "text": " @dev This library provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots." - }, - "fullyImplemented": true, - "id": 2898, - "linearizedBaseContracts": [ - 2898 - ], - "name": "ERC1967Utils", - "nameLocation": "504:12:14", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "documentation": { - "id": 2616, - "nodeType": "StructuredDocumentation", - "src": "523: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": 2619, - "mutability": "constant", - "name": "IMPLEMENTATION_SLOT", - "nameLocation": "789:19:14", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "763:114:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2617, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "763:7:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263", - "id": 2618, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "811:66:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1", - "typeString": "int_const 2444...(69 digits omitted)...5612" - }, - "value": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" - }, - "visibility": "internal" - }, - { - "documentation": { - "id": 2620, - "nodeType": "StructuredDocumentation", - "src": "884:69:14", - "text": " @dev The `implementation` of the proxy is invalid." - }, - "errorSelector": "4c9c8ce3", - "id": 2624, - "name": "ERC1967InvalidImplementation", - "nameLocation": "964:28:14", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2623, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2622, - "mutability": "mutable", - "name": "implementation", - "nameLocation": "1001:14:14", - "nodeType": "VariableDeclaration", - "scope": 2624, - "src": "993:22:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "993:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "992:24:14" - }, - "src": "958:59:14" - }, - { - "documentation": { - "id": 2625, - "nodeType": "StructuredDocumentation", - "src": "1023:60:14", - "text": " @dev The `admin` of the proxy is invalid." - }, - "errorSelector": "62e77ba2", - "id": 2629, - "name": "ERC1967InvalidAdmin", - "nameLocation": "1094:19:14", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2628, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2627, - "mutability": "mutable", - "name": "admin", - "nameLocation": "1122:5:14", - "nodeType": "VariableDeclaration", - "scope": 2629, - "src": "1114:13:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2626, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1114:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1113:15:14" - }, - "src": "1088:41:14" - }, - { - "documentation": { - "id": 2630, - "nodeType": "StructuredDocumentation", - "src": "1135:61:14", - "text": " @dev The `beacon` of the proxy is invalid." - }, - "errorSelector": "64ced0ec", - "id": 2634, - "name": "ERC1967InvalidBeacon", - "nameLocation": "1207:20:14", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2633, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2632, - "mutability": "mutable", - "name": "beacon", - "nameLocation": "1236:6:14", - "nodeType": "VariableDeclaration", - "scope": 2634, - "src": "1228:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2631, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1228:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1227:16:14" - }, - "src": "1201:43:14" - }, - { - "documentation": { - "id": 2635, - "nodeType": "StructuredDocumentation", - "src": "1250:82:14", - "text": " @dev An upgrade function sees `msg.value > 0` that may be lost." - }, - "errorSelector": "b398979f", - "id": 2637, - "name": "ERC1967NonPayable", - "nameLocation": "1343:17:14", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2636, - "nodeType": "ParameterList", - "parameters": [], - "src": "1360:2:14" - }, - "src": "1337:26:14" - }, - { - "body": { - "id": 2649, - "nodeType": "Block", - "src": "1502:77:14", - "statements": [ - { - "expression": { - "expression": { - "arguments": [ - { - "id": 2645, - "name": "IMPLEMENTATION_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2619, - "src": "1546:19:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2643, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "1519:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1531:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "1519:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1519:47:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2647, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1567:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "1519:53:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2642, - "id": 2648, - "nodeType": "Return", - "src": "1512:60:14" - } - ] - }, - "documentation": { - "id": 2638, - "nodeType": "StructuredDocumentation", - "src": "1369:67:14", - "text": " @dev Returns the current implementation address." - }, - "id": 2650, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getImplementation", - "nameLocation": "1450:17:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2639, - "nodeType": "ParameterList", - "parameters": [], - "src": "1467:2:14" - }, - "returnParameters": { - "id": 2642, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2641, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2650, - "src": "1493:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2640, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1493:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1492:9:14" - }, - "scope": 2898, - "src": "1441:138:14", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2676, - "nodeType": "Block", - "src": "1734:218:14", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 2656, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1748:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2657, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1766:4:14", - "memberName": "code", - "nodeType": "MemberAccess", - "src": "1748:22:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1771:6:14", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1748:29:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2659, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1781:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1748:34:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2666, - "nodeType": "IfStatement", - "src": "1744:119:14", - "trueBody": { - "id": 2665, - "nodeType": "Block", - "src": "1784:79:14", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 2662, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1834:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2661, - "name": "ERC1967InvalidImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1805:28:14", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1805:47:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 2664, - "nodeType": "RevertStatement", - "src": "1798:54:14" - } - ] - } - }, - { - "expression": { - "id": 2674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "arguments": [ - { - "id": 2670, - "name": "IMPLEMENTATION_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2619, - "src": "1899:19:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2667, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "1872:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1884:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "1872:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1872:47:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2672, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "1920:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "1872:53:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 2673, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1928:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1872:73:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2675, - "nodeType": "ExpressionStatement", - "src": "1872:73:14" - } - ] - }, - "documentation": { - "id": 2651, - "nodeType": "StructuredDocumentation", - "src": "1585:81:14", - "text": " @dev Stores a new address in the ERC-1967 implementation slot." - }, - "id": 2677, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setImplementation", - "nameLocation": "1680:18:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2653, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "1707:17:14", - "nodeType": "VariableDeclaration", - "scope": 2677, - "src": "1699:25:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1699:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1698:27:14" - }, - "returnParameters": { - "id": 2655, - "nodeType": "ParameterList", - "parameters": [], - "src": "1734:0:14" - }, - "scope": 2898, - "src": "1671:281:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 2712, - "nodeType": "Block", - "src": "2345:263:14", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 2686, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "2374:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2685, - "name": "_setImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2677, - "src": "2355:18:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2355:37:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2688, - "nodeType": "ExpressionStatement", - "src": "2355:37:14" - }, - { - "eventCall": { - "arguments": [ - { - "id": 2692, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "2425:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 2689, - "name": "IERC1967", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2556, - "src": "2407:8:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC1967_$2556_$", - "typeString": "type(contract IERC1967)" - } - }, - "id": 2691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2416:8:14", - "memberName": "Upgraded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2543, - "src": "2407:17:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2407:36:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2694, - "nodeType": "EmitStatement", - "src": "2402:41:14" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 2695, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2682, - "src": "2458:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2463:6:14", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2458:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 2697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2472:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2458:15:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2710, - "nodeType": "Block", - "src": "2559:43:14", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2707, - "name": "_checkNonPayable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2897, - "src": "2573:16:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2573:18:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2709, - "nodeType": "ExpressionStatement", - "src": "2573:18:14" - } - ] - }, - "id": 2711, - "nodeType": "IfStatement", - "src": "2454:148:14", - "trueBody": { - "id": 2706, - "nodeType": "Block", - "src": "2475:78:14", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 2702, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "2518:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 2703, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2682, - "src": "2537: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": 2699, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3387, - "src": "2489:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Address_$3387_$", - "typeString": "type(library Address)" - } - }, - "id": 2701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2497:20:14", - "memberName": "functionDelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3304, - "src": "2489: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": 2704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2489:53:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2705, - "nodeType": "ExpressionStatement", - "src": "2489:53:14" - } - ] - } - } - ] - }, - "documentation": { - "id": 2678, - "nodeType": "StructuredDocumentation", - "src": "1958: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": 2713, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "upgradeToAndCall", - "nameLocation": "2273:16:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2683, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2680, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "2298:17:14", - "nodeType": "VariableDeclaration", - "scope": 2713, - "src": "2290:25:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2679, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2290:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2682, - "mutability": "mutable", - "name": "data", - "nameLocation": "2330:4:14", - "nodeType": "VariableDeclaration", - "scope": 2713, - "src": "2317:17:14", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2681, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2317:5:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2289:46:14" - }, - "returnParameters": { - "id": 2684, - "nodeType": "ParameterList", - "parameters": [], - "src": "2345:0:14" - }, - "scope": 2898, - "src": "2264:344:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 2714, - "nodeType": "StructuredDocumentation", - "src": "2614: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": 2717, - "mutability": "constant", - "name": "ADMIN_SLOT", - "nameLocation": "2855:10:14", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "2829:105:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2715, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2829:7:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033", - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2868:66:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1", - "typeString": "int_const 8195...(69 digits omitted)...7091" - }, - "value": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" - }, - "visibility": "internal" - }, - { - "body": { - "id": 2729, - "nodeType": "Block", - "src": "3339:68:14", - "statements": [ - { - "expression": { - "expression": { - "arguments": [ - { - "id": 2725, - "name": "ADMIN_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2717, - "src": "3383:10:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2723, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "3356:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3368:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "3356:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3356:38:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2727, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3395:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "3356:44:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2722, - "id": 2728, - "nodeType": "Return", - "src": "3349:51:14" - } - ] - }, - "documentation": { - "id": 2718, - "nodeType": "StructuredDocumentation", - "src": "2941:341: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 ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`" - }, - "id": 2730, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAdmin", - "nameLocation": "3296:8:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2719, - "nodeType": "ParameterList", - "parameters": [], - "src": "3304:2:14" - }, - "returnParameters": { - "id": 2722, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2721, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2730, - "src": "3330:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2720, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3330:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3329:9:14" - }, - "scope": 2898, - "src": "3287:120:14", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2760, - "nodeType": "Block", - "src": "3535:172:14", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2736, - "name": "newAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "3549:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 2739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3569: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": 2738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3561:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2737, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3561:7:14", - "typeDescriptions": {} - } - }, - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3561:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3549:22:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2750, - "nodeType": "IfStatement", - "src": "3545:91:14", - "trueBody": { - "id": 2749, - "nodeType": "Block", - "src": "3573:63:14", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 2745, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3622: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": 2744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3614:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2743, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3614:7:14", - "typeDescriptions": {} - } - }, - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3614:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2742, - "name": "ERC1967InvalidAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2629, - "src": "3594:19:14", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 2747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3594:31:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 2748, - "nodeType": "RevertStatement", - "src": "3587:38:14" - } - ] - } - }, - { - "expression": { - "id": 2758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "arguments": [ - { - "id": 2754, - "name": "ADMIN_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2717, - "src": "3672:10:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2751, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "3645:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3657:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "3645:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3684:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "3645:44:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 2757, - "name": "newAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "3692:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3645:55:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2759, - "nodeType": "ExpressionStatement", - "src": "3645:55:14" - } - ] - }, - "documentation": { - "id": 2731, - "nodeType": "StructuredDocumentation", - "src": "3413:72:14", - "text": " @dev Stores a new address in the ERC-1967 admin slot." - }, - "id": 2761, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setAdmin", - "nameLocation": "3499:9:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2733, - "mutability": "mutable", - "name": "newAdmin", - "nameLocation": "3517:8:14", - "nodeType": "VariableDeclaration", - "scope": 2761, - "src": "3509:16:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2732, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3509:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3508:18:14" - }, - "returnParameters": { - "id": 2735, - "nodeType": "ParameterList", - "parameters": [], - "src": "3535:0:14" - }, - "scope": 2898, - "src": "3490:217:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 2779, - "nodeType": "Block", - "src": "3875:94:14", - "statements": [ - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2770, - "name": "getAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2730, - "src": "3912:8:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3912:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 2772, - "name": "newAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2764, - "src": "3924:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 2767, - "name": "IERC1967", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2556, - "src": "3890:8:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC1967_$2556_$", - "typeString": "type(contract IERC1967)" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3899:12:14", - "memberName": "AdminChanged", - "nodeType": "MemberAccess", - "referencedDeclaration": 2550, - "src": "3890:21:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 2773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3890:43:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2774, - "nodeType": "EmitStatement", - "src": "3885:48:14" - }, - { - "expression": { - "arguments": [ - { - "id": 2776, - "name": "newAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2764, - "src": "3953:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2775, - "name": "_setAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2761, - "src": "3943:9:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3943:19:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2778, - "nodeType": "ExpressionStatement", - "src": "3943:19:14" - } - ] - }, - "documentation": { - "id": 2762, - "nodeType": "StructuredDocumentation", - "src": "3713:109:14", - "text": " @dev Changes the admin of the proxy.\n Emits an {IERC1967-AdminChanged} event." - }, - "id": 2780, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "changeAdmin", - "nameLocation": "3836:11:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2765, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2764, - "mutability": "mutable", - "name": "newAdmin", - "nameLocation": "3856:8:14", - "nodeType": "VariableDeclaration", - "scope": 2780, - "src": "3848:16:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2763, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3848:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3847:18:14" - }, - "returnParameters": { - "id": 2766, - "nodeType": "ParameterList", - "parameters": [], - "src": "3875:0:14" - }, - "scope": 2898, - "src": "3827:142:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 2781, - "nodeType": "StructuredDocumentation", - "src": "3975: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": 2784, - "mutability": "constant", - "name": "BEACON_SLOT", - "nameLocation": "4272:11:14", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "4246:106:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2782, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4246:7:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530", - "id": 2783, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4286:66:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1", - "typeString": "int_const 7415...(69 digits omitted)...4704" - }, - "value": "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50" - }, - "visibility": "internal" - }, - { - "body": { - "id": 2796, - "nodeType": "Block", - "src": "4468:69:14", - "statements": [ - { - "expression": { - "expression": { - "arguments": [ - { - "id": 2792, - "name": "BEACON_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2784, - "src": "4512:11:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2790, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "4485:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4497:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "4485:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4485:39:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4525:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "4485:45:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2789, - "id": 2795, - "nodeType": "Return", - "src": "4478:52:14" - } - ] - }, - "documentation": { - "id": 2785, - "nodeType": "StructuredDocumentation", - "src": "4359:51:14", - "text": " @dev Returns the current beacon." - }, - "id": 2797, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBeacon", - "nameLocation": "4424:9:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2786, - "nodeType": "ParameterList", - "parameters": [], - "src": "4433:2:14" - }, - "returnParameters": { - "id": 2789, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2788, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2797, - "src": "4459:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2787, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4459:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4458:9:14" - }, - "scope": 2898, - "src": "4415:122:14", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2842, - "nodeType": "Block", - "src": "4667:390:14", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 2803, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2800, - "src": "4681:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4691:4:14", - "memberName": "code", - "nodeType": "MemberAccess", - "src": "4681:14:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4696:6:14", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4681:21:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4706:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4681:26:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2813, - "nodeType": "IfStatement", - "src": "4677:95:14", - "trueBody": { - "id": 2812, - "nodeType": "Block", - "src": "4709:63:14", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 2809, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2800, - "src": "4751:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2808, - "name": "ERC1967InvalidBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2634, - "src": "4730:20:14", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 2810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4730:31:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 2811, - "nodeType": "RevertStatement", - "src": "4723:38:14" - } - ] - } - }, - { - "expression": { - "id": 2821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "arguments": [ - { - "id": 2817, - "name": "BEACON_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2784, - "src": "4809:11:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2814, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "4782:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4794:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "4782:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4782:39:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2819, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "4822:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "4782:45:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 2820, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2800, - "src": "4830:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4782:57:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2822, - "nodeType": "ExpressionStatement", - "src": "4782:57:14" - }, - { - "assignments": [ - 2824 - ], - "declarations": [ - { - "constant": false, - "id": 2824, - "mutability": "mutable", - "name": "beaconImplementation", - "nameLocation": "4858:20:14", - "nodeType": "VariableDeclaration", - "scope": 2842, - "src": "4850:28:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2823, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4850:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 2830, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 2826, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2800, - "src": "4889:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2825, - "name": "IBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2944, - "src": "4881:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IBeacon_$2944_$", - "typeString": "type(contract IBeacon)" - } - }, - "id": 2827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4881:18:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBeacon_$2944", - "typeString": "contract IBeacon" - } - }, - "id": 2828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4900:14:14", - "memberName": "implementation", - "nodeType": "MemberAccess", - "referencedDeclaration": 2943, - "src": "4881:33:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4881:35:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4850:66:14" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 2831, - "name": "beaconImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "4930:20:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4951:4:14", - "memberName": "code", - "nodeType": "MemberAccess", - "src": "4930:25:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4956:6:14", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4930:32:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4966:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4930:37:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2841, - "nodeType": "IfStatement", - "src": "4926:125:14", - "trueBody": { - "id": 2840, - "nodeType": "Block", - "src": "4969:82:14", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 2837, - "name": "beaconImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "5019:20:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2836, - "name": "ERC1967InvalidImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "4990:28:14", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 2838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4990:50:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 2839, - "nodeType": "RevertStatement", - "src": "4983:57:14" - } - ] - } - } - ] - }, - "documentation": { - "id": 2798, - "nodeType": "StructuredDocumentation", - "src": "4543:72:14", - "text": " @dev Stores a new beacon in the ERC-1967 beacon slot." - }, - "id": 2843, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setBeacon", - "nameLocation": "4629:10:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2800, - "mutability": "mutable", - "name": "newBeacon", - "nameLocation": "4648:9:14", - "nodeType": "VariableDeclaration", - "scope": 2843, - "src": "4640:17:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2799, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4640:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4639:19:14" - }, - "returnParameters": { - "id": 2802, - "nodeType": "ParameterList", - "parameters": [], - "src": "4667:0:14" - }, - "scope": 2898, - "src": "4620:437:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 2882, - "nodeType": "Block", - "src": "5661:263:14", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 2852, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "5682:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2851, - "name": "_setBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2843, - "src": "5671:10:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5671:21:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2854, - "nodeType": "ExpressionStatement", - "src": "5671:21:14" - }, - { - "eventCall": { - "arguments": [ - { - "id": 2858, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "5731:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 2855, - "name": "IERC1967", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2556, - "src": "5707:8:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC1967_$2556_$", - "typeString": "type(contract IERC1967)" - } - }, - "id": 2857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5716:14:14", - "memberName": "BeaconUpgraded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2555, - "src": "5707:23:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5707:34:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2860, - "nodeType": "EmitStatement", - "src": "5702:39:14" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 2861, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2848, - "src": "5756:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5761:6:14", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5756:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 2863, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5770:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5756:15:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2880, - "nodeType": "Block", - "src": "5875:43:14", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2877, - "name": "_checkNonPayable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2897, - "src": "5889:16:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5889:18:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2879, - "nodeType": "ExpressionStatement", - "src": "5889:18:14" - } - ] - }, - "id": 2881, - "nodeType": "IfStatement", - "src": "5752:166:14", - "trueBody": { - "id": 2876, - "nodeType": "Block", - "src": "5773:96:14", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 2869, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "5824:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2868, - "name": "IBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2944, - "src": "5816:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IBeacon_$2944_$", - "typeString": "type(contract IBeacon)" - } - }, - "id": 2870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5816:18:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBeacon_$2944", - "typeString": "contract IBeacon" - } - }, - "id": 2871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5835:14:14", - "memberName": "implementation", - "nodeType": "MemberAccess", - "referencedDeclaration": 2943, - "src": "5816:33:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5816:35:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 2873, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2848, - "src": "5853: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": 2865, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3387, - "src": "5787:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Address_$3387_$", - "typeString": "type(library Address)" - } - }, - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5795:20:14", - "memberName": "functionDelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3304, - "src": "5787: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": 2874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5787:71:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2875, - "nodeType": "ExpressionStatement", - "src": "5787:71:14" - } - ] - } - } - ] - }, - "documentation": { - "id": 2844, - "nodeType": "StructuredDocumentation", - "src": "5063: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": 2883, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "upgradeBeaconToAndCall", - "nameLocation": "5591:22:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2849, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2846, - "mutability": "mutable", - "name": "newBeacon", - "nameLocation": "5622:9:14", - "nodeType": "VariableDeclaration", - "scope": 2883, - "src": "5614:17:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2845, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5614:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2848, - "mutability": "mutable", - "name": "data", - "nameLocation": "5646:4:14", - "nodeType": "VariableDeclaration", - "scope": 2883, - "src": "5633:17:14", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2847, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5633:5:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5613:38:14" - }, - "returnParameters": { - "id": 2850, - "nodeType": "ParameterList", - "parameters": [], - "src": "5661:0:14" - }, - "scope": 2898, - "src": "5582:342:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2896, - "nodeType": "Block", - "src": "6149:86:14", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 2887, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6163:3:14", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6167:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "6163:9:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 2889, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6175:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6163:13:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2895, - "nodeType": "IfStatement", - "src": "6159:70:14", - "trueBody": { - "id": 2894, - "nodeType": "Block", - "src": "6178:51:14", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2891, - "name": "ERC1967NonPayable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2637, - "src": "6199:17:14", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 2892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6199:19:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 2893, - "nodeType": "RevertStatement", - "src": "6192:26:14" - } - ] - } - } - ] - }, - "documentation": { - "id": 2884, - "nodeType": "StructuredDocumentation", - "src": "5930: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": 2897, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkNonPayable", - "nameLocation": "6122:16:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [], - "src": "6138:2:14" - }, - "returnParameters": { - "id": 2886, - "nodeType": "ParameterList", - "parameters": [], - "src": "6149:0:14" - }, - "scope": 2898, - "src": "6113:122:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - } - ], - "scope": 2899, - "src": "496:5741:14", - "usedErrors": [ - 2624, - 2629, - 2634, - 2637 - ], - "usedEvents": [] - } - ], - "src": "114:6124:14" - }, - "id": 14 - }, - "@openzeppelin/contracts/proxy/Proxy.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/proxy/Proxy.sol", - "exportedSymbols": { - "Proxy": [ - 2934 - ] - }, - "id": 2935, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2900, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "99:24:15" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Proxy", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 2901, - "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": 2934, - "linearizedBaseContracts": [ - 2934 - ], - "name": "Proxy", - "nameLocation": "742:5:15", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2908, - "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": 2904, - "isOffset": false, - "isSlot": false, - "src": "1463:14:15", - "valueSize": 1 - } - ], - "id": 2907, - "nodeType": "InlineAssembly", - "src": "1019:819:15" - } - ] - }, - "documentation": { - "id": 2902, - "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": 2909, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_delegate", - "nameLocation": "958:9:15", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2904, - "mutability": "mutable", - "name": "implementation", - "nameLocation": "976:14:15", - "nodeType": "VariableDeclaration", - "scope": 2909, - "src": "968:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2903, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "968:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "967:24:15" - }, - "returnParameters": { - "id": 2906, - "nodeType": "ParameterList", - "parameters": [], - "src": "1009:0:15" - }, - "scope": 2934, - "src": "949:895:15", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "documentation": { - "id": 2910, - "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": 2915, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "_implementation", - "nameLocation": "2037:15:15", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2911, - "nodeType": "ParameterList", - "parameters": [], - "src": "2052:2:15" - }, - "returnParameters": { - "id": 2914, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2913, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "2086:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2912, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2086:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2085:9:15" - }, - "scope": 2934, - "src": "2028:67:15", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 2924, - "nodeType": "Block", - "src": "2361:45:15", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2920, - "name": "_implementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2915, - "src": "2381:15:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2921, - "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": 2919, - "name": "_delegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2909, - "src": "2371:9:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2922, - "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": 2923, - "nodeType": "ExpressionStatement", - "src": "2371:28:15" - } - ] - }, - "documentation": { - "id": 2916, - "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": 2925, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_fallback", - "nameLocation": "2332:9:15", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2917, - "nodeType": "ParameterList", - "parameters": [], - "src": "2341:2:15" - }, - "returnParameters": { - "id": 2918, - "nodeType": "ParameterList", - "parameters": [], - "src": "2361:0:15" - }, - "scope": 2934, - "src": "2323:83:15", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 2932, - "nodeType": "Block", - "src": "2639:28:15", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2929, - "name": "_fallback", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "2649:9:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2930, - "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": 2931, - "nodeType": "ExpressionStatement", - "src": "2649:11:15" - } - ] - }, - "documentation": { - "id": 2926, - "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": 2933, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2927, - "nodeType": "ParameterList", - "parameters": [], - "src": "2611:2:15" - }, - "returnParameters": { - "id": 2928, - "nodeType": "ParameterList", - "parameters": [], - "src": "2639:0:15" - }, - "scope": 2934, - "src": "2603:64:15", - "stateMutability": "payable", - "virtual": true, - "visibility": "external" - } - ], - "scope": 2935, - "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": [ - 2944 - ] - }, - "id": 2945, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2936, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "108:24:16" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IBeacon", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2937, - "nodeType": "StructuredDocumentation", - "src": "134:79:16", - "text": " @dev This is the interface that {BeaconProxy} expects of its beacon." - }, - "fullyImplemented": false, - "id": 2944, - "linearizedBaseContracts": [ - 2944 - ], - "name": "IBeacon", - "nameLocation": "224:7:16", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 2938, - "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": 2943, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "implementation", - "nameLocation": "420:14:16", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2939, - "nodeType": "ParameterList", - "parameters": [], - "src": "434:2:16" - }, - "returnParameters": { - "id": 2942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2941, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2943, - "src": "460:7:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2940, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "460:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "459:9:16" - }, - "scope": 2944, - "src": "411:58:16", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 2945, - "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": [ - 3014 - ], - "Ownable": [ - 1719 - ], - "ProxyAdmin": [ - 2992 - ] - }, - "id": 2993, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2946, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "116:24:17" - }, - { - "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "file": "./TransparentUpgradeableProxy.sol", - "id": 2948, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2993, - "sourceUnit": 3129, - "src": "142:79:17", - "symbolAliases": [ - { - "foreign": { - "id": 2947, - "name": "ITransparentUpgradeableProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3014, - "src": "150:28:17", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "file": "../../access/Ownable.sol", - "id": 2950, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2993, - "sourceUnit": 1720, - "src": "222:49:17", - "symbolAliases": [ - { - "foreign": { - "id": 2949, - "name": "Ownable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1719, - "src": "230:7:17", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 2952, - "name": "Ownable", - "nameLocations": [ - "525:7:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1719, - "src": "525:7:17" - }, - "id": 2953, - "nodeType": "InheritanceSpecifier", - "src": "525:7:17" - } - ], - "canonicalName": "ProxyAdmin", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 2951, - "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": 2992, - "linearizedBaseContracts": [ - 2992, - 1719, - 3417 - ], - "name": "ProxyAdmin", - "nameLocation": "511:10:17", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "documentation": { - "id": 2954, - "nodeType": "StructuredDocumentation", - "src": "539:643:17", - "text": " @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address,address)`\n and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called,\n while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string.\n If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third 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": 2957, - "mutability": "constant", - "name": "UPGRADE_INTERFACE_VERSION", - "nameLocation": "1210:25:17", - "nodeType": "VariableDeclaration", - "scope": 2992, - "src": "1187:58:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2955, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1187:6:17", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "hexValue": "352e302e30", - "id": 2956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1238:7:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2ade050ecfcf8ae20ae1d10a23573f9d7e0bad85e74a2cf8338a65401e64558c", - "typeString": "literal_string \"5.0.0\"" - }, - "value": "5.0.0" - }, - "visibility": "public" - }, - { - "body": { - "id": 2966, - "nodeType": "Block", - "src": "1385:2:17", - "statements": [] - }, - "documentation": { - "id": 2958, - "nodeType": "StructuredDocumentation", - "src": "1252:72:17", - "text": " @dev Sets the initial owner who can perform upgrades." - }, - "id": 2967, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 2963, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "1371:12:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 2964, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 2962, - "name": "Ownable", - "nameLocations": [ - "1363:7:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1719, - "src": "1363:7:17" - }, - "nodeType": "ModifierInvocation", - "src": "1363:21:17" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2960, - "mutability": "mutable", - "name": "initialOwner", - "nameLocation": "1349:12:17", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "1341:20:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1341:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1340:22:17" - }, - "returnParameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [], - "src": "1385:0:17" - }, - "scope": 2992, - "src": "1329:58:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2990, - "nodeType": "Block", - "src": "1883:79:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 2986, - "name": "implementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2973, - "src": "1934:14:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 2987, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2975, - "src": "1950: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": 2980, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "1893:5:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3014", - "typeString": "contract ITransparentUpgradeableProxy" - } - }, - "id": 2982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1899:16:17", - "memberName": "upgradeToAndCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3013, - "src": "1893:22:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory) payable external" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "expression": { - "id": 2983, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1923:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1927:5:17", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "1923:9:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "1893:40:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value", - "typeString": "function (address,bytes memory) payable external" - } - }, - "id": 2988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1893:62:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2989, - "nodeType": "ExpressionStatement", - "src": "1893:62:17" - } - ] - }, - "documentation": { - "id": 2968, - "nodeType": "StructuredDocumentation", - "src": "1393: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": 2991, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 2978, - "kind": "modifierInvocation", - "modifierName": { - "id": 2977, - "name": "onlyOwner", - "nameLocations": [ - "1873:9:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1630, - "src": "1873:9:17" - }, - "nodeType": "ModifierInvocation", - "src": "1873:9:17" - } - ], - "name": "upgradeAndCall", - "nameLocation": "1726:14:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2976, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2971, - "mutability": "mutable", - "name": "proxy", - "nameLocation": "1779:5:17", - "nodeType": "VariableDeclaration", - "scope": 2991, - "src": "1750:34:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3014", - "typeString": "contract ITransparentUpgradeableProxy" - }, - "typeName": { - "id": 2970, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2969, - "name": "ITransparentUpgradeableProxy", - "nameLocations": [ - "1750:28:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3014, - "src": "1750:28:17" - }, - "referencedDeclaration": 3014, - "src": "1750:28:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3014", - "typeString": "contract ITransparentUpgradeableProxy" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2973, - "mutability": "mutable", - "name": "implementation", - "nameLocation": "1802:14:17", - "nodeType": "VariableDeclaration", - "scope": 2991, - "src": "1794:22:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2972, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1794:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2975, - "mutability": "mutable", - "name": "data", - "nameLocation": "1839:4:17", - "nodeType": "VariableDeclaration", - "scope": 2991, - "src": "1826:17:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2974, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1826:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1740:109:17" - }, - "returnParameters": { - "id": 2979, - "nodeType": "ParameterList", - "parameters": [], - "src": "1883:0:17" - }, - "scope": 2992, - "src": "1717:245:17", - "stateMutability": "payable", - "virtual": true, - "visibility": "public" - } - ], - "scope": 2993, - "src": "502:1462:17", - "usedErrors": [ - 1585, - 1590 - ], - "usedEvents": [ - 1596 - ] - } - ], - "src": "116:1849:17" - }, - "id": 17 - }, - "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "exportedSymbols": { - "ERC1967Proxy": [ - 2604 - ], - "ERC1967Utils": [ - 2898 - ], - "IERC1967": [ - 2556 - ], - "ITransparentUpgradeableProxy": [ - 3014 - ], - "ProxyAdmin": [ - 2992 - ], - "TransparentUpgradeableProxy": [ - 3128 - ] - }, - "id": 3129, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2994, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "133:24:18" - }, - { - "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol", - "file": "../ERC1967/ERC1967Utils.sol", - "id": 2996, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3129, - "sourceUnit": 2899, - "src": "159:57:18", - "symbolAliases": [ - { - "foreign": { - "id": 2995, - "name": "ERC1967Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "167:12:18", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", - "file": "../ERC1967/ERC1967Proxy.sol", - "id": 2998, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3129, - "sourceUnit": 2605, - "src": "217:57:18", - "symbolAliases": [ - { - "foreign": { - "id": 2997, - "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": 3000, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3129, - "sourceUnit": 2557, - "src": "275:55:18", - "symbolAliases": [ - { - "foreign": { - "id": 2999, - "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": 3002, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3129, - "sourceUnit": 2993, - "src": "331:44:18", - "symbolAliases": [ - { - "foreign": { - "id": 3001, - "name": "ProxyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "339:10:18", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 3004, - "name": "IERC1967", - "nameLocations": [ - "865:8:18" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2556, - "src": "865:8:18" - }, - "id": 3005, - "nodeType": "InheritanceSpecifier", - "src": "865:8:18" - } - ], - "canonicalName": "ITransparentUpgradeableProxy", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 3003, - "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": 3014, - "linearizedBaseContracts": [ - 3014, - 2556 - ], - "name": "ITransparentUpgradeableProxy", - "nameLocation": "833:28:18", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 3006, - "nodeType": "StructuredDocumentation", - "src": "880:47:18", - "text": "@dev See {UUPSUpgradeable-upgradeToAndCall}" - }, - "functionSelector": "4f1ef286", - "id": 3013, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "upgradeToAndCall", - "nameLocation": "941:16:18", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3008, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "966:17:18", - "nodeType": "VariableDeclaration", - "scope": 3013, - "src": "958:25:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3007, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "958:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3010, - "mutability": "mutable", - "name": "data", - "nameLocation": "1000:4:18", - "nodeType": "VariableDeclaration", - "scope": 3013, - "src": "985:19:18", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3009, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "985:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "957:48:18" - }, - "returnParameters": { - "id": 3012, - "nodeType": "ParameterList", - "parameters": [], - "src": "1022:0:18" - }, - "scope": 3014, - "src": "932:91:18", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 3129, - "src": "823:202:18", - "usedErrors": [], - "usedEvents": [ - 2543, - 2550, - 2555 - ] - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 3016, - "name": "ERC1967Proxy", - "nameLocations": [ - "4354:12:18" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2604, - "src": "4354:12:18" - }, - "id": 3017, - "nodeType": "InheritanceSpecifier", - "src": "4354:12:18" - } - ], - "canonicalName": "TransparentUpgradeableProxy", - "contractDependencies": [ - 2992 - ], - "contractKind": "contract", - "documentation": { - "id": 3015, - "nodeType": "StructuredDocumentation", - "src": "1027:3286: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. Relying on the value of the admin slot\n is generally fine if the implementation is trusted.\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": 3128, - "linearizedBaseContracts": [ - 3128, - 2604, - 2934 - ], - "name": "TransparentUpgradeableProxy", - "nameLocation": "4323:27:18", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3019, - "mutability": "immutable", - "name": "_admin", - "nameLocation": "4734:6:18", - "nodeType": "VariableDeclaration", - "scope": 3128, - "src": "4708:32:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3018, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4708:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "private" - }, - { - "documentation": { - "id": 3020, - "nodeType": "StructuredDocumentation", - "src": "4747:102:18", - "text": " @dev The proxy caller is the current admin, and can't fallback to the proxy target." - }, - "errorSelector": "d2b576ec", - "id": 3022, - "name": "ProxyDeniedAdminAccess", - "nameLocation": "4860:22:18", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [], - "src": "4882:2:18" - }, - "src": "4854:31:18" - }, - { - "body": { - "id": 3054, - "nodeType": "Block", - "src": "5263:190:18", - "statements": [ - { - "expression": { - "id": 3045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3036, - "name": "_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3019, - "src": "5273:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "id": 3042, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5305:12:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5290:14:18", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ProxyAdmin_$2992_$", - "typeString": "function (address) returns (contract ProxyAdmin)" - }, - "typeName": { - "id": 3040, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3039, - "name": "ProxyAdmin", - "nameLocations": [ - "5294:10:18" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2992, - "src": "5294:10:18" - }, - "referencedDeclaration": 2992, - "src": "5294:10:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProxyAdmin_$2992", - "typeString": "contract ProxyAdmin" - } - } - }, - "id": 3043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5290:28:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProxyAdmin_$2992", - "typeString": "contract ProxyAdmin" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ProxyAdmin_$2992", - "typeString": "contract ProxyAdmin" - } - ], - "id": 3038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5282:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3037, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5282:7:18", - "typeDescriptions": {} - } - }, - "id": 3044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5282:37:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5273:46:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3046, - "nodeType": "ExpressionStatement", - "src": "5273:46:18" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3050, - "name": "_proxyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "5432:11:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 3051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5432:13:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 3047, - "name": "ERC1967Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "5407:12:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2898_$", - "typeString": "type(library ERC1967Utils)" - } - }, - "id": 3049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5420:11:18", - "memberName": "changeAdmin", - "nodeType": "MemberAccess", - "referencedDeclaration": 2780, - "src": "5407:24:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5407:39:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3053, - "nodeType": "ExpressionStatement", - "src": "5407:39:18" - } - ] - }, - "documentation": { - "id": 3023, - "nodeType": "StructuredDocumentation", - "src": "4891: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": 3055, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 3032, - "name": "_logic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3025, - "src": "5248:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3033, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3029, - "src": "5256:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 3034, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 3031, - "name": "ERC1967Proxy", - "nameLocations": [ - "5235:12:18" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2604, - "src": "5235:12:18" - }, - "nodeType": "ModifierInvocation", - "src": "5235:27:18" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3030, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3025, - "mutability": "mutable", - "name": "_logic", - "nameLocation": "5177:6:18", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "5169:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3024, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5169:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3027, - "mutability": "mutable", - "name": "initialOwner", - "nameLocation": "5193:12:18", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "5185:20:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3026, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5185:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3029, - "mutability": "mutable", - "name": "_data", - "nameLocation": "5220:5:18", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "5207:18:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3028, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5207:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5168:58:18" - }, - "returnParameters": { - "id": 3035, - "nodeType": "ParameterList", - "parameters": [], - "src": "5263:0:18" - }, - "scope": 3128, - "src": "5157:296:18", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3063, - "nodeType": "Block", - "src": "5583:30:18", - "statements": [ - { - "expression": { - "id": 3061, - "name": "_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3019, - "src": "5600:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3060, - "id": 3062, - "nodeType": "Return", - "src": "5593:13:18" - } - ] - }, - "documentation": { - "id": 3056, - "nodeType": "StructuredDocumentation", - "src": "5459:56:18", - "text": " @dev Returns the admin of this proxy." - }, - "id": 3064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_proxyAdmin", - "nameLocation": "5529:11:18", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3057, - "nodeType": "ParameterList", - "parameters": [], - "src": "5540:2:18" - }, - "returnParameters": { - "id": 3060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3059, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3064, - "src": "5574:7:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5574:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5573:9:18" - }, - "scope": 3128, - "src": "5520:93:18", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "baseFunctions": [ - 2925 - ], - "body": { - "id": 3097, - "nodeType": "Block", - "src": "5802:322:18", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3069, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5816:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5820:6:18", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5816:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3071, - "name": "_proxyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "5830:11:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 3072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5830:13:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5816:27:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3095, - "nodeType": "Block", - "src": "6076:42:18", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 3090, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -25, - "src": "6090:5:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_TransparentUpgradeableProxy_$3128_$", - "typeString": "type(contract super TransparentUpgradeableProxy)" - } - }, - "id": 3092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6096:9:18", - "memberName": "_fallback", - "nodeType": "MemberAccess", - "referencedDeclaration": 2925, - "src": "6090:15: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": "6090:17:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3094, - "nodeType": "ExpressionStatement", - "src": "6090:17:18" - } - ] - }, - "id": 3096, - "nodeType": "IfStatement", - "src": "5812:306:18", - "trueBody": { - "id": 3089, - "nodeType": "Block", - "src": "5845:225:18", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3074, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5863:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5867:3:18", - "memberName": "sig", - "nodeType": "MemberAccess", - "src": "5863:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "expression": { - "id": 3076, - "name": "ITransparentUpgradeableProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3014, - "src": "5874:28:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITransparentUpgradeableProxy_$3014_$", - "typeString": "type(contract ITransparentUpgradeableProxy)" - } - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5903:16:18", - "memberName": "upgradeToAndCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3013, - "src": "5874:45:18", - "typeDescriptions": { - "typeIdentifier": "t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$__$", - "typeString": "function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes calldata) payable" - } - }, - "id": 3078, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5920:8:18", - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "5874:54:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "5863:65:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3087, - "nodeType": "Block", - "src": "6000:60:18", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3084, - "name": "_dispatchUpgradeToAndCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3127, - "src": "6018:25:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6018:27:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3086, - "nodeType": "ExpressionStatement", - "src": "6018:27:18" - } - ] - }, - "id": 3088, - "nodeType": "IfStatement", - "src": "5859:201:18", - "trueBody": { - "id": 3083, - "nodeType": "Block", - "src": "5930:64:18", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3080, - "name": "ProxyDeniedAdminAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3022, - "src": "5955:22:18", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5955:24:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3082, - "nodeType": "RevertStatement", - "src": "5948:31:18" - } - ] - } - } - ] - } - } - ] - }, - "documentation": { - "id": 3065, - "nodeType": "StructuredDocumentation", - "src": "5619:131:18", - "text": " @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior." - }, - "id": 3098, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_fallback", - "nameLocation": "5764:9:18", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3067, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "5793:8:18" - }, - "parameters": { - "id": 3066, - "nodeType": "ParameterList", - "parameters": [], - "src": "5773:2:18" - }, - "returnParameters": { - "id": 3068, - "nodeType": "ParameterList", - "parameters": [], - "src": "5802:0:18" - }, - "scope": 3128, - "src": "5755:369:18", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3126, - "nodeType": "Block", - "src": "6371:172:18", - "statements": [ - { - "assignments": [ - 3103, - 3105 - ], - "declarations": [ - { - "constant": false, - "id": 3103, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "6390:17:18", - "nodeType": "VariableDeclaration", - "scope": 3126, - "src": "6382:25:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6382:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3105, - "mutability": "mutable", - "name": "data", - "nameLocation": "6422:4:18", - "nodeType": "VariableDeclaration", - "scope": 3126, - "src": "6409:17:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3104, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6409:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 3118, - "initialValue": { - "arguments": [ - { - "baseExpression": { - "expression": { - "id": 3108, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6441:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6445:4:18", - "memberName": "data", - "nodeType": "MemberAccess", - "src": "6441:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 3111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexRangeAccess", - "src": "6441:12:18", - "startExpression": { - "hexValue": "34", - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6450: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": 3113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6456:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6456:7:18", - "typeDescriptions": {} - } - }, - { - "id": 3115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6465:5:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 3114, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6465:5:18", - "typeDescriptions": {} - } - } - ], - "id": 3116, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6455: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": 3106, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "6430:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6434:6:18", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "6430:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6430:42:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$", - "typeString": "tuple(address payable,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6381:91:18" - }, - { - "expression": { - "arguments": [ - { - "id": 3122, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3103, - "src": "6512:17:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3123, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3105, - "src": "6531: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": 3119, - "name": "ERC1967Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "6482:12:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2898_$", - "typeString": "type(library ERC1967Utils)" - } - }, - "id": 3121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6495:16:18", - "memberName": "upgradeToAndCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 2713, - "src": "6482:29:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 3124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6482:54:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3125, - "nodeType": "ExpressionStatement", - "src": "6482:54:18" - } - ] - }, - "documentation": { - "id": 3099, - "nodeType": "StructuredDocumentation", - "src": "6130: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": 3127, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_dispatchUpgradeToAndCall", - "nameLocation": "6335:25:18", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3100, - "nodeType": "ParameterList", - "parameters": [], - "src": "6360:2:18" - }, - "returnParameters": { - "id": 3101, - "nodeType": "ParameterList", - "parameters": [], - "src": "6371:0:18" - }, - "scope": 3128, - "src": "6326:217:18", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - } - ], - "scope": 3129, - "src": "4314:2231:18", - "usedErrors": [ - 2624, - 2629, - 2637, - 3022, - 3138, - 3430 - ], - "usedEvents": [ - 2543, - 2550 - ] - } - ], - "src": "133:6413:18" - }, - "id": 18 - }, - "@openzeppelin/contracts/utils/Address.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Address.sol", - "exportedSymbols": { - "Address": [ - 3387 - ], - "Errors": [ - 3439 - ] - }, - "id": 3388, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3130, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "101:24:19" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", - "file": "./Errors.sol", - "id": 3132, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3388, - "sourceUnit": 3440, - "src": "127:36:19", - "symbolAliases": [ - { - "foreign": { - "id": 3131, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "135:6:19", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Address", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3133, - "nodeType": "StructuredDocumentation", - "src": "165:67:19", - "text": " @dev Collection of functions related to the address type" - }, - "fullyImplemented": true, - "id": 3387, - "linearizedBaseContracts": [ - 3387 - ], - "name": "Address", - "nameLocation": "241:7:19", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 3134, - "nodeType": "StructuredDocumentation", - "src": "255:75:19", - "text": " @dev There's no code at `target` (it is not a contract)." - }, - "errorSelector": "9996b315", - "id": 3138, - "name": "AddressEmptyCode", - "nameLocation": "341:16:19", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3136, - "mutability": "mutable", - "name": "target", - "nameLocation": "366:6:19", - "nodeType": "VariableDeclaration", - "scope": 3138, - "src": "358:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "358:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "357:16:19" - }, - "src": "335:39:19" - }, - { - "body": { - "id": 3184, - "nodeType": "Block", - "src": "1361:278:19", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 3148, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1383:4:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - ], - "id": 3147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1375:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1375:7:19", - "typeDescriptions": {} - } - }, - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1375:13:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1389:7:19", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "1375:21:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3151, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "1399:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1375:30:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3165, - "nodeType": "IfStatement", - "src": "1371:125:19", - "trueBody": { - "id": 3164, - "nodeType": "Block", - "src": "1407:89:19", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 3158, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1463:4:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - ], - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1455:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1455:7:19", - "typeDescriptions": {} - } - }, - "id": 3159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1455:13:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1469:7:19", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "1455:21:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 3161, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "1478:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 3153, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "1428:6:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Errors_$3439_$", - "typeString": "type(library Errors)" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1435:19:19", - "memberName": "InsufficientBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 3427, - "src": "1428:26:19", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1428:57:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3163, - "nodeType": "RevertStatement", - "src": "1421:64:19" - } - ] - } - }, - { - "assignments": [ - 3167, - null - ], - "declarations": [ - { - "constant": false, - "id": 3167, - "mutability": "mutable", - "name": "success", - "nameLocation": "1512:7:19", - "nodeType": "VariableDeclaration", - "scope": 3184, - "src": "1507:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3166, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1507:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - null - ], - "id": 3174, - "initialValue": { - "arguments": [ - { - "hexValue": "", - "id": 3172, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1555: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": 3168, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "1525:9:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1535:4:19", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "1525: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": 3171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 3170, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "1547:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "1525: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": 3173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1525:33:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1506:52:19" - }, - { - "condition": { - "id": 3176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1572:8:19", - "subExpression": { - "id": 3175, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "1573:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3183, - "nodeType": "IfStatement", - "src": "1568:65:19", - "trueBody": { - "id": 3182, - "nodeType": "Block", - "src": "1582:51:19", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 3177, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "1603:6:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Errors_$3439_$", - "typeString": "type(library Errors)" - } - }, - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1610:10:19", - "memberName": "FailedCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3430, - "src": "1603:17:19", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1603:19:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3181, - "nodeType": "RevertStatement", - "src": "1596:26:19" - } - ] - } - } - ] - }, - "documentation": { - "id": 3139, - "nodeType": "StructuredDocumentation", - "src": "380: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": 3185, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sendValue", - "nameLocation": "1299:9:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3141, - "mutability": "mutable", - "name": "recipient", - "nameLocation": "1325:9:19", - "nodeType": "VariableDeclaration", - "scope": 3185, - "src": "1309:25:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1309:15:19", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3143, - "mutability": "mutable", - "name": "amount", - "nameLocation": "1344:6:19", - "nodeType": "VariableDeclaration", - "scope": 3185, - "src": "1336:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3142, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1336:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1308:43:19" - }, - "returnParameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [], - "src": "1361:0:19" - }, - "scope": 3387, - "src": "1290:349:19", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3201, - "nodeType": "Block", - "src": "2573:62:19", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 3196, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3188, - "src": "2612:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3197, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3190, - "src": "2620:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "30", - "id": 3198, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2626: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": 3195, - "name": "functionCallWithValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3252, - "src": "2590: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": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2590:38:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3194, - "id": 3200, - "nodeType": "Return", - "src": "2583:45:19" - } - ] - }, - "documentation": { - "id": 3186, - "nodeType": "StructuredDocumentation", - "src": "1645:834: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 {Errors.FailedCall} 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": 3202, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCall", - "nameLocation": "2493:12:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3188, - "mutability": "mutable", - "name": "target", - "nameLocation": "2514:6:19", - "nodeType": "VariableDeclaration", - "scope": 3202, - "src": "2506:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3187, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2506:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3190, - "mutability": "mutable", - "name": "data", - "nameLocation": "2535:4:19", - "nodeType": "VariableDeclaration", - "scope": 3202, - "src": "2522:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3189, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2522:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2505:35:19" - }, - "returnParameters": { - "id": 3194, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3193, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3202, - "src": "2559:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3192, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2559:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2558:14:19" - }, - "scope": 3387, - "src": "2484:151:19", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3251, - "nodeType": "Block", - "src": "3072:294:19", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 3216, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3094:4:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - ], - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3086:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3086:7:19", - "typeDescriptions": {} - } - }, - "id": 3217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3086:13:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3100:7:19", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "3086:21:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3219, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3209, - "src": "3110:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3086:29:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3233, - "nodeType": "IfStatement", - "src": "3082:123:19", - "trueBody": { - "id": 3232, - "nodeType": "Block", - "src": "3117:88:19", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 3226, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3173:4:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - ], - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3165:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3224, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3165:7:19", - "typeDescriptions": {} - } - }, - "id": 3227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3165:13:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3179:7:19", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "3165:21:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 3229, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3209, - "src": "3188:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 3221, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3138:6:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Errors_$3439_$", - "typeString": "type(library Errors)" - } - }, - "id": 3223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3145:19:19", - "memberName": "InsufficientBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 3427, - "src": "3138:26:19", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 3230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3138:56:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3231, - "nodeType": "RevertStatement", - "src": "3131:63:19" - } - ] - } - }, - { - "assignments": [ - 3235, - 3237 - ], - "declarations": [ - { - "constant": false, - "id": 3235, - "mutability": "mutable", - "name": "success", - "nameLocation": "3220:7:19", - "nodeType": "VariableDeclaration", - "scope": 3251, - "src": "3215:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3234, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3215:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3237, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "3242:10:19", - "nodeType": "VariableDeclaration", - "scope": 3251, - "src": "3229:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3236, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3229:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 3244, - "initialValue": { - "arguments": [ - { - "id": 3242, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "3282: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": 3238, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "3256:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3263:4:19", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "3256: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": 3241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 3240, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3209, - "src": "3275:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "3256: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": 3243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3256:31:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3214:73:19" - }, - { - "expression": { - "arguments": [ - { - "id": 3246, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "3331:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3247, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3235, - "src": "3339:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 3248, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3237, - "src": "3348: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": 3245, - "name": "verifyCallResultFromTarget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3344, - "src": "3304: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": 3249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3304:55:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3213, - "id": 3250, - "nodeType": "Return", - "src": "3297:62:19" - } - ] - }, - "documentation": { - "id": 3203, - "nodeType": "StructuredDocumentation", - "src": "2641: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": 3252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCallWithValue", - "nameLocation": "2968:21:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3210, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3205, - "mutability": "mutable", - "name": "target", - "nameLocation": "2998:6:19", - "nodeType": "VariableDeclaration", - "scope": 3252, - "src": "2990:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2990:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3207, - "mutability": "mutable", - "name": "data", - "nameLocation": "3019:4:19", - "nodeType": "VariableDeclaration", - "scope": 3252, - "src": "3006:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3206, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3006:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3209, - "mutability": "mutable", - "name": "value", - "nameLocation": "3033:5:19", - "nodeType": "VariableDeclaration", - "scope": 3252, - "src": "3025:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3208, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3025:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2989:50:19" - }, - "returnParameters": { - "id": 3213, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3212, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3252, - "src": "3058:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3211, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3058:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3057:14:19" - }, - "scope": 3387, - "src": "2959:407:19", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3277, - "nodeType": "Block", - "src": "3605:154:19", - "statements": [ - { - "assignments": [ - 3263, - 3265 - ], - "declarations": [ - { - "constant": false, - "id": 3263, - "mutability": "mutable", - "name": "success", - "nameLocation": "3621:7:19", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "3616:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3262, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3616:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3265, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "3643:10:19", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "3630:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3264, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3630:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 3270, - "initialValue": { - "arguments": [ - { - "id": 3268, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3257, - "src": "3675:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 3266, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "3657:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3664:10:19", - "memberName": "staticcall", - "nodeType": "MemberAccess", - "src": "3657: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": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3657:23:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3615:65:19" - }, - { - "expression": { - "arguments": [ - { - "id": 3272, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "3724:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3273, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3263, - "src": "3732:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 3274, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "3741: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": 3271, - "name": "verifyCallResultFromTarget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3344, - "src": "3697: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": 3275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3697:55:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3261, - "id": 3276, - "nodeType": "Return", - "src": "3690:62:19" - } - ] - }, - "documentation": { - "id": 3253, - "nodeType": "StructuredDocumentation", - "src": "3372:128:19", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call." - }, - "id": 3278, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionStaticCall", - "nameLocation": "3514:18:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3255, - "mutability": "mutable", - "name": "target", - "nameLocation": "3541:6:19", - "nodeType": "VariableDeclaration", - "scope": 3278, - "src": "3533:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3533:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3257, - "mutability": "mutable", - "name": "data", - "nameLocation": "3562:4:19", - "nodeType": "VariableDeclaration", - "scope": 3278, - "src": "3549:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3256, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3549:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3532:35:19" - }, - "returnParameters": { - "id": 3261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3278, - "src": "3591:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3259, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3591:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3590:14:19" - }, - "scope": 3387, - "src": "3505:254:19", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3303, - "nodeType": "Block", - "src": "3997:156:19", - "statements": [ - { - "assignments": [ - 3289, - 3291 - ], - "declarations": [ - { - "constant": false, - "id": 3289, - "mutability": "mutable", - "name": "success", - "nameLocation": "4013:7:19", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "4008:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3288, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4008:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3291, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "4035:10:19", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "4022:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3290, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4022:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 3296, - "initialValue": { - "arguments": [ - { - "id": 3294, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3283, - "src": "4069:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 3292, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "4049:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4056:12:19", - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "src": "4049: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": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4049:25:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4007:67:19" - }, - { - "expression": { - "arguments": [ - { - "id": 3298, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "4118:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3299, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "4126:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 3300, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3291, - "src": "4135: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": 3297, - "name": "verifyCallResultFromTarget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3344, - "src": "4091: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": 3301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4091:55:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3287, - "id": 3302, - "nodeType": "Return", - "src": "4084:62:19" - } - ] - }, - "documentation": { - "id": 3279, - "nodeType": "StructuredDocumentation", - "src": "3765:130:19", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call." - }, - "id": 3304, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionDelegateCall", - "nameLocation": "3909:20:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3284, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3281, - "mutability": "mutable", - "name": "target", - "nameLocation": "3938:6:19", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "3930:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3930:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3283, - "mutability": "mutable", - "name": "data", - "nameLocation": "3959:4:19", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "3946:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3282, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3946:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3929:35:19" - }, - "returnParameters": { - "id": 3287, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3286, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "3983:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3285, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3983:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3982:14:19" - }, - "scope": 3387, - "src": "3900:253:19", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3343, - "nodeType": "Block", - "src": "4579:424:19", - "statements": [ - { - "condition": { - "id": 3317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4593:8:19", - "subExpression": { - "id": 3316, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "4594:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3341, - "nodeType": "Block", - "src": "4653:344:19", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3323, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "4841:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4852:6:19", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4841:17:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4862:1:19", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4841:22:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 3327, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "4867:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4874:4:19", - "memberName": "code", - "nodeType": "MemberAccess", - "src": "4867:11:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4879:6:19", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4867:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4889:1:19", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4867:23:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4841:49:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3338, - "nodeType": "IfStatement", - "src": "4837:119:19", - "trueBody": { - "id": 3337, - "nodeType": "Block", - "src": "4892:64:19", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 3334, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "4934:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3333, - "name": "AddressEmptyCode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3138, - "src": "4917:16:19", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 3335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4917:24:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3336, - "nodeType": "RevertStatement", - "src": "4910:31:19" - } - ] - } - }, - { - "expression": { - "id": 3339, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "4976:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3315, - "id": 3340, - "nodeType": "Return", - "src": "4969:17:19" - } - ] - }, - "id": 3342, - "nodeType": "IfStatement", - "src": "4589:408:19", - "trueBody": { - "id": 3322, - "nodeType": "Block", - "src": "4603:44:19", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 3319, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "4625:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3318, - "name": "_revert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3386, - "src": "4617:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory) pure" - } - }, - "id": 3320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4617:19:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3321, - "nodeType": "ExpressionStatement", - "src": "4617:19:19" - } - ] - } - } - ] - }, - "documentation": { - "id": 3305, - "nodeType": "StructuredDocumentation", - "src": "4159:257: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 {Errors.FailedCall}) in case\n of an unsuccessful call." - }, - "id": 3344, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifyCallResultFromTarget", - "nameLocation": "4430:26:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3312, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3307, - "mutability": "mutable", - "name": "target", - "nameLocation": "4474:6:19", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "4466:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3306, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4466:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3309, - "mutability": "mutable", - "name": "success", - "nameLocation": "4495:7:19", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "4490:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3308, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4490:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3311, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "4525:10:19", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "4512:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3310, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4512:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4456:85:19" - }, - "returnParameters": { - "id": 3315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3314, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "4565:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3313, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4565:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4564:14:19" - }, - "scope": 3387, - "src": "4421:582:19", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3365, - "nodeType": "Block", - "src": "5307:122:19", - "statements": [ - { - "condition": { - "id": 3355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5321:8:19", - "subExpression": { - "id": 3354, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "5322:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3363, - "nodeType": "Block", - "src": "5381:42:19", - "statements": [ - { - "expression": { - "id": 3361, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3349, - "src": "5402:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3353, - "id": 3362, - "nodeType": "Return", - "src": "5395:17:19" - } - ] - }, - "id": 3364, - "nodeType": "IfStatement", - "src": "5317:106:19", - "trueBody": { - "id": 3360, - "nodeType": "Block", - "src": "5331:44:19", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 3357, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3349, - "src": "5353:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3356, - "name": "_revert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3386, - "src": "5345:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory) pure" - } - }, - "id": 3358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5345:19:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3359, - "nodeType": "ExpressionStatement", - "src": "5345:19:19" - } - ] - } - } - ] - }, - "documentation": { - "id": 3345, - "nodeType": "StructuredDocumentation", - "src": "5009:191: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 {Errors.FailedCall} error." - }, - "id": 3366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifyCallResult", - "nameLocation": "5214:16:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3350, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3347, - "mutability": "mutable", - "name": "success", - "nameLocation": "5236:7:19", - "nodeType": "VariableDeclaration", - "scope": 3366, - "src": "5231:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3346, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5231:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3349, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "5258:10:19", - "nodeType": "VariableDeclaration", - "scope": 3366, - "src": "5245:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3348, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5245:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5230:39:19" - }, - "returnParameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3352, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3366, - "src": "5293:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3351, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5293:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5292:14:19" - }, - "scope": 3387, - "src": "5205:224:19", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3385, - "nodeType": "Block", - "src": "5598:432:19", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3372, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3369, - "src": "5674:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5685:6:19", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5674:17:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 3374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5694:1:19", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5674:21:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3383, - "nodeType": "Block", - "src": "5973:51:19", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 3378, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "5994:6:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Errors_$3439_$", - "typeString": "type(library Errors)" - } - }, - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6001:10:19", - "memberName": "FailedCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3430, - "src": "5994:17:19", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5994:19:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3382, - "nodeType": "RevertStatement", - "src": "5987:26:19" - } - ] - }, - "id": 3384, - "nodeType": "IfStatement", - "src": "5670:354:19", - "trueBody": { - "id": 3377, - "nodeType": "Block", - "src": "5697:270:19", - "statements": [ - { - "AST": { - "nativeSrc": "5824:133:19", - "nodeType": "YulBlock", - "src": "5824:133:19", - "statements": [ - { - "nativeSrc": "5842:40:19", - "nodeType": "YulVariableDeclaration", - "src": "5842:40:19", - "value": { - "arguments": [ - { - "name": "returndata", - "nativeSrc": "5871:10:19", - "nodeType": "YulIdentifier", - "src": "5871:10:19" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5865:5:19", - "nodeType": "YulIdentifier", - "src": "5865:5:19" - }, - "nativeSrc": "5865:17:19", - "nodeType": "YulFunctionCall", - "src": "5865:17:19" - }, - "variables": [ - { - "name": "returndata_size", - "nativeSrc": "5846:15:19", - "nodeType": "YulTypedName", - "src": "5846:15:19", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5910:2:19", - "nodeType": "YulLiteral", - "src": "5910:2:19", - "type": "", - "value": "32" - }, - { - "name": "returndata", - "nativeSrc": "5914:10:19", - "nodeType": "YulIdentifier", - "src": "5914:10:19" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5906:3:19", - "nodeType": "YulIdentifier", - "src": "5906:3:19" - }, - "nativeSrc": "5906:19:19", - "nodeType": "YulFunctionCall", - "src": "5906:19:19" - }, - { - "name": "returndata_size", - "nativeSrc": "5927:15:19", - "nodeType": "YulIdentifier", - "src": "5927:15:19" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5899:6:19", - "nodeType": "YulIdentifier", - "src": "5899:6:19" - }, - "nativeSrc": "5899:44:19", - "nodeType": "YulFunctionCall", - "src": "5899:44:19" - }, - "nativeSrc": "5899:44:19", - "nodeType": "YulExpressionStatement", - "src": "5899:44:19" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3369, - "isOffset": false, - "isSlot": false, - "src": "5871:10:19", - "valueSize": 1 - }, - { - "declaration": 3369, - "isOffset": false, - "isSlot": false, - "src": "5914:10:19", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3376, - "nodeType": "InlineAssembly", - "src": "5799:158:19" - } - ] - } - } - ] - }, - "documentation": { - "id": 3367, - "nodeType": "StructuredDocumentation", - "src": "5435:103:19", - "text": " @dev Reverts with returndata if present. Otherwise reverts with {Errors.FailedCall}." - }, - "id": 3386, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_revert", - "nameLocation": "5552:7:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3370, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3369, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "5573:10:19", - "nodeType": "VariableDeclaration", - "scope": 3386, - "src": "5560:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3368, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5560:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5559:25:19" - }, - "returnParameters": { - "id": 3371, - "nodeType": "ParameterList", - "parameters": [], - "src": "5598:0:19" - }, - "scope": 3387, - "src": "5543:487:19", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "scope": 3388, - "src": "233:5799:19", - "usedErrors": [ - 3138 - ], - "usedEvents": [] - } - ], - "src": "101:5932:19" - }, - "id": 19 - }, - "@openzeppelin/contracts/utils/Context.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "exportedSymbols": { - "Context": [ - 3417 - ] - }, - "id": 3418, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3389, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "101:24:20" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Context", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 3390, - "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": 3417, - "linearizedBaseContracts": [ - 3417 - ], - "name": "Context", - "nameLocation": "642:7:20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3398, - "nodeType": "Block", - "src": "718:34:20", - "statements": [ - { - "expression": { - "expression": { - "id": 3395, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "735:3:20", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3396, - "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": 3394, - "id": 3397, - "nodeType": "Return", - "src": "728:17:20" - } - ] - }, - "id": 3399, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgSender", - "nameLocation": "665:10:20", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3391, - "nodeType": "ParameterList", - "parameters": [], - "src": "675:2:20" - }, - "returnParameters": { - "id": 3394, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3393, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3399, - "src": "709:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3392, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "709:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "708:9:20" - }, - "scope": 3417, - "src": "656:96:20", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3407, - "nodeType": "Block", - "src": "825:32:20", - "statements": [ - { - "expression": { - "expression": { - "id": 3404, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "842:3:20", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3405, - "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": 3403, - "id": 3406, - "nodeType": "Return", - "src": "835:15:20" - } - ] - }, - "id": 3408, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgData", - "nameLocation": "767:8:20", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [], - "src": "775:2:20" - }, - "returnParameters": { - "id": 3403, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3402, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "809:14:20", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3401, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "809:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "808:16:20" - }, - "scope": 3417, - "src": "758:99:20", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3415, - "nodeType": "Block", - "src": "935:25:20", - "statements": [ - { - "expression": { - "hexValue": "30", - "id": 3413, - "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": 3412, - "id": 3414, - "nodeType": "Return", - "src": "945:8:20" - } - ] - }, - "id": 3416, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_contextSuffixLength", - "nameLocation": "872:20:20", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3409, - "nodeType": "ParameterList", - "parameters": [], - "src": "892:2:20" - }, - "returnParameters": { - "id": 3412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3411, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "926:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "926:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "925:9:20" - }, - "scope": 3417, - "src": "863:97:20", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 3418, - "src": "624:338:20", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "101:862:20" - }, - "id": 20 - }, - "@openzeppelin/contracts/utils/Errors.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", - "exportedSymbols": { - "Errors": [ - 3439 - ] - }, - "id": 3440, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3419, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "100:24:21" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Errors", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3420, - "nodeType": "StructuredDocumentation", - "src": "126:284:21", - "text": " @dev Collection of common custom errors used in multiple contracts\n IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.\n It is recommended to avoid relying on the error API for critical functionality.\n _Available since v5.1._" - }, - "fullyImplemented": true, - "id": 3439, - "linearizedBaseContracts": [ - 3439 - ], - "name": "Errors", - "nameLocation": "419:6:21", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 3421, - "nodeType": "StructuredDocumentation", - "src": "432:94:21", - "text": " @dev The ETH balance of the account is not enough to perform the operation." - }, - "errorSelector": "cf479181", - "id": 3427, - "name": "InsufficientBalance", - "nameLocation": "537:19:21", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3423, - "mutability": "mutable", - "name": "balance", - "nameLocation": "565:7:21", - "nodeType": "VariableDeclaration", - "scope": 3427, - "src": "557:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3422, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "557:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3425, - "mutability": "mutable", - "name": "needed", - "nameLocation": "582:6:21", - "nodeType": "VariableDeclaration", - "scope": 3427, - "src": "574:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3424, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "574:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "556:33:21" - }, - "src": "531:59:21" - }, - { - "documentation": { - "id": 3428, - "nodeType": "StructuredDocumentation", - "src": "596:89:21", - "text": " @dev A call to an address target failed. The target may have reverted." - }, - "errorSelector": "d6bda275", - "id": 3430, - "name": "FailedCall", - "nameLocation": "696:10:21", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3429, - "nodeType": "ParameterList", - "parameters": [], - "src": "706:2:21" - }, - "src": "690:19:21" - }, - { - "documentation": { - "id": 3431, - "nodeType": "StructuredDocumentation", - "src": "715:46:21", - "text": " @dev The deployment failed." - }, - "errorSelector": "b06ebf3d", - "id": 3433, - "name": "FailedDeployment", - "nameLocation": "772:16:21", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3432, - "nodeType": "ParameterList", - "parameters": [], - "src": "788:2:21" - }, - "src": "766:25:21" - }, - { - "documentation": { - "id": 3434, - "nodeType": "StructuredDocumentation", - "src": "797:58:21", - "text": " @dev A necessary precompile is missing." - }, - "errorSelector": "42b01bce", - "id": 3438, - "name": "MissingPrecompile", - "nameLocation": "866:17:21", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3437, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3436, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3438, - "src": "884:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3435, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "884:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "883:9:21" - }, - "src": "860:33:21" - } - ], - "scope": 3440, - "src": "411:484:21", - "usedErrors": [ - 3427, - 3430, - 3433, - 3438 - ], - "usedEvents": [] - } - ], - "src": "100:796:21" - }, - "id": 21 - }, - "@openzeppelin/contracts/utils/Panic.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", - "exportedSymbols": { - "Panic": [ - 3491 - ] - }, - "id": 3492, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3441, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "99:24:22" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Panic", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3442, - "nodeType": "StructuredDocumentation", - "src": "125:489:22", - "text": " @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n using Panic for uint256;\n // Use any of the declared internal constants\n function foo() { Panic.GENERIC.panic(); }\n // Alternatively\n function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n _Available since v5.1._" - }, - "fullyImplemented": true, - "id": 3491, - "linearizedBaseContracts": [ - 3491 - ], - "name": "Panic", - "nameLocation": "665:5:22", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "documentation": { - "id": 3443, - "nodeType": "StructuredDocumentation", - "src": "677:36:22", - "text": "@dev generic / unspecified error" - }, - "id": 3446, - "mutability": "constant", - "name": "GENERIC", - "nameLocation": "744:7:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "718:40:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3444, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "718:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783030", - "id": 3445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "754:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x00" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3447, - "nodeType": "StructuredDocumentation", - "src": "764:37:22", - "text": "@dev used by the assert() builtin" - }, - "id": 3450, - "mutability": "constant", - "name": "ASSERT", - "nameLocation": "832:6:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "806:39:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3448, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "806:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783031", - "id": 3449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "841:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x01" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3451, - "nodeType": "StructuredDocumentation", - "src": "851:41:22", - "text": "@dev arithmetic underflow or overflow" - }, - "id": 3454, - "mutability": "constant", - "name": "UNDER_OVERFLOW", - "nameLocation": "923:14:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "897:47:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "897:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783131", - "id": 3453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "940:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_17_by_1", - "typeString": "int_const 17" - }, - "value": "0x11" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3455, - "nodeType": "StructuredDocumentation", - "src": "950:35:22", - "text": "@dev division or modulo by zero" - }, - "id": 3458, - "mutability": "constant", - "name": "DIVISION_BY_ZERO", - "nameLocation": "1016:16:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "990:49:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "990:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783132", - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1035:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "0x12" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3459, - "nodeType": "StructuredDocumentation", - "src": "1045:30:22", - "text": "@dev enum conversion error" - }, - "id": 3462, - "mutability": "constant", - "name": "ENUM_CONVERSION_ERROR", - "nameLocation": "1106:21:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1080:54:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3460, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1080:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783231", - "id": 3461, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1130:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_33_by_1", - "typeString": "int_const 33" - }, - "value": "0x21" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3463, - "nodeType": "StructuredDocumentation", - "src": "1140:36:22", - "text": "@dev invalid encoding in storage" - }, - "id": 3466, - "mutability": "constant", - "name": "STORAGE_ENCODING_ERROR", - "nameLocation": "1207:22:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1181:55:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1181:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783232", - "id": 3465, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1232:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_34_by_1", - "typeString": "int_const 34" - }, - "value": "0x22" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3467, - "nodeType": "StructuredDocumentation", - "src": "1242:24:22", - "text": "@dev empty array pop" - }, - "id": 3470, - "mutability": "constant", - "name": "EMPTY_ARRAY_POP", - "nameLocation": "1297:15:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1271:48:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3468, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1271:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783331", - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1315:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_49_by_1", - "typeString": "int_const 49" - }, - "value": "0x31" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3471, - "nodeType": "StructuredDocumentation", - "src": "1325:35:22", - "text": "@dev array out of bounds access" - }, - "id": 3474, - "mutability": "constant", - "name": "ARRAY_OUT_OF_BOUNDS", - "nameLocation": "1391:19:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1365:52:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3472, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1365:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783332", - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1413:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "0x32" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3475, - "nodeType": "StructuredDocumentation", - "src": "1423:65:22", - "text": "@dev resource error (too large allocation or too large array)" - }, - "id": 3478, - "mutability": "constant", - "name": "RESOURCE_ERROR", - "nameLocation": "1519:14:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1493:47:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3476, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1493:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783431", - "id": 3477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1536:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "0x41" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3479, - "nodeType": "StructuredDocumentation", - "src": "1546:42:22", - "text": "@dev calling invalid internal function" - }, - "id": 3482, - "mutability": "constant", - "name": "INVALID_INTERNAL_FUNCTION", - "nameLocation": "1619:25:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1593:58:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1593:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783531", - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1647:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_81_by_1", - "typeString": "int_const 81" - }, - "value": "0x51" - }, - "visibility": "internal" - }, - { - "body": { - "id": 3489, - "nodeType": "Block", - "src": "1819:151:22", - "statements": [ - { - "AST": { - "nativeSrc": "1854:110:22", - "nodeType": "YulBlock", - "src": "1854:110:22", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1875:4:22", - "nodeType": "YulLiteral", - "src": "1875:4:22", - "type": "", - "value": "0x00" - }, - { - "kind": "number", - "nativeSrc": "1881:10:22", - "nodeType": "YulLiteral", - "src": "1881:10:22", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1868:6:22", - "nodeType": "YulIdentifier", - "src": "1868:6:22" - }, - "nativeSrc": "1868:24:22", - "nodeType": "YulFunctionCall", - "src": "1868:24:22" - }, - "nativeSrc": "1868:24:22", - "nodeType": "YulExpressionStatement", - "src": "1868:24:22" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1912:4:22", - "nodeType": "YulLiteral", - "src": "1912:4:22", - "type": "", - "value": "0x20" - }, - { - "name": "code", - "nativeSrc": "1918:4:22", - "nodeType": "YulIdentifier", - "src": "1918:4:22" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1905:6:22", - "nodeType": "YulIdentifier", - "src": "1905:6:22" - }, - "nativeSrc": "1905:18:22", - "nodeType": "YulFunctionCall", - "src": "1905:18:22" - }, - "nativeSrc": "1905:18:22", - "nodeType": "YulExpressionStatement", - "src": "1905:18:22" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1943:4:22", - "nodeType": "YulLiteral", - "src": "1943:4:22", - "type": "", - "value": "0x1c" - }, - { - "kind": "number", - "nativeSrc": "1949:4:22", - "nodeType": "YulLiteral", - "src": "1949:4:22", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1936:6:22", - "nodeType": "YulIdentifier", - "src": "1936:6:22" - }, - "nativeSrc": "1936:18:22", - "nodeType": "YulFunctionCall", - "src": "1936:18:22" - }, - "nativeSrc": "1936:18:22", - "nodeType": "YulExpressionStatement", - "src": "1936:18:22" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3485, - "isOffset": false, - "isSlot": false, - "src": "1918:4:22", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3488, - "nodeType": "InlineAssembly", - "src": "1829:135:22" - } - ] - }, - "documentation": { - "id": 3483, - "nodeType": "StructuredDocumentation", - "src": "1658:113:22", - "text": "@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes." - }, - "id": 3490, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "panic", - "nameLocation": "1785:5:22", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3485, - "mutability": "mutable", - "name": "code", - "nameLocation": "1799:4:22", - "nodeType": "VariableDeclaration", - "scope": 3490, - "src": "1791:12:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3484, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1791:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1790:14:22" - }, - "returnParameters": { - "id": 3487, - "nodeType": "ParameterList", - "parameters": [], - "src": "1819:0:22" - }, - "scope": 3491, - "src": "1776:194:22", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 3492, - "src": "657:1315:22", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "99:1874:22" - }, - "id": 22 - }, - "@openzeppelin/contracts/utils/Pausable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Pausable.sol", - "exportedSymbols": { - "Context": [ - 3417 - ], - "Pausable": [ - 3608 - ] - }, - "id": 3609, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3493, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "102:24:23" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "../utils/Context.sol", - "id": 3495, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3609, - "sourceUnit": 3418, - "src": "128:45:23", - "symbolAliases": [ - { - "foreign": { - "id": 3494, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "src": "136:7:23", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 3497, - "name": "Context", - "nameLocations": [ - "645:7:23" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3417, - "src": "645:7:23" - }, - "id": 3498, - "nodeType": "InheritanceSpecifier", - "src": "645:7:23" - } - ], - "canonicalName": "Pausable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 3496, - "nodeType": "StructuredDocumentation", - "src": "175:439:23", - "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": 3608, - "linearizedBaseContracts": [ - 3608, - 3417 - ], - "name": "Pausable", - "nameLocation": "633:8:23", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3500, - "mutability": "mutable", - "name": "_paused", - "nameLocation": "672:7:23", - "nodeType": "VariableDeclaration", - "scope": 3608, - "src": "659:20:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3499, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "659:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": { - "id": 3501, - "nodeType": "StructuredDocumentation", - "src": "686:73:23", - "text": " @dev Emitted when the pause is triggered by `account`." - }, - "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", - "id": 3505, - "name": "Paused", - "nameLocation": "770:6:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 3504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3503, - "indexed": false, - "mutability": "mutable", - "name": "account", - "nameLocation": "785:7:23", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "777:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3502, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "777:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "776:17:23" - }, - "src": "764:30:23" - }, - { - "anonymous": false, - "documentation": { - "id": 3506, - "nodeType": "StructuredDocumentation", - "src": "800:70:23", - "text": " @dev Emitted when the pause is lifted by `account`." - }, - "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", - "id": 3510, - "name": "Unpaused", - "nameLocation": "881:8:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 3509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3508, - "indexed": false, - "mutability": "mutable", - "name": "account", - "nameLocation": "898:7:23", - "nodeType": "VariableDeclaration", - "scope": 3510, - "src": "890:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3507, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "890:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "889:17:23" - }, - "src": "875:32:23" - }, - { - "documentation": { - "id": 3511, - "nodeType": "StructuredDocumentation", - "src": "913:76:23", - "text": " @dev The operation failed because the contract is paused." - }, - "errorSelector": "d93c0665", - "id": 3513, - "name": "EnforcedPause", - "nameLocation": "1000:13:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3512, - "nodeType": "ParameterList", - "parameters": [], - "src": "1013:2:23" - }, - "src": "994:22:23" - }, - { - "documentation": { - "id": 3514, - "nodeType": "StructuredDocumentation", - "src": "1022:80:23", - "text": " @dev The operation failed because the contract is not paused." - }, - "errorSelector": "8dfc202b", - "id": 3516, - "name": "ExpectedPause", - "nameLocation": "1113:13:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3515, - "nodeType": "ParameterList", - "parameters": [], - "src": "1126:2:23" - }, - "src": "1107:22:23" - }, - { - "body": { - "id": 3524, - "nodeType": "Block", - "src": "1221:32:23", - "statements": [ - { - "expression": { - "id": 3522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3520, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "1231:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 3521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1241:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1231:15:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3523, - "nodeType": "ExpressionStatement", - "src": "1231:15:23" - } - ] - }, - "documentation": { - "id": 3517, - "nodeType": "StructuredDocumentation", - "src": "1135:67:23", - "text": " @dev Initializes the contract in unpaused state." - }, - "id": 3525, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3518, - "nodeType": "ParameterList", - "parameters": [], - "src": "1218:2:23" - }, - "returnParameters": { - "id": 3519, - "nodeType": "ParameterList", - "parameters": [], - "src": "1221:0:23" - }, - "scope": 3608, - "src": "1207:46:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3532, - "nodeType": "Block", - "src": "1464:47:23", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3528, - "name": "_requireNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3562, - "src": "1474:17:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 3529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1474:19:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3530, - "nodeType": "ExpressionStatement", - "src": "1474:19:23" - }, - { - "id": 3531, - "nodeType": "PlaceholderStatement", - "src": "1503:1:23" - } - ] - }, - "documentation": { - "id": 3526, - "nodeType": "StructuredDocumentation", - "src": "1259:175:23", - "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": 3533, - "name": "whenNotPaused", - "nameLocation": "1448:13:23", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3527, - "nodeType": "ParameterList", - "parameters": [], - "src": "1461:2:23" - }, - "src": "1439:72:23", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3540, - "nodeType": "Block", - "src": "1711:44:23", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3536, - "name": "_requirePaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "1721:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 3537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1721:16:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3538, - "nodeType": "ExpressionStatement", - "src": "1721:16:23" - }, - { - "id": 3539, - "nodeType": "PlaceholderStatement", - "src": "1747:1:23" - } - ] - }, - "documentation": { - "id": 3534, - "nodeType": "StructuredDocumentation", - "src": "1517:167:23", - "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." - }, - "id": 3541, - "name": "whenPaused", - "nameLocation": "1698:10:23", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3535, - "nodeType": "ParameterList", - "parameters": [], - "src": "1708:2:23" - }, - "src": "1689:66:23", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3549, - "nodeType": "Block", - "src": "1903:31:23", - "statements": [ - { - "expression": { - "id": 3547, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "1920:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3546, - "id": 3548, - "nodeType": "Return", - "src": "1913:14:23" - } - ] - }, - "documentation": { - "id": 3542, - "nodeType": "StructuredDocumentation", - "src": "1761:84:23", - "text": " @dev Returns true if the contract is paused, and false otherwise." - }, - "functionSelector": "5c975abb", - "id": 3550, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "paused", - "nameLocation": "1859:6:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3543, - "nodeType": "ParameterList", - "parameters": [], - "src": "1865:2:23" - }, - "returnParameters": { - "id": 3546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3545, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3550, - "src": "1897:4:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3544, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1897:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1896:6:23" - }, - "scope": 3608, - "src": "1850:84:23", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 3561, - "nodeType": "Block", - "src": "2053:77:23", - "statements": [ - { - "condition": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3554, - "name": "paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3550, - "src": "2067:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 3555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2067:8:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3560, - "nodeType": "IfStatement", - "src": "2063:61:23", - "trueBody": { - "id": 3559, - "nodeType": "Block", - "src": "2077:47:23", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3556, - "name": "EnforcedPause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "2098:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2098:15:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3558, - "nodeType": "RevertStatement", - "src": "2091:22:23" - } - ] - } - } - ] - }, - "documentation": { - "id": 3551, - "nodeType": "StructuredDocumentation", - "src": "1940:57:23", - "text": " @dev Throws if the contract is paused." - }, - "id": 3562, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_requireNotPaused", - "nameLocation": "2011:17:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3552, - "nodeType": "ParameterList", - "parameters": [], - "src": "2028:2:23" - }, - "returnParameters": { - "id": 3553, - "nodeType": "ParameterList", - "parameters": [], - "src": "2053:0:23" - }, - "scope": 3608, - "src": "2002:128:23", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3574, - "nodeType": "Block", - "src": "2250:78:23", - "statements": [ - { - "condition": { - "id": 3568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2264:9:23", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3566, - "name": "paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3550, - "src": "2265:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 3567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2265:8:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3573, - "nodeType": "IfStatement", - "src": "2260:62:23", - "trueBody": { - "id": 3572, - "nodeType": "Block", - "src": "2275:47:23", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3569, - "name": "ExpectedPause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "2296:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2296:15:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3571, - "nodeType": "RevertStatement", - "src": "2289:22:23" - } - ] - } - } - ] - }, - "documentation": { - "id": 3563, - "nodeType": "StructuredDocumentation", - "src": "2136:61:23", - "text": " @dev Throws if the contract is not paused." - }, - "id": 3575, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_requirePaused", - "nameLocation": "2211:14:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3564, - "nodeType": "ParameterList", - "parameters": [], - "src": "2225:2:23" - }, - "returnParameters": { - "id": 3565, - "nodeType": "ParameterList", - "parameters": [], - "src": "2250:0:23" - }, - "scope": 3608, - "src": "2202:126:23", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3590, - "nodeType": "Block", - "src": "2512:66:23", - "statements": [ - { - "expression": { - "id": 3583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3581, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "2522:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 3582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2532:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2522:14:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3584, - "nodeType": "ExpressionStatement", - "src": "2522:14:23" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3586, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2558:10:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2558:12:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3585, - "name": "Paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3505, - "src": "2551:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 3588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2551:20:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3589, - "nodeType": "EmitStatement", - "src": "2546:25:23" - } - ] - }, - "documentation": { - "id": 3576, - "nodeType": "StructuredDocumentation", - "src": "2334:124:23", - "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." - }, - "id": 3591, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 3579, - "kind": "modifierInvocation", - "modifierName": { - "id": 3578, - "name": "whenNotPaused", - "nameLocations": [ - "2498:13:23" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3533, - "src": "2498:13:23" - }, - "nodeType": "ModifierInvocation", - "src": "2498:13:23" - } - ], - "name": "_pause", - "nameLocation": "2472:6:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [], - "src": "2478:2:23" - }, - "returnParameters": { - "id": 3580, - "nodeType": "ParameterList", - "parameters": [], - "src": "2512:0:23" - }, - "scope": 3608, - "src": "2463:115:23", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3606, - "nodeType": "Block", - "src": "2758:69:23", - "statements": [ - { - "expression": { - "id": 3599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3597, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "2768:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2778:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2768:15:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3600, - "nodeType": "ExpressionStatement", - "src": "2768:15:23" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3602, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2807:10:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 3603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2807:12:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3601, - "name": "Unpaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3510, - "src": "2798:8:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 3604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2798:22:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3605, - "nodeType": "EmitStatement", - "src": "2793:27:23" - } - ] - }, - "documentation": { - "id": 3592, - "nodeType": "StructuredDocumentation", - "src": "2584:121:23", - "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." - }, - "id": 3607, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 3595, - "kind": "modifierInvocation", - "modifierName": { - "id": 3594, - "name": "whenPaused", - "nameLocations": [ - "2747:10:23" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3541, - "src": "2747:10:23" - }, - "nodeType": "ModifierInvocation", - "src": "2747:10:23" - } - ], - "name": "_unpause", - "nameLocation": "2719:8:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3593, - "nodeType": "ParameterList", - "parameters": [], - "src": "2727:2:23" - }, - "returnParameters": { - "id": 3596, - "nodeType": "ParameterList", - "parameters": [], - "src": "2758:0:23" - }, - "scope": 3608, - "src": "2710:117:23", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 3609, - "src": "615:2214:23", - "usedErrors": [ - 3513, - 3516 - ], - "usedEvents": [ - 3505, - 3510 - ] - } - ], - "src": "102:2728:23" - }, - "id": 23 - }, - "@openzeppelin/contracts/utils/StorageSlot.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", - "exportedSymbols": { - "StorageSlot": [ - 3732 - ] - }, - "id": 3733, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3610, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "193:24:24" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "StorageSlot", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3611, - "nodeType": "StructuredDocumentation", - "src": "219:1187:24", - "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 ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\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 ```\n TIP: Consider using this library along with {SlotDerivation}." - }, - "fullyImplemented": true, - "id": 3732, - "linearizedBaseContracts": [ - 3732 - ], - "name": "StorageSlot", - "nameLocation": "1415:11:24", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "StorageSlot.AddressSlot", - "id": 3614, - "members": [ - { - "constant": false, - "id": 3613, - "mutability": "mutable", - "name": "value", - "nameLocation": "1470:5:24", - "nodeType": "VariableDeclaration", - "scope": 3614, - "src": "1462:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1462:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "name": "AddressSlot", - "nameLocation": "1440:11:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1433:49:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.BooleanSlot", - "id": 3617, - "members": [ - { - "constant": false, - "id": 3616, - "mutability": "mutable", - "name": "value", - "nameLocation": "1522:5:24", - "nodeType": "VariableDeclaration", - "scope": 3617, - "src": "1517:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3615, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1517:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "name": "BooleanSlot", - "nameLocation": "1495:11:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1488:46:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.Bytes32Slot", - "id": 3620, - "members": [ - { - "constant": false, - "id": 3619, - "mutability": "mutable", - "name": "value", - "nameLocation": "1577:5:24", - "nodeType": "VariableDeclaration", - "scope": 3620, - "src": "1569:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3618, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1569:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "name": "Bytes32Slot", - "nameLocation": "1547:11:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1540:49:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.Uint256Slot", - "id": 3623, - "members": [ - { - "constant": false, - "id": 3622, - "mutability": "mutable", - "name": "value", - "nameLocation": "1632:5:24", - "nodeType": "VariableDeclaration", - "scope": 3623, - "src": "1624:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3621, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1624:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Uint256Slot", - "nameLocation": "1602:11:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1595:49:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.Int256Slot", - "id": 3626, - "members": [ - { - "constant": false, - "id": 3625, - "mutability": "mutable", - "name": "value", - "nameLocation": "1685:5:24", - "nodeType": "VariableDeclaration", - "scope": 3626, - "src": "1678:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 3624, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "1678:6:24", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "name": "Int256Slot", - "nameLocation": "1657:10:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1650:47:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.StringSlot", - "id": 3629, - "members": [ - { - "constant": false, - "id": 3628, - "mutability": "mutable", - "name": "value", - "nameLocation": "1738:5:24", - "nodeType": "VariableDeclaration", - "scope": 3629, - "src": "1731:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3627, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1731:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "StringSlot", - "nameLocation": "1710:10:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1703:47:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.BytesSlot", - "id": 3632, - "members": [ - { - "constant": false, - "id": 3631, - "mutability": "mutable", - "name": "value", - "nameLocation": "1789:5:24", - "nodeType": "VariableDeclaration", - "scope": 3632, - "src": "1783:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3630, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1783:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "name": "BytesSlot", - "nameLocation": "1763:9:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1756:45:24", - "visibility": "public" - }, - { - "body": { - "id": 3642, - "nodeType": "Block", - "src": "1983:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "2018:38:24", - "nodeType": "YulBlock", - "src": "2018:38:24", - "statements": [ - { - "nativeSrc": "2032:14:24", - "nodeType": "YulAssignment", - "src": "2032:14:24", - "value": { - "name": "slot", - "nativeSrc": "2042:4:24", - "nodeType": "YulIdentifier", - "src": "2042:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "2032:6:24", - "nodeType": "YulIdentifier", - "src": "2032:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3639, - "isOffset": false, - "isSlot": true, - "src": "2032:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3635, - "isOffset": false, - "isSlot": false, - "src": "2042:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3641, - "nodeType": "InlineAssembly", - "src": "1993:63:24" - } - ] - }, - "documentation": { - "id": 3633, - "nodeType": "StructuredDocumentation", - "src": "1807:87:24", - "text": " @dev Returns an `AddressSlot` with member `value` located at `slot`." - }, - "id": 3643, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAddressSlot", - "nameLocation": "1908:14:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3636, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3635, - "mutability": "mutable", - "name": "slot", - "nameLocation": "1931:4:24", - "nodeType": "VariableDeclaration", - "scope": 3643, - "src": "1923:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3634, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1923:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1922:14:24" - }, - "returnParameters": { - "id": 3640, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3639, - "mutability": "mutable", - "name": "r", - "nameLocation": "1980:1:24", - "nodeType": "VariableDeclaration", - "scope": 3643, - "src": "1960:21:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot" - }, - "typeName": { - "id": 3638, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3637, - "name": "AddressSlot", - "nameLocations": [ - "1960:11:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3614, - "src": "1960:11:24" - }, - "referencedDeclaration": 3614, - "src": "1960:11:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot" - } - }, - "visibility": "internal" - } - ], - "src": "1959:23:24" - }, - "scope": 3732, - "src": "1899:163:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3653, - "nodeType": "Block", - "src": "2243:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "2278:38:24", - "nodeType": "YulBlock", - "src": "2278:38:24", - "statements": [ - { - "nativeSrc": "2292:14:24", - "nodeType": "YulAssignment", - "src": "2292:14:24", - "value": { - "name": "slot", - "nativeSrc": "2302:4:24", - "nodeType": "YulIdentifier", - "src": "2302:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "2292:6:24", - "nodeType": "YulIdentifier", - "src": "2292:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3650, - "isOffset": false, - "isSlot": true, - "src": "2292:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3646, - "isOffset": false, - "isSlot": false, - "src": "2302:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3652, - "nodeType": "InlineAssembly", - "src": "2253:63:24" - } - ] - }, - "documentation": { - "id": 3644, - "nodeType": "StructuredDocumentation", - "src": "2068:86:24", - "text": " @dev Returns a `BooleanSlot` with member `value` located at `slot`." - }, - "id": 3654, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBooleanSlot", - "nameLocation": "2168:14:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3647, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3646, - "mutability": "mutable", - "name": "slot", - "nameLocation": "2191:4:24", - "nodeType": "VariableDeclaration", - "scope": 3654, - "src": "2183:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3645, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2183:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2182:14:24" - }, - "returnParameters": { - "id": 3651, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3650, - "mutability": "mutable", - "name": "r", - "nameLocation": "2240:1:24", - "nodeType": "VariableDeclaration", - "scope": 3654, - "src": "2220:21:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BooleanSlot_$3617_storage_ptr", - "typeString": "struct StorageSlot.BooleanSlot" - }, - "typeName": { - "id": 3649, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3648, - "name": "BooleanSlot", - "nameLocations": [ - "2220:11:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3617, - "src": "2220:11:24" - }, - "referencedDeclaration": 3617, - "src": "2220:11:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BooleanSlot_$3617_storage_ptr", - "typeString": "struct StorageSlot.BooleanSlot" - } - }, - "visibility": "internal" - } - ], - "src": "2219:23:24" - }, - "scope": 3732, - "src": "2159:163:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3664, - "nodeType": "Block", - "src": "2503:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "2538:38:24", - "nodeType": "YulBlock", - "src": "2538:38:24", - "statements": [ - { - "nativeSrc": "2552:14:24", - "nodeType": "YulAssignment", - "src": "2552:14:24", - "value": { - "name": "slot", - "nativeSrc": "2562:4:24", - "nodeType": "YulIdentifier", - "src": "2562:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "2552:6:24", - "nodeType": "YulIdentifier", - "src": "2552:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3661, - "isOffset": false, - "isSlot": true, - "src": "2552:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3657, - "isOffset": false, - "isSlot": false, - "src": "2562:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3663, - "nodeType": "InlineAssembly", - "src": "2513:63:24" - } - ] - }, - "documentation": { - "id": 3655, - "nodeType": "StructuredDocumentation", - "src": "2328:86:24", - "text": " @dev Returns a `Bytes32Slot` with member `value` located at `slot`." - }, - "id": 3665, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBytes32Slot", - "nameLocation": "2428:14:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3658, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3657, - "mutability": "mutable", - "name": "slot", - "nameLocation": "2451:4:24", - "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "2443:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3656, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2443:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2442:14:24" - }, - "returnParameters": { - "id": 3662, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3661, - "mutability": "mutable", - "name": "r", - "nameLocation": "2500:1:24", - "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "2480:21:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bytes32Slot_$3620_storage_ptr", - "typeString": "struct StorageSlot.Bytes32Slot" - }, - "typeName": { - "id": 3660, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3659, - "name": "Bytes32Slot", - "nameLocations": [ - "2480:11:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3620, - "src": "2480:11:24" - }, - "referencedDeclaration": 3620, - "src": "2480:11:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bytes32Slot_$3620_storage_ptr", - "typeString": "struct StorageSlot.Bytes32Slot" - } - }, - "visibility": "internal" - } - ], - "src": "2479:23:24" - }, - "scope": 3732, - "src": "2419:163:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3675, - "nodeType": "Block", - "src": "2763:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "2798:38:24", - "nodeType": "YulBlock", - "src": "2798:38:24", - "statements": [ - { - "nativeSrc": "2812:14:24", - "nodeType": "YulAssignment", - "src": "2812:14:24", - "value": { - "name": "slot", - "nativeSrc": "2822:4:24", - "nodeType": "YulIdentifier", - "src": "2822:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "2812:6:24", - "nodeType": "YulIdentifier", - "src": "2812:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3672, - "isOffset": false, - "isSlot": true, - "src": "2812:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3668, - "isOffset": false, - "isSlot": false, - "src": "2822:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3674, - "nodeType": "InlineAssembly", - "src": "2773:63:24" - } - ] - }, - "documentation": { - "id": 3666, - "nodeType": "StructuredDocumentation", - "src": "2588:86:24", - "text": " @dev Returns a `Uint256Slot` with member `value` located at `slot`." - }, - "id": 3676, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getUint256Slot", - "nameLocation": "2688:14:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3668, - "mutability": "mutable", - "name": "slot", - "nameLocation": "2711:4:24", - "nodeType": "VariableDeclaration", - "scope": 3676, - "src": "2703:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3667, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2703:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2702:14:24" - }, - "returnParameters": { - "id": 3673, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3672, - "mutability": "mutable", - "name": "r", - "nameLocation": "2760:1:24", - "nodeType": "VariableDeclaration", - "scope": 3676, - "src": "2740:21:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Uint256Slot_$3623_storage_ptr", - "typeString": "struct StorageSlot.Uint256Slot" - }, - "typeName": { - "id": 3671, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3670, - "name": "Uint256Slot", - "nameLocations": [ - "2740:11:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3623, - "src": "2740:11:24" - }, - "referencedDeclaration": 3623, - "src": "2740:11:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Uint256Slot_$3623_storage_ptr", - "typeString": "struct StorageSlot.Uint256Slot" - } - }, - "visibility": "internal" - } - ], - "src": "2739:23:24" - }, - "scope": 3732, - "src": "2679:163:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3686, - "nodeType": "Block", - "src": "3020:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "3055:38:24", - "nodeType": "YulBlock", - "src": "3055:38:24", - "statements": [ - { - "nativeSrc": "3069:14:24", - "nodeType": "YulAssignment", - "src": "3069:14:24", - "value": { - "name": "slot", - "nativeSrc": "3079:4:24", - "nodeType": "YulIdentifier", - "src": "3079:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "3069:6:24", - "nodeType": "YulIdentifier", - "src": "3069:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3683, - "isOffset": false, - "isSlot": true, - "src": "3069:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3679, - "isOffset": false, - "isSlot": false, - "src": "3079:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3685, - "nodeType": "InlineAssembly", - "src": "3030:63:24" - } - ] - }, - "documentation": { - "id": 3677, - "nodeType": "StructuredDocumentation", - "src": "2848:85:24", - "text": " @dev Returns a `Int256Slot` with member `value` located at `slot`." - }, - "id": 3687, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getInt256Slot", - "nameLocation": "2947:13:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3680, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3679, - "mutability": "mutable", - "name": "slot", - "nameLocation": "2969:4:24", - "nodeType": "VariableDeclaration", - "scope": 3687, - "src": "2961:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3678, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2961:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2960:14:24" - }, - "returnParameters": { - "id": 3684, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3683, - "mutability": "mutable", - "name": "r", - "nameLocation": "3017:1:24", - "nodeType": "VariableDeclaration", - "scope": 3687, - "src": "2998:20:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Int256Slot_$3626_storage_ptr", - "typeString": "struct StorageSlot.Int256Slot" - }, - "typeName": { - "id": 3682, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3681, - "name": "Int256Slot", - "nameLocations": [ - "2998:10:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3626, - "src": "2998:10:24" - }, - "referencedDeclaration": 3626, - "src": "2998:10:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Int256Slot_$3626_storage_ptr", - "typeString": "struct StorageSlot.Int256Slot" - } - }, - "visibility": "internal" - } - ], - "src": "2997:22:24" - }, - "scope": 3732, - "src": "2938:161:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3697, - "nodeType": "Block", - "src": "3277:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "3312:38:24", - "nodeType": "YulBlock", - "src": "3312:38:24", - "statements": [ - { - "nativeSrc": "3326:14:24", - "nodeType": "YulAssignment", - "src": "3326:14:24", - "value": { - "name": "slot", - "nativeSrc": "3336:4:24", - "nodeType": "YulIdentifier", - "src": "3336:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "3326:6:24", - "nodeType": "YulIdentifier", - "src": "3326:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3694, - "isOffset": false, - "isSlot": true, - "src": "3326:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3690, - "isOffset": false, - "isSlot": false, - "src": "3336:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3696, - "nodeType": "InlineAssembly", - "src": "3287:63:24" - } - ] - }, - "documentation": { - "id": 3688, - "nodeType": "StructuredDocumentation", - "src": "3105:85:24", - "text": " @dev Returns a `StringSlot` with member `value` located at `slot`." - }, - "id": 3698, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStringSlot", - "nameLocation": "3204:13:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3691, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3690, - "mutability": "mutable", - "name": "slot", - "nameLocation": "3226:4:24", - "nodeType": "VariableDeclaration", - "scope": 3698, - "src": "3218:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3689, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3218:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3217:14:24" - }, - "returnParameters": { - "id": 3695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3694, - "mutability": "mutable", - "name": "r", - "nameLocation": "3274:1:24", - "nodeType": "VariableDeclaration", - "scope": 3698, - "src": "3255:20:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StringSlot_$3629_storage_ptr", - "typeString": "struct StorageSlot.StringSlot" - }, - "typeName": { - "id": 3693, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3692, - "name": "StringSlot", - "nameLocations": [ - "3255:10:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3629, - "src": "3255:10:24" - }, - "referencedDeclaration": 3629, - "src": "3255:10:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StringSlot_$3629_storage_ptr", - "typeString": "struct StorageSlot.StringSlot" - } - }, - "visibility": "internal" - } - ], - "src": "3254:22:24" - }, - "scope": 3732, - "src": "3195:161:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3708, - "nodeType": "Block", - "src": "3558:85:24", - "statements": [ - { - "AST": { - "nativeSrc": "3593:44:24", - "nodeType": "YulBlock", - "src": "3593:44:24", - "statements": [ - { - "nativeSrc": "3607:20:24", - "nodeType": "YulAssignment", - "src": "3607:20:24", - "value": { - "name": "store.slot", - "nativeSrc": "3617:10:24", - "nodeType": "YulIdentifier", - "src": "3617:10:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "3607:6:24", - "nodeType": "YulIdentifier", - "src": "3607:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3705, - "isOffset": false, - "isSlot": true, - "src": "3607:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3701, - "isOffset": false, - "isSlot": true, - "src": "3617:10:24", - "suffix": "slot", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3707, - "nodeType": "InlineAssembly", - "src": "3568:69:24" - } - ] - }, - "documentation": { - "id": 3699, - "nodeType": "StructuredDocumentation", - "src": "3362:101:24", - "text": " @dev Returns an `StringSlot` representation of the string storage pointer `store`." - }, - "id": 3709, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStringSlot", - "nameLocation": "3477:13:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3702, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3701, - "mutability": "mutable", - "name": "store", - "nameLocation": "3506:5:24", - "nodeType": "VariableDeclaration", - "scope": 3709, - "src": "3491:20:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3700, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3491:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "3490:22:24" - }, - "returnParameters": { - "id": 3706, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3705, - "mutability": "mutable", - "name": "r", - "nameLocation": "3555:1:24", - "nodeType": "VariableDeclaration", - "scope": 3709, - "src": "3536:20:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StringSlot_$3629_storage_ptr", - "typeString": "struct StorageSlot.StringSlot" - }, - "typeName": { - "id": 3704, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3703, - "name": "StringSlot", - "nameLocations": [ - "3536:10:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3629, - "src": "3536:10:24" - }, - "referencedDeclaration": 3629, - "src": "3536:10:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StringSlot_$3629_storage_ptr", - "typeString": "struct StorageSlot.StringSlot" - } - }, - "visibility": "internal" - } - ], - "src": "3535:22:24" - }, - "scope": 3732, - "src": "3468:175:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3719, - "nodeType": "Block", - "src": "3818:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "3853:38:24", - "nodeType": "YulBlock", - "src": "3853:38:24", - "statements": [ - { - "nativeSrc": "3867:14:24", - "nodeType": "YulAssignment", - "src": "3867:14:24", - "value": { - "name": "slot", - "nativeSrc": "3877:4:24", - "nodeType": "YulIdentifier", - "src": "3877:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "3867:6:24", - "nodeType": "YulIdentifier", - "src": "3867:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3716, - "isOffset": false, - "isSlot": true, - "src": "3867:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3712, - "isOffset": false, - "isSlot": false, - "src": "3877:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3718, - "nodeType": "InlineAssembly", - "src": "3828:63:24" - } - ] - }, - "documentation": { - "id": 3710, - "nodeType": "StructuredDocumentation", - "src": "3649:84:24", - "text": " @dev Returns a `BytesSlot` with member `value` located at `slot`." - }, - "id": 3720, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBytesSlot", - "nameLocation": "3747:12:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3713, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3712, - "mutability": "mutable", - "name": "slot", - "nameLocation": "3768:4:24", - "nodeType": "VariableDeclaration", - "scope": 3720, - "src": "3760:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3711, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3760:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3759:14:24" - }, - "returnParameters": { - "id": 3717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3716, - "mutability": "mutable", - "name": "r", - "nameLocation": "3815:1:24", - "nodeType": "VariableDeclaration", - "scope": 3720, - "src": "3797:19:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BytesSlot_$3632_storage_ptr", - "typeString": "struct StorageSlot.BytesSlot" - }, - "typeName": { - "id": 3715, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3714, - "name": "BytesSlot", - "nameLocations": [ - "3797:9:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3632, - "src": "3797:9:24" - }, - "referencedDeclaration": 3632, - "src": "3797:9:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BytesSlot_$3632_storage_ptr", - "typeString": "struct StorageSlot.BytesSlot" - } - }, - "visibility": "internal" - } - ], - "src": "3796:21:24" - }, - "scope": 3732, - "src": "3738:159:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3730, - "nodeType": "Block", - "src": "4094:85:24", - "statements": [ - { - "AST": { - "nativeSrc": "4129:44:24", - "nodeType": "YulBlock", - "src": "4129:44:24", - "statements": [ - { - "nativeSrc": "4143:20:24", - "nodeType": "YulAssignment", - "src": "4143:20:24", - "value": { - "name": "store.slot", - "nativeSrc": "4153:10:24", - "nodeType": "YulIdentifier", - "src": "4153:10:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "4143:6:24", - "nodeType": "YulIdentifier", - "src": "4143:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3727, - "isOffset": false, - "isSlot": true, - "src": "4143:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3723, - "isOffset": false, - "isSlot": true, - "src": "4153:10:24", - "suffix": "slot", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3729, - "nodeType": "InlineAssembly", - "src": "4104:69:24" - } - ] - }, - "documentation": { - "id": 3721, - "nodeType": "StructuredDocumentation", - "src": "3903:99:24", - "text": " @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`." - }, - "id": 3731, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBytesSlot", - "nameLocation": "4016:12:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3724, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3723, - "mutability": "mutable", - "name": "store", - "nameLocation": "4043:5:24", - "nodeType": "VariableDeclaration", - "scope": 3731, - "src": "4029:19:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3722, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4029:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4028:21:24" - }, - "returnParameters": { - "id": 3728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3727, - "mutability": "mutable", - "name": "r", - "nameLocation": "4091:1:24", - "nodeType": "VariableDeclaration", - "scope": 3731, - "src": "4073:19:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BytesSlot_$3632_storage_ptr", - "typeString": "struct StorageSlot.BytesSlot" - }, - "typeName": { - "id": 3726, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3725, - "name": "BytesSlot", - "nameLocations": [ - "4073:9:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3632, - "src": "4073:9:24" - }, - "referencedDeclaration": 3632, - "src": "4073:9:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BytesSlot_$3632_storage_ptr", - "typeString": "struct StorageSlot.BytesSlot" - } - }, - "visibility": "internal" - } - ], - "src": "4072:21:24" - }, - "scope": 3732, - "src": "4007:172:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 3733, - "src": "1407:2774:24", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "193:3989:24" - }, - "id": 24 - }, - "@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "exportedSymbols": { - "ERC165": [ - 3756 - ], - "IERC165": [ - 3768 - ] - }, - "id": 3757, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3734, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "114:24:25" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "file": "./IERC165.sol", - "id": 3736, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3757, - "sourceUnit": 3769, - "src": "140:38:25", - "symbolAliases": [ - { - "foreign": { - "id": 3735, - "name": "IERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3768, - "src": "148:7:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 3738, - "name": "IERC165", - "nameLocations": [ - "688:7:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3768, - "src": "688:7:25" - }, - "id": 3739, - "nodeType": "InheritanceSpecifier", - "src": "688:7:25" - } - ], - "canonicalName": "ERC165", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 3737, - "nodeType": "StructuredDocumentation", - "src": "180:479:25", - "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 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": 3756, - "linearizedBaseContracts": [ - 3756, - 3768 - ], - "name": "ERC165", - "nameLocation": "678:6:25", - "nodeType": "ContractDefinition", - "nodes": [ - { - "baseFunctions": [ - 3767 - ], - "body": { - "id": 3754, - "nodeType": "Block", - "src": "845:64:25", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3747, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "862:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 3749, - "name": "IERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3768, - "src": "882:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC165_$3768_$", - "typeString": "type(contract IERC165)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_IERC165_$3768_$", - "typeString": "type(contract IERC165)" - } - ], - "id": 3748, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "877:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "877:13:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$3768", - "typeString": "type(contract IERC165)" - } - }, - "id": 3751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "891:11:25", - "memberName": "interfaceId", - "nodeType": "MemberAccess", - "src": "877:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "862:40:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3746, - "id": 3753, - "nodeType": "Return", - "src": "855:47:25" - } - ] - }, - "documentation": { - "id": 3740, - "nodeType": "StructuredDocumentation", - "src": "702:56:25", - "text": " @dev See {IERC165-supportsInterface}." - }, - "functionSelector": "01ffc9a7", - "id": 3755, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "772:17:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "797:11:25", - "nodeType": "VariableDeclaration", - "scope": 3755, - "src": "790:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3741, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "790:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "789:20:25" - }, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3755, - "src": "839:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3744, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "839:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "838:6:25" - }, - "scope": 3756, - "src": "763:146:25", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - } - ], - "scope": 3757, - "src": "660:251:25", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "114:798:25" - }, - "id": 25 - }, - "@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "exportedSymbols": { - "IERC165": [ - 3768 - ] - }, - "id": 3769, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3758, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "115:24:26" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IERC165", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 3759, - "nodeType": "StructuredDocumentation", - "src": "141:280:26", - "text": " @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\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": 3768, - "linearizedBaseContracts": [ - 3768 - ], - "name": "IERC165", - "nameLocation": "432:7:26", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 3760, - "nodeType": "StructuredDocumentation", - "src": "446:340:26", - "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[ERC 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": 3767, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "800:17:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3762, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "825:11:26", - "nodeType": "VariableDeclaration", - "scope": 3767, - "src": "818:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3761, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "818:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "817:20:26" - }, - "returnParameters": { - "id": 3766, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3765, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3767, - "src": "861:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3764, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "861:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "860:6:26" - }, - "scope": 3768, - "src": "791:76:26", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 3769, - "src": "422:447:26", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "115:755:26" - }, - "id": 26 - }, - "@openzeppelin/contracts/utils/math/Math.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", - "exportedSymbols": { - "Math": [ - 5374 - ], - "Panic": [ - 3491 - ], - "SafeCast": [ - 7139 - ] - }, - "id": 5375, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3770, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "103:24:27" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", - "file": "../Panic.sol", - "id": 3772, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5375, - "sourceUnit": 3492, - "src": "129:35:27", - "symbolAliases": [ - { - "foreign": { - "id": 3771, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "137:5:27", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", - "file": "./SafeCast.sol", - "id": 3774, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5375, - "sourceUnit": 7140, - "src": "165:40:27", - "symbolAliases": [ - { - "foreign": { - "id": 3773, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "173:8:27", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Math", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3775, - "nodeType": "StructuredDocumentation", - "src": "207:73:27", - "text": " @dev Standard math utilities missing in the Solidity language." - }, - "fullyImplemented": true, - "id": 5374, - "linearizedBaseContracts": [ - 5374 - ], - "name": "Math", - "nameLocation": "289:4:27", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Math.Rounding", - "id": 3780, - "members": [ - { - "id": 3776, - "name": "Floor", - "nameLocation": "324:5:27", - "nodeType": "EnumValue", - "src": "324:5:27" - }, - { - "id": 3777, - "name": "Ceil", - "nameLocation": "367:4:27", - "nodeType": "EnumValue", - "src": "367:4:27" - }, - { - "id": 3778, - "name": "Trunc", - "nameLocation": "409:5:27", - "nodeType": "EnumValue", - "src": "409:5:27" - }, - { - "id": 3779, - "name": "Expand", - "nameLocation": "439:6:27", - "nodeType": "EnumValue", - "src": "439:6:27" - } - ], - "name": "Rounding", - "nameLocation": "305:8:27", - "nodeType": "EnumDefinition", - "src": "300:169:27" - }, - { - "body": { - "id": 3811, - "nodeType": "Block", - "src": "677:140:27", - "statements": [ - { - "id": 3810, - "nodeType": "UncheckedBlock", - "src": "687:124:27", - "statements": [ - { - "assignments": [ - 3793 - ], - "declarations": [ - { - "constant": false, - "id": 3793, - "mutability": "mutable", - "name": "c", - "nameLocation": "719:1:27", - "nodeType": "VariableDeclaration", - "scope": 3810, - "src": "711:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "711:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 3797, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3794, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3783, - "src": "723:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 3795, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3785, - "src": "727:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "723:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "711:17:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3798, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3793, - "src": "746:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3799, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3783, - "src": "750:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "746:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3805, - "nodeType": "IfStatement", - "src": "742:28:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 3801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "761:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 3802, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "768:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3803, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "760:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3791, - "id": 3804, - "nodeType": "Return", - "src": "753:17:27" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "792:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "id": 3807, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3793, - "src": "798:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3808, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "791:9:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 3791, - "id": 3809, - "nodeType": "Return", - "src": "784:16:27" - } - ] - } - ] - }, - "documentation": { - "id": 3781, - "nodeType": "StructuredDocumentation", - "src": "475:106:27", - "text": " @dev Returns the addition of two unsigned integers, with an success flag (no overflow)." - }, - "id": 3812, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryAdd", - "nameLocation": "595:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3783, - "mutability": "mutable", - "name": "a", - "nameLocation": "610:1:27", - "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "602:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "602:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3785, - "mutability": "mutable", - "name": "b", - "nameLocation": "621:1:27", - "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "613:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3784, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "613:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "601:22:27" - }, - "returnParameters": { - "id": 3791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3788, - "mutability": "mutable", - "name": "success", - "nameLocation": "652:7:27", - "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "647:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3787, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "647:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3790, - "mutability": "mutable", - "name": "result", - "nameLocation": "669:6:27", - "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "661:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3789, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "661:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "646:30:27" - }, - "scope": 5374, - "src": "586:231:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3839, - "nodeType": "Block", - "src": "1028:113:27", - "statements": [ - { - "id": 3838, - "nodeType": "UncheckedBlock", - "src": "1038:97:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3824, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3817, - "src": "1066:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 3825, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "1070:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1066:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3831, - "nodeType": "IfStatement", - "src": "1062:28:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 3827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1081:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 3828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1088:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3829, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1080:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3823, - "id": 3830, - "nodeType": "Return", - "src": "1073:17:27" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1112:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3833, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "1118:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 3834, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3817, - "src": "1122:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1118:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3836, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1111:13:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 3823, - "id": 3837, - "nodeType": "Return", - "src": "1104:20:27" - } - ] - } - ] - }, - "documentation": { - "id": 3813, - "nodeType": "StructuredDocumentation", - "src": "823:109:27", - "text": " @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow)." - }, - "id": 3840, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trySub", - "nameLocation": "946:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3815, - "mutability": "mutable", - "name": "a", - "nameLocation": "961:1:27", - "nodeType": "VariableDeclaration", - "scope": 3840, - "src": "953:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "953:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3817, - "mutability": "mutable", - "name": "b", - "nameLocation": "972:1:27", - "nodeType": "VariableDeclaration", - "scope": 3840, - "src": "964:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3816, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "964:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "952:22:27" - }, - "returnParameters": { - "id": 3823, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3820, - "mutability": "mutable", - "name": "success", - "nameLocation": "1003:7:27", - "nodeType": "VariableDeclaration", - "scope": 3840, - "src": "998:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3819, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "998:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3822, - "mutability": "mutable", - "name": "result", - "nameLocation": "1020:6:27", - "nodeType": "VariableDeclaration", - "scope": 3840, - "src": "1012:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3821, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1012:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "997:30:27" - }, - "scope": 5374, - "src": "937:204:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "1355:417:27", - "statements": [ - { - "id": 3880, - "nodeType": "UncheckedBlock", - "src": "1365:401:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3852, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3843, - "src": "1623:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1628:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1623:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3859, - "nodeType": "IfStatement", - "src": "1619:28:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1639:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "hexValue": "30", - "id": 3856, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1645:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3857, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1638:9:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3851, - "id": 3858, - "nodeType": "Return", - "src": "1631:16:27" - } - }, - { - "assignments": [ - 3861 - ], - "declarations": [ - { - "constant": false, - "id": 3861, - "mutability": "mutable", - "name": "c", - "nameLocation": "1669:1:27", - "nodeType": "VariableDeclaration", - "scope": 3880, - "src": "1661:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3860, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1661:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 3865, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3862, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3843, - "src": "1673:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 3863, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3845, - "src": "1677:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1673:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1661:17:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3866, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3861, - "src": "1696:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 3867, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3843, - "src": "1700:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1696:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 3869, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3845, - "src": "1705:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1696:10:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3875, - "nodeType": "IfStatement", - "src": "1692:33:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1716:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 3872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1723:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3873, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1715:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3851, - "id": 3874, - "nodeType": "Return", - "src": "1708:17:27" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3876, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1747:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "id": 3877, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3861, - "src": "1753:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3878, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1746:9:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 3851, - "id": 3879, - "nodeType": "Return", - "src": "1739:16:27" - } - ] - } - ] - }, - "documentation": { - "id": 3841, - "nodeType": "StructuredDocumentation", - "src": "1147:112:27", - "text": " @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow)." - }, - "id": 3882, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryMul", - "nameLocation": "1273:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3843, - "mutability": "mutable", - "name": "a", - "nameLocation": "1288:1:27", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "1280:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3842, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1280:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3845, - "mutability": "mutable", - "name": "b", - "nameLocation": "1299:1:27", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "1291:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3844, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1291:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1279:22:27" - }, - "returnParameters": { - "id": 3851, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3848, - "mutability": "mutable", - "name": "success", - "nameLocation": "1330:7:27", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "1325:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3847, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1325:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3850, - "mutability": "mutable", - "name": "result", - "nameLocation": "1347:6:27", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "1339:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3849, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1339:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1324:30:27" - }, - "scope": 5374, - "src": "1264:508:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3909, - "nodeType": "Block", - "src": "1987:114:27", - "statements": [ - { - "id": 3908, - "nodeType": "UncheckedBlock", - "src": "1997:98:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3894, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "2025:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3895, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2030:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2025:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3901, - "nodeType": "IfStatement", - "src": "2021:29:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 3897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2041:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 3898, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2048:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3899, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2040:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3893, - "id": 3900, - "nodeType": "Return", - "src": "2033:17:27" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3902, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2072:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3903, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "2078:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 3904, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "2082:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2078:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3906, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2071:13:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 3893, - "id": 3907, - "nodeType": "Return", - "src": "2064:20:27" - } - ] - } - ] - }, - "documentation": { - "id": 3883, - "nodeType": "StructuredDocumentation", - "src": "1778:113:27", - "text": " @dev Returns the division of two unsigned integers, with a success flag (no division by zero)." - }, - "id": 3910, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryDiv", - "nameLocation": "1905:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3888, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3885, - "mutability": "mutable", - "name": "a", - "nameLocation": "1920:1:27", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "1912:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3884, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1912:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3887, - "mutability": "mutable", - "name": "b", - "nameLocation": "1931:1:27", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "1923:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3886, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1923:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1911:22:27" - }, - "returnParameters": { - "id": 3893, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3890, - "mutability": "mutable", - "name": "success", - "nameLocation": "1962:7:27", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "1957:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3889, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1957:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3892, - "mutability": "mutable", - "name": "result", - "nameLocation": "1979:6:27", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "1971:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3891, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1971:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1956:30:27" - }, - "scope": 5374, - "src": "1896:205:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3937, - "nodeType": "Block", - "src": "2326:114:27", - "statements": [ - { - "id": 3936, - "nodeType": "UncheckedBlock", - "src": "2336:98:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3922, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3915, - "src": "2364:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2369:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2364:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3929, - "nodeType": "IfStatement", - "src": "2360:29:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2380:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 3926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2387:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3927, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2379:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3921, - "id": 3928, - "nodeType": "Return", - "src": "2372:17:27" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2411:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3931, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3913, - "src": "2417:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "id": 3932, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3915, - "src": "2421:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2417:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3934, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2410:13:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 3921, - "id": 3935, - "nodeType": "Return", - "src": "2403:20:27" - } - ] - } - ] - }, - "documentation": { - "id": 3911, - "nodeType": "StructuredDocumentation", - "src": "2107:123:27", - "text": " @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)." - }, - "id": 3938, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryMod", - "nameLocation": "2244:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3916, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3913, - "mutability": "mutable", - "name": "a", - "nameLocation": "2259:1:27", - "nodeType": "VariableDeclaration", - "scope": 3938, - "src": "2251:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2251:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3915, - "mutability": "mutable", - "name": "b", - "nameLocation": "2270:1:27", - "nodeType": "VariableDeclaration", - "scope": 3938, - "src": "2262:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3914, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2262:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2250:22:27" - }, - "returnParameters": { - "id": 3921, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3918, - "mutability": "mutable", - "name": "success", - "nameLocation": "2301:7:27", - "nodeType": "VariableDeclaration", - "scope": 3938, - "src": "2296:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3917, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2296:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3920, - "mutability": "mutable", - "name": "result", - "nameLocation": "2318:6:27", - "nodeType": "VariableDeclaration", - "scope": 3938, - "src": "2310:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3919, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2310:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2295:30:27" - }, - "scope": 5374, - "src": "2235:205:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3964, - "nodeType": "Block", - "src": "2912:207:27", - "statements": [ - { - "id": 3963, - "nodeType": "UncheckedBlock", - "src": "2922:191:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3950, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3945, - "src": "3060:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3951, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3943, - "src": "3066:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "id": 3952, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3945, - "src": "3070:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3066:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3954, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3065:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "id": 3957, - "name": "condition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3941, - "src": "3091:9:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 3955, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "3075:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3084:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "3075:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3075:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3065:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3960, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3064:38:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3060:42:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3949, - "id": 3962, - "nodeType": "Return", - "src": "3053:49:27" - } - ] - } - ] - }, - "documentation": { - "id": 3939, - "nodeType": "StructuredDocumentation", - "src": "2446:374:27", - "text": " @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive." - }, - "id": 3965, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ternary", - "nameLocation": "2834:7:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3941, - "mutability": "mutable", - "name": "condition", - "nameLocation": "2847:9:27", - "nodeType": "VariableDeclaration", - "scope": 3965, - "src": "2842:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3940, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2842:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3943, - "mutability": "mutable", - "name": "a", - "nameLocation": "2866:1:27", - "nodeType": "VariableDeclaration", - "scope": 3965, - "src": "2858:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3942, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2858:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3945, - "mutability": "mutable", - "name": "b", - "nameLocation": "2877:1:27", - "nodeType": "VariableDeclaration", - "scope": 3965, - "src": "2869:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3944, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2869:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2841:38:27" - }, - "returnParameters": { - "id": 3949, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3965, - "src": "2903:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2903:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2902:9:27" - }, - "scope": 5374, - "src": "2825:294:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3983, - "nodeType": "Block", - "src": "3256:44:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3976, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3968, - "src": "3281:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 3977, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3970, - "src": "3285:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3281:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 3979, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3968, - "src": "3288:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 3980, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3970, - "src": "3291:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3975, - "name": "ternary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3965, - "src": "3273:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bool,uint256,uint256) pure returns (uint256)" - } - }, - "id": 3981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3273:20:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3974, - "id": 3982, - "nodeType": "Return", - "src": "3266:27:27" - } - ] - }, - "documentation": { - "id": 3966, - "nodeType": "StructuredDocumentation", - "src": "3125:59:27", - "text": " @dev Returns the largest of two numbers." - }, - "id": 3984, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "max", - "nameLocation": "3198:3:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3971, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3968, - "mutability": "mutable", - "name": "a", - "nameLocation": "3210:1:27", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "3202:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3967, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3202:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3970, - "mutability": "mutable", - "name": "b", - "nameLocation": "3221:1:27", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "3213:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3969, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3213:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3201:22:27" - }, - "returnParameters": { - "id": 3974, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3973, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "3247:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3972, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3247:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3246:9:27" - }, - "scope": 5374, - "src": "3189:111:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4002, - "nodeType": "Block", - "src": "3438:44:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3995, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3987, - "src": "3463:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3996, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3989, - "src": "3467:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3463:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 3998, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3987, - "src": "3470:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 3999, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3989, - "src": "3473:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3994, - "name": "ternary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3965, - "src": "3455:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bool,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3455:20:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3993, - "id": 4001, - "nodeType": "Return", - "src": "3448:27:27" - } - ] - }, - "documentation": { - "id": 3985, - "nodeType": "StructuredDocumentation", - "src": "3306:60:27", - "text": " @dev Returns the smallest of two numbers." - }, - "id": 4003, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "min", - "nameLocation": "3380:3:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3990, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3987, - "mutability": "mutable", - "name": "a", - "nameLocation": "3392:1:27", - "nodeType": "VariableDeclaration", - "scope": 4003, - "src": "3384:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3384:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3989, - "mutability": "mutable", - "name": "b", - "nameLocation": "3403:1:27", - "nodeType": "VariableDeclaration", - "scope": 4003, - "src": "3395:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3988, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3395:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3383:22:27" - }, - "returnParameters": { - "id": 3993, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3992, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4003, - "src": "3429:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3991, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3429:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3428:9:27" - }, - "scope": 5374, - "src": "3371:111:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4025, - "nodeType": "Block", - "src": "3666:82:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4013, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "3721:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "id": 4014, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3725:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3721:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4016, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3720:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4017, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "3731:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "id": 4018, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3735:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3731:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4020, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3730:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "hexValue": "32", - "id": 4021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3740:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "3730:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3720:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4012, - "id": 4024, - "nodeType": "Return", - "src": "3713:28:27" - } - ] - }, - "documentation": { - "id": 4004, - "nodeType": "StructuredDocumentation", - "src": "3488:102:27", - "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." - }, - "id": 4026, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "average", - "nameLocation": "3604:7:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4006, - "mutability": "mutable", - "name": "a", - "nameLocation": "3620:1:27", - "nodeType": "VariableDeclaration", - "scope": 4026, - "src": "3612:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4005, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3612:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4008, - "mutability": "mutable", - "name": "b", - "nameLocation": "3631:1:27", - "nodeType": "VariableDeclaration", - "scope": 4026, - "src": "3623:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4007, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3623:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3611:22:27" - }, - "returnParameters": { - "id": 4012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4011, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4026, - "src": "3657:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4010, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3657:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3656:9:27" - }, - "scope": 5374, - "src": "3595:153:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4066, - "nodeType": "Block", - "src": "4040:633:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4036, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4031, - "src": "4054:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4059:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4054:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4047, - "nodeType": "IfStatement", - "src": "4050:150:27", - "trueBody": { - "id": 4046, - "nodeType": "Block", - "src": "4062:138:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 4042, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "4166:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4172:16:27", - "memberName": "DIVISION_BY_ZERO", - "nodeType": "MemberAccess", - "referencedDeclaration": 3458, - "src": "4166:22:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 4039, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "4154:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4160:5:27", - "memberName": "panic", - "nodeType": "MemberAccess", - "referencedDeclaration": 3490, - "src": "4154:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 4044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4154:35:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4045, - "nodeType": "ExpressionStatement", - "src": "4154:35:27" - } - ] - } - }, - { - "id": 4065, - "nodeType": "UncheckedBlock", - "src": "4583:84:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4050, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "4630:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 4051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4634:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4630:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4048, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "4614:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4623:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "4614:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4614:22:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4054, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "4641:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4055, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4645:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4641:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4057, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4640:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4058, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4031, - "src": "4650:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4640:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 4060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4654:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4640:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4062, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4639:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4614:42:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4035, - "id": 4064, - "nodeType": "Return", - "src": "4607:49:27" - } - ] - } - ] - }, - "documentation": { - "id": 4027, - "nodeType": "StructuredDocumentation", - "src": "3754:210:27", - "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": 4067, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ceilDiv", - "nameLocation": "3978:7:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4029, - "mutability": "mutable", - "name": "a", - "nameLocation": "3994:1:27", - "nodeType": "VariableDeclaration", - "scope": 4067, - "src": "3986:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4028, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3986:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4031, - "mutability": "mutable", - "name": "b", - "nameLocation": "4005:1:27", - "nodeType": "VariableDeclaration", - "scope": 4067, - "src": "3997:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3997:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3985:22:27" - }, - "returnParameters": { - "id": 4035, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4034, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4067, - "src": "4031:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4033, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4031:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4030:9:27" - }, - "scope": 5374, - "src": "3969:704:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4203, - "nodeType": "Block", - "src": "5094:4128:27", - "statements": [ - { - "id": 4202, - "nodeType": "UncheckedBlock", - "src": "5104:4112:27", - "statements": [ - { - "assignments": [ - 4080 - ], - "declarations": [ - { - "constant": false, - "id": 4080, - "mutability": "mutable", - "name": "prod0", - "nameLocation": "5441:5:27", - "nodeType": "VariableDeclaration", - "scope": 4202, - "src": "5433:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4079, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5433:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4084, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4081, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4070, - "src": "5449:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4082, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4072, - "src": "5453:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5449:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5433:21:27" - }, - { - "assignments": [ - 4086 - ], - "declarations": [ - { - "constant": false, - "id": 4086, - "mutability": "mutable", - "name": "prod1", - "nameLocation": "5521:5:27", - "nodeType": "VariableDeclaration", - "scope": 4202, - "src": "5513:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4085, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5513:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4087, - "nodeType": "VariableDeclarationStatement", - "src": "5513:13:27" - }, - { - "AST": { - "nativeSrc": "5593:122:27", - "nodeType": "YulBlock", - "src": "5593:122:27", - "statements": [ - { - "nativeSrc": "5611:30:27", - "nodeType": "YulVariableDeclaration", - "src": "5611:30:27", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "5628:1:27", - "nodeType": "YulIdentifier", - "src": "5628:1:27" - }, - { - "name": "y", - "nativeSrc": "5631:1:27", - "nodeType": "YulIdentifier", - "src": "5631:1:27" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5638:1:27", - "nodeType": "YulLiteral", - "src": "5638:1:27", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "5634:3:27", - "nodeType": "YulIdentifier", - "src": "5634:3:27" - }, - "nativeSrc": "5634:6:27", - "nodeType": "YulFunctionCall", - "src": "5634:6:27" - } - ], - "functionName": { - "name": "mulmod", - "nativeSrc": "5621:6:27", - "nodeType": "YulIdentifier", - "src": "5621:6:27" - }, - "nativeSrc": "5621:20:27", - "nodeType": "YulFunctionCall", - "src": "5621:20:27" - }, - "variables": [ - { - "name": "mm", - "nativeSrc": "5615:2:27", - "nodeType": "YulTypedName", - "src": "5615:2:27", - "type": "" - } - ] - }, - { - "nativeSrc": "5658:43:27", - "nodeType": "YulAssignment", - "src": "5658:43:27", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "mm", - "nativeSrc": "5675:2:27", - "nodeType": "YulIdentifier", - "src": "5675:2:27" - }, - { - "name": "prod0", - "nativeSrc": "5679:5:27", - "nodeType": "YulIdentifier", - "src": "5679:5:27" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5671:3:27", - "nodeType": "YulIdentifier", - "src": "5671:3:27" - }, - "nativeSrc": "5671:14:27", - "nodeType": "YulFunctionCall", - "src": "5671:14:27" - }, - { - "arguments": [ - { - "name": "mm", - "nativeSrc": "5690:2:27", - "nodeType": "YulIdentifier", - "src": "5690:2:27" - }, - { - "name": "prod0", - "nativeSrc": "5694:5:27", - "nodeType": "YulIdentifier", - "src": "5694:5:27" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5687:2:27", - "nodeType": "YulIdentifier", - "src": "5687:2:27" - }, - "nativeSrc": "5687:13:27", - "nodeType": "YulFunctionCall", - "src": "5687:13:27" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5667:3:27", - "nodeType": "YulIdentifier", - "src": "5667:3:27" - }, - "nativeSrc": "5667:34:27", - "nodeType": "YulFunctionCall", - "src": "5667:34:27" - }, - "variableNames": [ - { - "name": "prod1", - "nativeSrc": "5658:5:27", - "nodeType": "YulIdentifier", - "src": "5658:5:27" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "5679:5:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "5694:5:27", - "valueSize": 1 - }, - { - "declaration": 4086, - "isOffset": false, - "isSlot": false, - "src": "5658:5:27", - "valueSize": 1 - }, - { - "declaration": 4070, - "isOffset": false, - "isSlot": false, - "src": "5628:1:27", - "valueSize": 1 - }, - { - "declaration": 4072, - "isOffset": false, - "isSlot": false, - "src": "5631:1:27", - "valueSize": 1 - } - ], - "id": 4088, - "nodeType": "InlineAssembly", - "src": "5584:131:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4089, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "5796:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5805:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5796:10:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4097, - "nodeType": "IfStatement", - "src": "5792:368:27", - "trueBody": { - "id": 4096, - "nodeType": "Block", - "src": "5808:352:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4092, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4080, - "src": "6126:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4093, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "6134:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6126:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4078, - "id": 4095, - "nodeType": "Return", - "src": "6119:26:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4098, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "6270:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 4099, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "6285:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6270:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4116, - "nodeType": "IfStatement", - "src": "6266:143:27", - "trueBody": { - "id": 4115, - "nodeType": "Block", - "src": "6292:117:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4105, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "6330:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6345:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6330:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "expression": { - "id": 4108, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "6348:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6354:16:27", - "memberName": "DIVISION_BY_ZERO", - "nodeType": "MemberAccess", - "referencedDeclaration": 3458, - "src": "6348:22:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 4110, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "6372:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4111, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6378:14:27", - "memberName": "UNDER_OVERFLOW", - "nodeType": "MemberAccess", - "referencedDeclaration": 3454, - "src": "6372:20:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4104, - "name": "ternary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3965, - "src": "6322:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bool,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6322:71:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 4101, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "6310:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6316:5:27", - "memberName": "panic", - "nodeType": "MemberAccess", - "referencedDeclaration": 3490, - "src": "6310:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 4113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6310:84:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4114, - "nodeType": "ExpressionStatement", - "src": "6310:84:27" - } - ] - } - }, - { - "assignments": [ - 4118 - ], - "declarations": [ - { - "constant": false, - "id": 4118, - "mutability": "mutable", - "name": "remainder", - "nameLocation": "6672:9:27", - "nodeType": "VariableDeclaration", - "scope": 4202, - "src": "6664:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6664:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4119, - "nodeType": "VariableDeclarationStatement", - "src": "6664:17:27" - }, - { - "AST": { - "nativeSrc": "6704:291:27", - "nodeType": "YulBlock", - "src": "6704:291:27", - "statements": [ - { - "nativeSrc": "6773:38:27", - "nodeType": "YulAssignment", - "src": "6773:38:27", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "6793:1:27", - "nodeType": "YulIdentifier", - "src": "6793:1:27" - }, - { - "name": "y", - "nativeSrc": "6796:1:27", - "nodeType": "YulIdentifier", - "src": "6796:1:27" - }, - { - "name": "denominator", - "nativeSrc": "6799:11:27", - "nodeType": "YulIdentifier", - "src": "6799:11:27" - } - ], - "functionName": { - "name": "mulmod", - "nativeSrc": "6786:6:27", - "nodeType": "YulIdentifier", - "src": "6786:6:27" - }, - "nativeSrc": "6786:25:27", - "nodeType": "YulFunctionCall", - "src": "6786:25:27" - }, - "variableNames": [ - { - "name": "remainder", - "nativeSrc": "6773:9:27", - "nodeType": "YulIdentifier", - "src": "6773:9:27" - } - ] - }, - { - "nativeSrc": "6893:41:27", - "nodeType": "YulAssignment", - "src": "6893:41:27", - "value": { - "arguments": [ - { - "name": "prod1", - "nativeSrc": "6906:5:27", - "nodeType": "YulIdentifier", - "src": "6906:5:27" - }, - { - "arguments": [ - { - "name": "remainder", - "nativeSrc": "6916:9:27", - "nodeType": "YulIdentifier", - "src": "6916:9:27" - }, - { - "name": "prod0", - "nativeSrc": "6927:5:27", - "nodeType": "YulIdentifier", - "src": "6927:5:27" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "6913:2:27", - "nodeType": "YulIdentifier", - "src": "6913:2:27" - }, - "nativeSrc": "6913:20:27", - "nodeType": "YulFunctionCall", - "src": "6913:20:27" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6902:3:27", - "nodeType": "YulIdentifier", - "src": "6902:3:27" - }, - "nativeSrc": "6902:32:27", - "nodeType": "YulFunctionCall", - "src": "6902:32:27" - }, - "variableNames": [ - { - "name": "prod1", - "nativeSrc": "6893:5:27", - "nodeType": "YulIdentifier", - "src": "6893:5:27" - } - ] - }, - { - "nativeSrc": "6951:30:27", - "nodeType": "YulAssignment", - "src": "6951:30:27", - "value": { - "arguments": [ - { - "name": "prod0", - "nativeSrc": "6964:5:27", - "nodeType": "YulIdentifier", - "src": "6964:5:27" - }, - { - "name": "remainder", - "nativeSrc": "6971:9:27", - "nodeType": "YulIdentifier", - "src": "6971:9:27" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6960:3:27", - "nodeType": "YulIdentifier", - "src": "6960:3:27" - }, - "nativeSrc": "6960:21:27", - "nodeType": "YulFunctionCall", - "src": "6960:21:27" - }, - "variableNames": [ - { - "name": "prod0", - "nativeSrc": "6951:5:27", - "nodeType": "YulIdentifier", - "src": "6951:5:27" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4074, - "isOffset": false, - "isSlot": false, - "src": "6799:11:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "6927:5:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "6951:5:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "6964:5:27", - "valueSize": 1 - }, - { - "declaration": 4086, - "isOffset": false, - "isSlot": false, - "src": "6893:5:27", - "valueSize": 1 - }, - { - "declaration": 4086, - "isOffset": false, - "isSlot": false, - "src": "6906:5:27", - "valueSize": 1 - }, - { - "declaration": 4118, - "isOffset": false, - "isSlot": false, - "src": "6773:9:27", - "valueSize": 1 - }, - { - "declaration": 4118, - "isOffset": false, - "isSlot": false, - "src": "6916:9:27", - "valueSize": 1 - }, - { - "declaration": 4118, - "isOffset": false, - "isSlot": false, - "src": "6971:9:27", - "valueSize": 1 - }, - { - "declaration": 4070, - "isOffset": false, - "isSlot": false, - "src": "6793:1:27", - "valueSize": 1 - }, - { - "declaration": 4072, - "isOffset": false, - "isSlot": false, - "src": "6796:1:27", - "valueSize": 1 - } - ], - "id": 4120, - "nodeType": "InlineAssembly", - "src": "6695:300:27" - }, - { - "assignments": [ - 4122 - ], - "declarations": [ - { - "constant": false, - "id": 4122, - "mutability": "mutable", - "name": "twos", - "nameLocation": "7207:4:27", - "nodeType": "VariableDeclaration", - "scope": 4202, - "src": "7199:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7199:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4129, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4123, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "7214:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "30", - "id": 4124, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7229:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 4125, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "7233:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7229:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4127, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7228:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7214:31:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7199:46:27" - }, - { - "AST": { - "nativeSrc": "7268:366:27", - "nodeType": "YulBlock", - "src": "7268:366:27", - "statements": [ - { - "nativeSrc": "7333:37:27", - "nodeType": "YulAssignment", - "src": "7333:37:27", - "value": { - "arguments": [ - { - "name": "denominator", - "nativeSrc": "7352:11:27", - "nodeType": "YulIdentifier", - "src": "7352:11:27" - }, - { - "name": "twos", - "nativeSrc": "7365:4:27", - "nodeType": "YulIdentifier", - "src": "7365:4:27" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "7348:3:27", - "nodeType": "YulIdentifier", - "src": "7348:3:27" - }, - "nativeSrc": "7348:22:27", - "nodeType": "YulFunctionCall", - "src": "7348:22:27" - }, - "variableNames": [ - { - "name": "denominator", - "nativeSrc": "7333:11:27", - "nodeType": "YulIdentifier", - "src": "7333:11:27" - } - ] - }, - { - "nativeSrc": "7437:25:27", - "nodeType": "YulAssignment", - "src": "7437:25:27", - "value": { - "arguments": [ - { - "name": "prod0", - "nativeSrc": "7450:5:27", - "nodeType": "YulIdentifier", - "src": "7450:5:27" - }, - { - "name": "twos", - "nativeSrc": "7457:4:27", - "nodeType": "YulIdentifier", - "src": "7457:4:27" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "7446:3:27", - "nodeType": "YulIdentifier", - "src": "7446:3:27" - }, - "nativeSrc": "7446:16:27", - "nodeType": "YulFunctionCall", - "src": "7446:16:27" - }, - "variableNames": [ - { - "name": "prod0", - "nativeSrc": "7437:5:27", - "nodeType": "YulIdentifier", - "src": "7437:5:27" - } - ] - }, - { - "nativeSrc": "7581:39:27", - "nodeType": "YulAssignment", - "src": "7581:39:27", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7601:1:27", - "nodeType": "YulLiteral", - "src": "7601:1:27", - "type": "", - "value": "0" - }, - { - "name": "twos", - "nativeSrc": "7604:4:27", - "nodeType": "YulIdentifier", - "src": "7604:4:27" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7597:3:27", - "nodeType": "YulIdentifier", - "src": "7597:3:27" - }, - "nativeSrc": "7597:12:27", - "nodeType": "YulFunctionCall", - "src": "7597:12:27" - }, - { - "name": "twos", - "nativeSrc": "7611:4:27", - "nodeType": "YulIdentifier", - "src": "7611:4:27" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "7593:3:27", - "nodeType": "YulIdentifier", - "src": "7593:3:27" - }, - "nativeSrc": "7593:23:27", - "nodeType": "YulFunctionCall", - "src": "7593:23:27" - }, - { - "kind": "number", - "nativeSrc": "7618:1:27", - "nodeType": "YulLiteral", - "src": "7618:1:27", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7589:3:27", - "nodeType": "YulIdentifier", - "src": "7589:3:27" - }, - "nativeSrc": "7589:31:27", - "nodeType": "YulFunctionCall", - "src": "7589:31:27" - }, - "variableNames": [ - { - "name": "twos", - "nativeSrc": "7581:4:27", - "nodeType": "YulIdentifier", - "src": "7581:4:27" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4074, - "isOffset": false, - "isSlot": false, - "src": "7333:11:27", - "valueSize": 1 - }, - { - "declaration": 4074, - "isOffset": false, - "isSlot": false, - "src": "7352:11:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "7437:5:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "7450:5:27", - "valueSize": 1 - }, - { - "declaration": 4122, - "isOffset": false, - "isSlot": false, - "src": "7365:4:27", - "valueSize": 1 - }, - { - "declaration": 4122, - "isOffset": false, - "isSlot": false, - "src": "7457:4:27", - "valueSize": 1 - }, - { - "declaration": 4122, - "isOffset": false, - "isSlot": false, - "src": "7581:4:27", - "valueSize": 1 - }, - { - "declaration": 4122, - "isOffset": false, - "isSlot": false, - "src": "7604:4:27", - "valueSize": 1 - }, - { - "declaration": 4122, - "isOffset": false, - "isSlot": false, - "src": "7611:4:27", - "valueSize": 1 - } - ], - "id": 4130, - "nodeType": "InlineAssembly", - "src": "7259:375:27" - }, - { - "expression": { - "id": 4135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4131, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4080, - "src": "7700:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4132, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "7709:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4133, - "name": "twos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4122, - "src": "7717:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7709:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7700:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4136, - "nodeType": "ExpressionStatement", - "src": "7700:21:27" - }, - { - "assignments": [ - 4138 - ], - "declarations": [ - { - "constant": false, - "id": 4138, - "mutability": "mutable", - "name": "inverse", - "nameLocation": "8064:7:27", - "nodeType": "VariableDeclaration", - "scope": 4202, - "src": "8056:15:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4137, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8056:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4145, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "33", - "id": 4139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8075:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4140, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8079:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8075:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4142, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8074:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "hexValue": "32", - "id": 4143, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8094:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "8074:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8056:39:27" - }, - { - "expression": { - "id": 4152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4146, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8312:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8323:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4148, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8327:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4149, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8341:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8327:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8323:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8312:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4153, - "nodeType": "ExpressionStatement", - "src": "8312:36:27" - }, - { - "expression": { - "id": 4160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4154, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8382:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4155, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8393:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4156, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8397:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4157, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8411:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8397:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8393:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8382:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4161, - "nodeType": "ExpressionStatement", - "src": "8382:36:27" - }, - { - "expression": { - "id": 4168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4162, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8454:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8465:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4164, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8469:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4165, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8483:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8469:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8465:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8454:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4169, - "nodeType": "ExpressionStatement", - "src": "8454:36:27" - }, - { - "expression": { - "id": 4176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4170, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8525:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8536:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4172, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8540:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4173, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8554:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8540:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8536:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8525:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4177, - "nodeType": "ExpressionStatement", - "src": "8525:36:27" - }, - { - "expression": { - "id": 4184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4178, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8598:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8609:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4180, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8613:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4181, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8627:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8613:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8609:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8598:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4185, - "nodeType": "ExpressionStatement", - "src": "8598:36:27" - }, - { - "expression": { - "id": 4192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4186, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8672:7:27", - "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": { - "hexValue": "32", - "id": 4187, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8683:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4188, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8687:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4189, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8701:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8687:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8683:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8672:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4193, - "nodeType": "ExpressionStatement", - "src": "8672:36:27" - }, - { - "expression": { - "id": 4198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4194, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4077, - "src": "9154:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4195, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4080, - "src": "9163:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4196, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "9171:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9163:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9154:24:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4199, - "nodeType": "ExpressionStatement", - "src": "9154:24:27" - }, - { - "expression": { - "id": 4200, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4077, - "src": "9199:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4078, - "id": 4201, - "nodeType": "Return", - "src": "9192:13:27" - } - ] - } - ] - }, - "documentation": { - "id": 4068, - "nodeType": "StructuredDocumentation", - "src": "4679:312:27", - "text": " @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n 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": 4204, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mulDiv", - "nameLocation": "5005:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4070, - "mutability": "mutable", - "name": "x", - "nameLocation": "5020:1:27", - "nodeType": "VariableDeclaration", - "scope": 4204, - "src": "5012:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4069, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5012:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4072, - "mutability": "mutable", - "name": "y", - "nameLocation": "5031:1:27", - "nodeType": "VariableDeclaration", - "scope": 4204, - "src": "5023:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4074, - "mutability": "mutable", - "name": "denominator", - "nameLocation": "5042:11:27", - "nodeType": "VariableDeclaration", - "scope": 4204, - "src": "5034:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5034:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5011:43:27" - }, - "returnParameters": { - "id": 4078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4077, - "mutability": "mutable", - "name": "result", - "nameLocation": "5086:6:27", - "nodeType": "VariableDeclaration", - "scope": 4204, - "src": "5078:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4076, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5078:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5077:16:27" - }, - "scope": 5374, - "src": "4996:4226:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4240, - "nodeType": "Block", - "src": "9461:128:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4220, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4207, - "src": "9485:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4221, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "9488:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4222, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "9491:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4219, - "name": "mulDiv", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4204, - 4241 - ], - "referencedDeclaration": 4204, - "src": "9478:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9478:25:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4227, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4214, - "src": "9539:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 4226, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "9522:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 4228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9522:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4230, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4207, - "src": "9559:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4231, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "9562:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4232, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "9565:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4229, - "name": "mulmod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -16, - "src": "9552:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9552:25:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 4234, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9580:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9552:29:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9522:59:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4224, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "9506:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9515:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "9506:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9506:76:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9478:104:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4218, - "id": 4239, - "nodeType": "Return", - "src": "9471:111:27" - } - ] - }, - "documentation": { - "id": 4205, - "nodeType": "StructuredDocumentation", - "src": "9228:118:27", - "text": " @dev Calculates x * y / denominator with full precision, following the selected rounding direction." - }, - "id": 4241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mulDiv", - "nameLocation": "9360:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4207, - "mutability": "mutable", - "name": "x", - "nameLocation": "9375:1:27", - "nodeType": "VariableDeclaration", - "scope": 4241, - "src": "9367:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9367:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4209, - "mutability": "mutable", - "name": "y", - "nameLocation": "9386:1:27", - "nodeType": "VariableDeclaration", - "scope": 4241, - "src": "9378:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4208, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9378:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4211, - "mutability": "mutable", - "name": "denominator", - "nameLocation": "9397:11:27", - "nodeType": "VariableDeclaration", - "scope": 4241, - "src": "9389:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9389:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4214, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "9419:8:27", - "nodeType": "VariableDeclaration", - "scope": 4241, - "src": "9410:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 4213, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4212, - "name": "Rounding", - "nameLocations": [ - "9410:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "9410:8:27" - }, - "referencedDeclaration": 3780, - "src": "9410:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "9366:62:27" - }, - "returnParameters": { - "id": 4218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4217, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4241, - "src": "9452:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9452:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9451:9:27" - }, - "scope": 5374, - "src": "9351:238:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4337, - "nodeType": "Block", - "src": "10223:1849:27", - "statements": [ - { - "id": 4336, - "nodeType": "UncheckedBlock", - "src": "10233:1833:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4251, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4246, - "src": "10261:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10266:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10261:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4256, - "nodeType": "IfStatement", - "src": "10257:20:27", - "trueBody": { - "expression": { - "hexValue": "30", - "id": 4254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10276:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 4250, - "id": 4255, - "nodeType": "Return", - "src": "10269:8:27" - } - }, - { - "assignments": [ - 4258 - ], - "declarations": [ - { - "constant": false, - "id": 4258, - "mutability": "mutable", - "name": "remainder", - "nameLocation": "10756:9:27", - "nodeType": "VariableDeclaration", - "scope": 4336, - "src": "10748:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10748:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4262, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4259, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4244, - "src": "10768:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "id": 4260, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4246, - "src": "10772:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10768:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10748:25:27" - }, - { - "assignments": [ - 4264 - ], - "declarations": [ - { - "constant": false, - "id": 4264, - "mutability": "mutable", - "name": "gcd", - "nameLocation": "10795:3:27", - "nodeType": "VariableDeclaration", - "scope": 4336, - "src": "10787:11:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4263, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10787:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4266, - "initialValue": { - "id": 4265, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4246, - "src": "10801:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10787:15:27" - }, - { - "assignments": [ - 4268 - ], - "declarations": [ - { - "constant": false, - "id": 4268, - "mutability": "mutable", - "name": "x", - "nameLocation": "10945:1:27", - "nodeType": "VariableDeclaration", - "scope": 4336, - "src": "10938:8:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 4267, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "10938:6:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "id": 4270, - "initialValue": { - "hexValue": "30", - "id": 4269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10949:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10938:12:27" - }, - { - "assignments": [ - 4272 - ], - "declarations": [ - { - "constant": false, - "id": 4272, - "mutability": "mutable", - "name": "y", - "nameLocation": "10971:1:27", - "nodeType": "VariableDeclaration", - "scope": 4336, - "src": "10964:8:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 4271, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "10964:6:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "id": 4274, - "initialValue": { - "hexValue": "31", - "id": 4273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10975:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10964:12:27" - }, - { - "body": { - "id": 4311, - "nodeType": "Block", - "src": "11014:882:27", - "statements": [ - { - "assignments": [ - 4279 - ], - "declarations": [ - { - "constant": false, - "id": 4279, - "mutability": "mutable", - "name": "quotient", - "nameLocation": "11040:8:27", - "nodeType": "VariableDeclaration", - "scope": 4311, - "src": "11032:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4278, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11032:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4283, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4280, - "name": "gcd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4264, - "src": "11051:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4281, - "name": "remainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "11057:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11051:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11032:34:27" - }, - { - "expression": { - "id": 4294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - { - "id": 4284, - "name": "gcd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4264, - "src": "11086:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4285, - "name": "remainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "11091:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4286, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "11085:16:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "components": [ - { - "id": 4287, - "name": "remainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "11191:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4288, - "name": "gcd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4264, - "src": "11436:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4289, - "name": "remainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "11442:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4290, - "name": "quotient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4279, - "src": "11454:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11442:20:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11436:26:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4293, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11104:376:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "11085:395:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4295, - "nodeType": "ExpressionStatement", - "src": "11085:395:27" - }, - { - "expression": { - "id": 4309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - { - "id": 4296, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "11500:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - { - "id": 4297, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "11503:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "id": 4298, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "11499:6:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$", - "typeString": "tuple(int256,int256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "components": [ - { - "id": 4299, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "11585:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 4307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4300, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "11839:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 4306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4301, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "11843:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "id": 4304, - "name": "quotient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4279, - "src": "11854:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11847:6:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 4302, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "11847:6:27", - "typeDescriptions": {} - } - }, - "id": 4305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11847:16:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "11843:20:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "11839:24:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "id": 4308, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11508:373:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$", - "typeString": "tuple(int256,int256)" - } - }, - "src": "11499:382:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4310, - "nodeType": "ExpressionStatement", - "src": "11499:382:27" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4275, - "name": "remainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "10998:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11011:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10998:14:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4312, - "nodeType": "WhileStatement", - "src": "10991:905:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4313, - "name": "gcd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4264, - "src": "11914:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "31", - "id": 4314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11921:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11914:8:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4318, - "nodeType": "IfStatement", - "src": "11910:22:27", - "trueBody": { - "expression": { - "hexValue": "30", - "id": 4316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11931:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 4250, - "id": 4317, - "nodeType": "Return", - "src": "11924:8:27" - } - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 4322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4320, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "11983:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "hexValue": "30", - "id": 4321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11987:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11983:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4323, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4246, - "src": "11990:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "arguments": [ - { - "id": 4327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "12002:2:27", - "subExpression": { - "id": 4326, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "12003:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 4325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11994:7:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 4324, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11994:7:27", - "typeDescriptions": {} - } - }, - "id": 4328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11994:11:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11990:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 4332, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "12015:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 4331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12007:7:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 4330, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12007:7:27", - "typeDescriptions": {} - } - }, - "id": 4333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12007:10:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4319, - "name": "ternary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3965, - "src": "11975:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bool,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11975:43:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4250, - "id": 4335, - "nodeType": "Return", - "src": "11968:50:27" - } - ] - } - ] - }, - "documentation": { - "id": 4242, - "nodeType": "StructuredDocumentation", - "src": "9595:553:27", - "text": " @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}." - }, - "id": 4338, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invMod", - "nameLocation": "10162:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4244, - "mutability": "mutable", - "name": "a", - "nameLocation": "10177:1:27", - "nodeType": "VariableDeclaration", - "scope": 4338, - "src": "10169:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4243, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10169:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4246, - "mutability": "mutable", - "name": "n", - "nameLocation": "10188:1:27", - "nodeType": "VariableDeclaration", - "scope": 4338, - "src": "10180:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4245, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10180:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10168:22:27" - }, - "returnParameters": { - "id": 4250, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4249, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4338, - "src": "10214:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4248, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10214:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10213:9:27" - }, - "scope": 5374, - "src": "10153:1919:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4358, - "nodeType": "Block", - "src": "12672:82:27", - "statements": [ - { - "id": 4357, - "nodeType": "UncheckedBlock", - "src": "12682:66:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 4350, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4341, - "src": "12725:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4351, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4343, - "src": "12728:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "32", - "id": 4352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12732:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12728:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4354, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4343, - "src": "12735:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 4348, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5374, - "src": "12713:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$5374_$", - "typeString": "type(library Math)" - } - }, - "id": 4349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12718:6:27", - "memberName": "modExp", - "nodeType": "MemberAccess", - "referencedDeclaration": 4395, - "src": "12713:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) view returns (uint256)" - } - }, - "id": 4355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12713:24:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4347, - "id": 4356, - "nodeType": "Return", - "src": "12706:31:27" - } - ] - } - ] - }, - "documentation": { - "id": 4339, - "nodeType": "StructuredDocumentation", - "src": "12078:514:27", - "text": " @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n NOTE: this function does NOT check that `p` is a prime greater than `2`." - }, - "id": 4359, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invModPrime", - "nameLocation": "12606:11:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4344, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4341, - "mutability": "mutable", - "name": "a", - "nameLocation": "12626:1:27", - "nodeType": "VariableDeclaration", - "scope": 4359, - "src": "12618:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4340, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12618:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4343, - "mutability": "mutable", - "name": "p", - "nameLocation": "12637:1:27", - "nodeType": "VariableDeclaration", - "scope": 4359, - "src": "12629:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4342, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12629:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12617:22:27" - }, - "returnParameters": { - "id": 4347, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4346, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4359, - "src": "12663:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4345, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12663:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12662:9:27" - }, - "scope": 5374, - "src": "12597:157:27", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4394, - "nodeType": "Block", - "src": "13524:174:27", - "statements": [ - { - "assignments": [ - 4372, - 4374 - ], - "declarations": [ - { - "constant": false, - "id": 4372, - "mutability": "mutable", - "name": "success", - "nameLocation": "13540:7:27", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "13535:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4371, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13535:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4374, - "mutability": "mutable", - "name": "result", - "nameLocation": "13557:6:27", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "13549:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4373, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13549:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4380, - "initialValue": { - "arguments": [ - { - "id": 4376, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4362, - "src": "13577:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4377, - "name": "e", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "13580:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4378, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "13583:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4375, - "name": "tryModExp", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4419, - 4501 - ], - "referencedDeclaration": 4419, - "src": "13567:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) view returns (bool,uint256)" - } - }, - "id": 4379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13567:18:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13534:51:27" - }, - { - "condition": { - "id": 4382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "13599:8:27", - "subExpression": { - "id": 4381, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4372, - "src": "13600:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4391, - "nodeType": "IfStatement", - "src": "13595:74:27", - "trueBody": { - "id": 4390, - "nodeType": "Block", - "src": "13609:60:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 4386, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "13635:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "13641:16:27", - "memberName": "DIVISION_BY_ZERO", - "nodeType": "MemberAccess", - "referencedDeclaration": 3458, - "src": "13635:22:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 4383, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "13623:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13629:5:27", - "memberName": "panic", - "nodeType": "MemberAccess", - "referencedDeclaration": 3490, - "src": "13623:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 4388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13623:35:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4389, - "nodeType": "ExpressionStatement", - "src": "13623:35:27" - } - ] - } - }, - { - "expression": { - "id": 4392, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4374, - "src": "13685:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4370, - "id": 4393, - "nodeType": "Return", - "src": "13678:13:27" - } - ] - }, - "documentation": { - "id": 4360, - "nodeType": "StructuredDocumentation", - "src": "12760:678:27", - "text": " @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0." - }, - "id": 4395, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "modExp", - "nameLocation": "13452:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4362, - "mutability": "mutable", - "name": "b", - "nameLocation": "13467:1:27", - "nodeType": "VariableDeclaration", - "scope": 4395, - "src": "13459:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4361, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13459:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4364, - "mutability": "mutable", - "name": "e", - "nameLocation": "13478:1:27", - "nodeType": "VariableDeclaration", - "scope": 4395, - "src": "13470:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4363, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13470:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4366, - "mutability": "mutable", - "name": "m", - "nameLocation": "13489:1:27", - "nodeType": "VariableDeclaration", - "scope": 4395, - "src": "13481:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13481:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13458:33:27" - }, - "returnParameters": { - "id": 4370, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4369, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4395, - "src": "13515:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4368, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13515:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13514:9:27" - }, - "scope": 5374, - "src": "13443:255:27", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4418, - "nodeType": "Block", - "src": "14552:1493:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4409, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4402, - "src": "14566:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14571:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14566:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4416, - "nodeType": "IfStatement", - "src": "14562:29:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 4412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14582:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 4413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14589:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 4414, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14581:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 4408, - "id": 4415, - "nodeType": "Return", - "src": "14574:17:27" - } - }, - { - "AST": { - "nativeSrc": "14626:1413:27", - "nodeType": "YulBlock", - "src": "14626:1413:27", - "statements": [ - { - "nativeSrc": "14640:22:27", - "nodeType": "YulVariableDeclaration", - "src": "14640:22:27", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14657:4:27", - "nodeType": "YulLiteral", - "src": "14657:4:27", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "14651:5:27", - "nodeType": "YulIdentifier", - "src": "14651:5:27" - }, - "nativeSrc": "14651:11:27", - "nodeType": "YulFunctionCall", - "src": "14651:11:27" - }, - "variables": [ - { - "name": "ptr", - "nativeSrc": "14644:3:27", - "nodeType": "YulTypedName", - "src": "14644:3:27", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15570:3:27", - "nodeType": "YulIdentifier", - "src": "15570:3:27" - }, - { - "kind": "number", - "nativeSrc": "15575:4:27", - "nodeType": "YulLiteral", - "src": "15575:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15563:6:27", - "nodeType": "YulIdentifier", - "src": "15563:6:27" - }, - "nativeSrc": "15563:17:27", - "nodeType": "YulFunctionCall", - "src": "15563:17:27" - }, - "nativeSrc": "15563:17:27", - "nodeType": "YulExpressionStatement", - "src": "15563:17:27" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15604:3:27", - "nodeType": "YulIdentifier", - "src": "15604:3:27" - }, - { - "kind": "number", - "nativeSrc": "15609:4:27", - "nodeType": "YulLiteral", - "src": "15609:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15600:3:27", - "nodeType": "YulIdentifier", - "src": "15600:3:27" - }, - "nativeSrc": "15600:14:27", - "nodeType": "YulFunctionCall", - "src": "15600:14:27" - }, - { - "kind": "number", - "nativeSrc": "15616:4:27", - "nodeType": "YulLiteral", - "src": "15616:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15593:6:27", - "nodeType": "YulIdentifier", - "src": "15593:6:27" - }, - "nativeSrc": "15593:28:27", - "nodeType": "YulFunctionCall", - "src": "15593:28:27" - }, - "nativeSrc": "15593:28:27", - "nodeType": "YulExpressionStatement", - "src": "15593:28:27" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15645:3:27", - "nodeType": "YulIdentifier", - "src": "15645:3:27" - }, - { - "kind": "number", - "nativeSrc": "15650:4:27", - "nodeType": "YulLiteral", - "src": "15650:4:27", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15641:3:27", - "nodeType": "YulIdentifier", - "src": "15641:3:27" - }, - "nativeSrc": "15641:14:27", - "nodeType": "YulFunctionCall", - "src": "15641:14:27" - }, - { - "kind": "number", - "nativeSrc": "15657:4:27", - "nodeType": "YulLiteral", - "src": "15657:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15634:6:27", - "nodeType": "YulIdentifier", - "src": "15634:6:27" - }, - "nativeSrc": "15634:28:27", - "nodeType": "YulFunctionCall", - "src": "15634:28:27" - }, - "nativeSrc": "15634:28:27", - "nodeType": "YulExpressionStatement", - "src": "15634:28:27" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15686:3:27", - "nodeType": "YulIdentifier", - "src": "15686:3:27" - }, - { - "kind": "number", - "nativeSrc": "15691:4:27", - "nodeType": "YulLiteral", - "src": "15691:4:27", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15682:3:27", - "nodeType": "YulIdentifier", - "src": "15682:3:27" - }, - "nativeSrc": "15682:14:27", - "nodeType": "YulFunctionCall", - "src": "15682:14:27" - }, - { - "name": "b", - "nativeSrc": "15698:1:27", - "nodeType": "YulIdentifier", - "src": "15698:1:27" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15675:6:27", - "nodeType": "YulIdentifier", - "src": "15675:6:27" - }, - "nativeSrc": "15675:25:27", - "nodeType": "YulFunctionCall", - "src": "15675:25:27" - }, - "nativeSrc": "15675:25:27", - "nodeType": "YulExpressionStatement", - "src": "15675:25:27" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15724:3:27", - "nodeType": "YulIdentifier", - "src": "15724:3:27" - }, - { - "kind": "number", - "nativeSrc": "15729:4:27", - "nodeType": "YulLiteral", - "src": "15729:4:27", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15720:3:27", - "nodeType": "YulIdentifier", - "src": "15720:3:27" - }, - "nativeSrc": "15720:14:27", - "nodeType": "YulFunctionCall", - "src": "15720:14:27" - }, - { - "name": "e", - "nativeSrc": "15736:1:27", - "nodeType": "YulIdentifier", - "src": "15736:1:27" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15713:6:27", - "nodeType": "YulIdentifier", - "src": "15713:6:27" - }, - "nativeSrc": "15713:25:27", - "nodeType": "YulFunctionCall", - "src": "15713:25:27" - }, - "nativeSrc": "15713:25:27", - "nodeType": "YulExpressionStatement", - "src": "15713:25:27" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15762:3:27", - "nodeType": "YulIdentifier", - "src": "15762:3:27" - }, - { - "kind": "number", - "nativeSrc": "15767:4:27", - "nodeType": "YulLiteral", - "src": "15767:4:27", - "type": "", - "value": "0xa0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15758:3:27", - "nodeType": "YulIdentifier", - "src": "15758:3:27" - }, - "nativeSrc": "15758:14:27", - "nodeType": "YulFunctionCall", - "src": "15758:14:27" - }, - { - "name": "m", - "nativeSrc": "15774:1:27", - "nodeType": "YulIdentifier", - "src": "15774:1:27" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15751:6:27", - "nodeType": "YulIdentifier", - "src": "15751:6:27" - }, - "nativeSrc": "15751:25:27", - "nodeType": "YulFunctionCall", - "src": "15751:25:27" - }, - "nativeSrc": "15751:25:27", - "nodeType": "YulExpressionStatement", - "src": "15751:25:27" - }, - { - "nativeSrc": "15938:57:27", - "nodeType": "YulAssignment", - "src": "15938:57:27", - "value": { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "gas", - "nativeSrc": "15960:3:27", - "nodeType": "YulIdentifier", - "src": "15960:3:27" - }, - "nativeSrc": "15960:5:27", - "nodeType": "YulFunctionCall", - "src": "15960:5:27" - }, - { - "kind": "number", - "nativeSrc": "15967:4:27", - "nodeType": "YulLiteral", - "src": "15967:4:27", - "type": "", - "value": "0x05" - }, - { - "name": "ptr", - "nativeSrc": "15973:3:27", - "nodeType": "YulIdentifier", - "src": "15973:3:27" - }, - { - "kind": "number", - "nativeSrc": "15978:4:27", - "nodeType": "YulLiteral", - "src": "15978:4:27", - "type": "", - "value": "0xc0" - }, - { - "kind": "number", - "nativeSrc": "15984:4:27", - "nodeType": "YulLiteral", - "src": "15984:4:27", - "type": "", - "value": "0x00" - }, - { - "kind": "number", - "nativeSrc": "15990:4:27", - "nodeType": "YulLiteral", - "src": "15990:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "staticcall", - "nativeSrc": "15949:10:27", - "nodeType": "YulIdentifier", - "src": "15949:10:27" - }, - "nativeSrc": "15949:46:27", - "nodeType": "YulFunctionCall", - "src": "15949:46:27" - }, - "variableNames": [ - { - "name": "success", - "nativeSrc": "15938:7:27", - "nodeType": "YulIdentifier", - "src": "15938:7:27" - } - ] - }, - { - "nativeSrc": "16008:21:27", - "nodeType": "YulAssignment", - "src": "16008:21:27", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16024:4:27", - "nodeType": "YulLiteral", - "src": "16024:4:27", - "type": "", - "value": "0x00" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "16018:5:27", - "nodeType": "YulIdentifier", - "src": "16018:5:27" - }, - "nativeSrc": "16018:11:27", - "nodeType": "YulFunctionCall", - "src": "16018:11:27" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "16008:6:27", - "nodeType": "YulIdentifier", - "src": "16008:6:27" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4398, - "isOffset": false, - "isSlot": false, - "src": "15698:1:27", - "valueSize": 1 - }, - { - "declaration": 4400, - "isOffset": false, - "isSlot": false, - "src": "15736:1:27", - "valueSize": 1 - }, - { - "declaration": 4402, - "isOffset": false, - "isSlot": false, - "src": "15774:1:27", - "valueSize": 1 - }, - { - "declaration": 4407, - "isOffset": false, - "isSlot": false, - "src": "16008:6:27", - "valueSize": 1 - }, - { - "declaration": 4405, - "isOffset": false, - "isSlot": false, - "src": "15938:7:27", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 4417, - "nodeType": "InlineAssembly", - "src": "14601:1438:27" - } - ] - }, - "documentation": { - "id": 4396, - "nodeType": "StructuredDocumentation", - "src": "13704:738:27", - "text": " @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0." - }, - "id": 4419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryModExp", - "nameLocation": "14456:9:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4403, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4398, - "mutability": "mutable", - "name": "b", - "nameLocation": "14474:1:27", - "nodeType": "VariableDeclaration", - "scope": 4419, - "src": "14466:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14466:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4400, - "mutability": "mutable", - "name": "e", - "nameLocation": "14485:1:27", - "nodeType": "VariableDeclaration", - "scope": 4419, - "src": "14477:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4399, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14477:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4402, - "mutability": "mutable", - "name": "m", - "nameLocation": "14496:1:27", - "nodeType": "VariableDeclaration", - "scope": 4419, - "src": "14488:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4401, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14488:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14465:33:27" - }, - "returnParameters": { - "id": 4408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4405, - "mutability": "mutable", - "name": "success", - "nameLocation": "14527:7:27", - "nodeType": "VariableDeclaration", - "scope": 4419, - "src": "14522:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4404, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14522:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4407, - "mutability": "mutable", - "name": "result", - "nameLocation": "14544:6:27", - "nodeType": "VariableDeclaration", - "scope": 4419, - "src": "14536:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14536:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14521:30:27" - }, - "scope": 5374, - "src": "14447:1598:27", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4454, - "nodeType": "Block", - "src": "16242:179:27", - "statements": [ - { - "assignments": [ - 4432, - 4434 - ], - "declarations": [ - { - "constant": false, - "id": 4432, - "mutability": "mutable", - "name": "success", - "nameLocation": "16258:7:27", - "nodeType": "VariableDeclaration", - "scope": 4454, - "src": "16253:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4431, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16253:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4434, - "mutability": "mutable", - "name": "result", - "nameLocation": "16280:6:27", - "nodeType": "VariableDeclaration", - "scope": 4454, - "src": "16267:19:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4433, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16267:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 4440, - "initialValue": { - "arguments": [ - { - "id": 4436, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4422, - "src": "16300:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 4437, - "name": "e", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4424, - "src": "16303:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 4438, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4426, - "src": "16306:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4435, - "name": "tryModExp", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4419, - 4501 - ], - "referencedDeclaration": 4501, - "src": "16290:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)" - } - }, - "id": 4439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16290:18:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16252:56:27" - }, - { - "condition": { - "id": 4442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16322:8:27", - "subExpression": { - "id": 4441, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4432, - "src": "16323:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4451, - "nodeType": "IfStatement", - "src": "16318:74:27", - "trueBody": { - "id": 4450, - "nodeType": "Block", - "src": "16332:60:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 4446, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "16358:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "16364:16:27", - "memberName": "DIVISION_BY_ZERO", - "nodeType": "MemberAccess", - "referencedDeclaration": 3458, - "src": "16358:22:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 4443, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "16346:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16352:5:27", - "memberName": "panic", - "nodeType": "MemberAccess", - "referencedDeclaration": 3490, - "src": "16346:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 4448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16346:35:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4449, - "nodeType": "ExpressionStatement", - "src": "16346:35:27" - } - ] - } - }, - { - "expression": { - "id": 4452, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4434, - "src": "16408:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 4430, - "id": 4453, - "nodeType": "Return", - "src": "16401:13:27" - } - ] - }, - "documentation": { - "id": 4420, - "nodeType": "StructuredDocumentation", - "src": "16051:85:27", - "text": " @dev Variant of {modExp} that supports inputs of arbitrary length." - }, - "id": 4455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "modExp", - "nameLocation": "16150:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4422, - "mutability": "mutable", - "name": "b", - "nameLocation": "16170:1:27", - "nodeType": "VariableDeclaration", - "scope": 4455, - "src": "16157:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4421, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16157:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4424, - "mutability": "mutable", - "name": "e", - "nameLocation": "16186:1:27", - "nodeType": "VariableDeclaration", - "scope": 4455, - "src": "16173:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4423, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16173:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4426, - "mutability": "mutable", - "name": "m", - "nameLocation": "16202:1:27", - "nodeType": "VariableDeclaration", - "scope": 4455, - "src": "16189:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4425, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16189:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "16156:48:27" - }, - "returnParameters": { - "id": 4430, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4429, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4455, - "src": "16228:12:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4428, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16228:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "16227:14:27" - }, - "scope": 5374, - "src": "16141:280:27", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4500, - "nodeType": "Block", - "src": "16675:771:27", - "statements": [ - { - "condition": { - "arguments": [ - { - "id": 4470, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4462, - "src": "16700:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4469, - "name": "_zeroBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4534, - "src": "16689:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes memory) pure returns (bool)" - } - }, - "id": 4471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16689:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4479, - "nodeType": "IfStatement", - "src": "16685:47:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 4472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16712:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 4475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16729:1:27", - "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": 4474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "16719:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 4473, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16723:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 4476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16719:12:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 4477, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16711:21:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "functionReturnParameters": 4468, - "id": 4478, - "nodeType": "Return", - "src": "16704:28:27" - } - }, - { - "assignments": [ - 4481 - ], - "declarations": [ - { - "constant": false, - "id": 4481, - "mutability": "mutable", - "name": "mLen", - "nameLocation": "16751:4:27", - "nodeType": "VariableDeclaration", - "scope": 4500, - "src": "16743:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16743:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4484, - "initialValue": { - "expression": { - "id": 4482, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4462, - "src": "16758:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16760:6:27", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "16758:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16743:23:27" - }, - { - "expression": { - "id": 4497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4485, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4467, - "src": "16848:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 4488, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4458, - "src": "16874:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16876:6:27", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "16874:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 4490, - "name": "e", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4460, - "src": "16884:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16886:6:27", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "16884:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4492, - "name": "mLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4481, - "src": "16894:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4493, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4458, - "src": "16900:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 4494, - "name": "e", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4460, - "src": "16903:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 4495, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4462, - "src": "16906:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 4486, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "16857:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "16861:12:27", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "16857:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 4496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16857:51:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "16848:60:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4498, - "nodeType": "ExpressionStatement", - "src": "16848:60:27" - }, - { - "AST": { - "nativeSrc": "16944:496:27", - "nodeType": "YulBlock", - "src": "16944:496:27", - "statements": [ - { - "nativeSrc": "16958:32:27", - "nodeType": "YulVariableDeclaration", - "src": "16958:32:27", - "value": { - "arguments": [ - { - "name": "result", - "nativeSrc": "16977:6:27", - "nodeType": "YulIdentifier", - "src": "16977:6:27" - }, - { - "kind": "number", - "nativeSrc": "16985:4:27", - "nodeType": "YulLiteral", - "src": "16985:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16973:3:27", - "nodeType": "YulIdentifier", - "src": "16973:3:27" - }, - "nativeSrc": "16973:17:27", - "nodeType": "YulFunctionCall", - "src": "16973:17:27" - }, - "variables": [ - { - "name": "dataPtr", - "nativeSrc": "16962:7:27", - "nodeType": "YulTypedName", - "src": "16962:7:27", - "type": "" - } - ] - }, - { - "nativeSrc": "17080:73:27", - "nodeType": "YulAssignment", - "src": "17080:73:27", - "value": { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "gas", - "nativeSrc": "17102:3:27", - "nodeType": "YulIdentifier", - "src": "17102:3:27" - }, - "nativeSrc": "17102:5:27", - "nodeType": "YulFunctionCall", - "src": "17102:5:27" - }, - { - "kind": "number", - "nativeSrc": "17109:4:27", - "nodeType": "YulLiteral", - "src": "17109:4:27", - "type": "", - "value": "0x05" - }, - { - "name": "dataPtr", - "nativeSrc": "17115:7:27", - "nodeType": "YulIdentifier", - "src": "17115:7:27" - }, - { - "arguments": [ - { - "name": "result", - "nativeSrc": "17130:6:27", - "nodeType": "YulIdentifier", - "src": "17130:6:27" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "17124:5:27", - "nodeType": "YulIdentifier", - "src": "17124:5:27" - }, - "nativeSrc": "17124:13:27", - "nodeType": "YulFunctionCall", - "src": "17124:13:27" - }, - { - "name": "dataPtr", - "nativeSrc": "17139:7:27", - "nodeType": "YulIdentifier", - "src": "17139:7:27" - }, - { - "name": "mLen", - "nativeSrc": "17148:4:27", - "nodeType": "YulIdentifier", - "src": "17148:4:27" - } - ], - "functionName": { - "name": "staticcall", - "nativeSrc": "17091:10:27", - "nodeType": "YulIdentifier", - "src": "17091:10:27" - }, - "nativeSrc": "17091:62:27", - "nodeType": "YulFunctionCall", - "src": "17091:62:27" - }, - "variableNames": [ - { - "name": "success", - "nativeSrc": "17080:7:27", - "nodeType": "YulIdentifier", - "src": "17080:7:27" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "result", - "nativeSrc": "17309:6:27", - "nodeType": "YulIdentifier", - "src": "17309:6:27" - }, - { - "name": "mLen", - "nativeSrc": "17317:4:27", - "nodeType": "YulIdentifier", - "src": "17317:4:27" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17302:6:27", - "nodeType": "YulIdentifier", - "src": "17302:6:27" - }, - "nativeSrc": "17302:20:27", - "nodeType": "YulFunctionCall", - "src": "17302:20:27" - }, - "nativeSrc": "17302:20:27", - "nodeType": "YulExpressionStatement", - "src": "17302:20:27" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "17405:4:27", - "nodeType": "YulLiteral", - "src": "17405:4:27", - "type": "", - "value": "0x40" - }, - { - "arguments": [ - { - "name": "dataPtr", - "nativeSrc": "17415:7:27", - "nodeType": "YulIdentifier", - "src": "17415:7:27" - }, - { - "name": "mLen", - "nativeSrc": "17424:4:27", - "nodeType": "YulIdentifier", - "src": "17424:4:27" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17411:3:27", - "nodeType": "YulIdentifier", - "src": "17411:3:27" - }, - "nativeSrc": "17411:18:27", - "nodeType": "YulFunctionCall", - "src": "17411:18:27" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17398:6:27", - "nodeType": "YulIdentifier", - "src": "17398:6:27" - }, - "nativeSrc": "17398:32:27", - "nodeType": "YulFunctionCall", - "src": "17398:32:27" - }, - "nativeSrc": "17398:32:27", - "nodeType": "YulExpressionStatement", - "src": "17398:32:27" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4481, - "isOffset": false, - "isSlot": false, - "src": "17148:4:27", - "valueSize": 1 - }, - { - "declaration": 4481, - "isOffset": false, - "isSlot": false, - "src": "17317:4:27", - "valueSize": 1 - }, - { - "declaration": 4481, - "isOffset": false, - "isSlot": false, - "src": "17424:4:27", - "valueSize": 1 - }, - { - "declaration": 4467, - "isOffset": false, - "isSlot": false, - "src": "16977:6:27", - "valueSize": 1 - }, - { - "declaration": 4467, - "isOffset": false, - "isSlot": false, - "src": "17130:6:27", - "valueSize": 1 - }, - { - "declaration": 4467, - "isOffset": false, - "isSlot": false, - "src": "17309:6:27", - "valueSize": 1 - }, - { - "declaration": 4465, - "isOffset": false, - "isSlot": false, - "src": "17080:7:27", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 4499, - "nodeType": "InlineAssembly", - "src": "16919:521:27" - } - ] - }, - "documentation": { - "id": 4456, - "nodeType": "StructuredDocumentation", - "src": "16427:88:27", - "text": " @dev Variant of {tryModExp} that supports inputs of arbitrary length." - }, - "id": 4501, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryModExp", - "nameLocation": "16529:9:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4458, - "mutability": "mutable", - "name": "b", - "nameLocation": "16561:1:27", - "nodeType": "VariableDeclaration", - "scope": 4501, - "src": "16548:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4457, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16548:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4460, - "mutability": "mutable", - "name": "e", - "nameLocation": "16585:1:27", - "nodeType": "VariableDeclaration", - "scope": 4501, - "src": "16572:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4459, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16572:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4462, - "mutability": "mutable", - "name": "m", - "nameLocation": "16609:1:27", - "nodeType": "VariableDeclaration", - "scope": 4501, - "src": "16596:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4461, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16596:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "16538:78:27" - }, - "returnParameters": { - "id": 4468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4465, - "mutability": "mutable", - "name": "success", - "nameLocation": "16645:7:27", - "nodeType": "VariableDeclaration", - "scope": 4501, - "src": "16640:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4464, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16640:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4467, - "mutability": "mutable", - "name": "result", - "nameLocation": "16667:6:27", - "nodeType": "VariableDeclaration", - "scope": 4501, - "src": "16654:19:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4466, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16654:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "16639:35:27" - }, - "scope": 5374, - "src": "16520:926:27", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4533, - "nodeType": "Block", - "src": "17601:176:27", - "statements": [ - { - "body": { - "id": 4529, - "nodeType": "Block", - "src": "17658:92:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 4524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 4520, - "name": "byteArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4504, - "src": "17676:9:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4522, - "indexExpression": { - "id": 4521, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4510, - "src": "17686:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17676:12:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 4523, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17692:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17676:17:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4528, - "nodeType": "IfStatement", - "src": "17672:68:27", - "trueBody": { - "id": 4527, - "nodeType": "Block", - "src": "17695:45:27", - "statements": [ - { - "expression": { - "hexValue": "66616c7365", - "id": 4525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17720:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 4508, - "id": 4526, - "nodeType": "Return", - "src": "17713:12:27" - } - ] - } - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4513, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4510, - "src": "17631:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 4514, - "name": "byteArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4504, - "src": "17635:9:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17645:6:27", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "17635:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17631:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4530, - "initializationExpression": { - "assignments": [ - 4510 - ], - "declarations": [ - { - "constant": false, - "id": 4510, - "mutability": "mutable", - "name": "i", - "nameLocation": "17624:1:27", - "nodeType": "VariableDeclaration", - "scope": 4530, - "src": "17616:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4509, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17616:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4512, - "initialValue": { - "hexValue": "30", - "id": 4511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17628:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "17616:13:27" - }, - "isSimpleCounterLoop": true, - "loopExpression": { - "expression": { - "id": 4518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "17653:3:27", - "subExpression": { - "id": 4517, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4510, - "src": "17655:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4519, - "nodeType": "ExpressionStatement", - "src": "17653:3:27" - }, - "nodeType": "ForStatement", - "src": "17611:139:27" - }, - { - "expression": { - "hexValue": "74727565", - "id": 4531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17766:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 4508, - "id": 4532, - "nodeType": "Return", - "src": "17759:11:27" - } - ] - }, - "documentation": { - "id": 4502, - "nodeType": "StructuredDocumentation", - "src": "17452:72:27", - "text": " @dev Returns whether the provided byte array is zero." - }, - "id": 4534, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_zeroBytes", - "nameLocation": "17538:10:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4504, - "mutability": "mutable", - "name": "byteArray", - "nameLocation": "17562:9:27", - "nodeType": "VariableDeclaration", - "scope": 4534, - "src": "17549:22:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4503, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "17549:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "17548:24:27" - }, - "returnParameters": { - "id": 4508, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4507, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4534, - "src": "17595:4:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4506, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17595:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "17594:6:27" - }, - "scope": 5374, - "src": "17529:248:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 4752, - "nodeType": "Block", - "src": "18137:5124:27", - "statements": [ - { - "id": 4751, - "nodeType": "UncheckedBlock", - "src": "18147:5108:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4542, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "18241:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "hexValue": "31", - "id": 4543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18246:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "18241:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4548, - "nodeType": "IfStatement", - "src": "18237:53:27", - "trueBody": { - "id": 4547, - "nodeType": "Block", - "src": "18249:41:27", - "statements": [ - { - "expression": { - "id": 4545, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "18274:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4541, - "id": 4546, - "nodeType": "Return", - "src": "18267:8:27" - } - ] - } - }, - { - "assignments": [ - 4550 - ], - "declarations": [ - { - "constant": false, - "id": 4550, - "mutability": "mutable", - "name": "aa", - "nameLocation": "19225:2:27", - "nodeType": "VariableDeclaration", - "scope": 4751, - "src": "19217:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4549, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19217:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4552, - "initialValue": { - "id": 4551, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "19230:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19217:14:27" - }, - { - "assignments": [ - 4554 - ], - "declarations": [ - { - "constant": false, - "id": 4554, - "mutability": "mutable", - "name": "xn", - "nameLocation": "19253:2:27", - "nodeType": "VariableDeclaration", - "scope": 4751, - "src": "19245:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4553, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19245:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4556, - "initialValue": { - "hexValue": "31", - "id": 4555, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19258:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19245:14:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4557, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19278:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - }, - "id": 4560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19285:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "313238", - "id": 4559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19290:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "19285:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - } - ], - "id": 4561, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19284:10:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - }, - "src": "19278:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4572, - "nodeType": "IfStatement", - "src": "19274:92:27", - "trueBody": { - "id": 4571, - "nodeType": "Block", - "src": "19296:70:27", - "statements": [ - { - "expression": { - "id": 4565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4563, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19314:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "313238", - "id": 4564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19321:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "19314:10:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4566, - "nodeType": "ExpressionStatement", - "src": "19314:10:27" - }, - { - "expression": { - "id": 4569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4567, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19342:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "3634", - "id": 4568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19349:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "19342:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4570, - "nodeType": "ExpressionStatement", - "src": "19342:9:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4573, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19383:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - }, - "id": 4576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4574, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19390:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3634", - "id": 4575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19395:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "19390:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - } - ], - "id": 4577, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19389:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - }, - "src": "19383:15:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4588, - "nodeType": "IfStatement", - "src": "19379:90:27", - "trueBody": { - "id": 4587, - "nodeType": "Block", - "src": "19400:69:27", - "statements": [ - { - "expression": { - "id": 4581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4579, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19418:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3634", - "id": 4580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19425:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "19418:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4582, - "nodeType": "ExpressionStatement", - "src": "19418:9:27" - }, - { - "expression": { - "id": 4585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4583, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19445:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "3332", - "id": 4584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19452:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "19445:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4586, - "nodeType": "ExpressionStatement", - "src": "19445:9:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4589, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19486:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - }, - "id": 4592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19493:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3332", - "id": 4591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19498:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "19493:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - } - ], - "id": 4593, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19492:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - }, - "src": "19486:15:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4604, - "nodeType": "IfStatement", - "src": "19482:90:27", - "trueBody": { - "id": 4603, - "nodeType": "Block", - "src": "19503:69:27", - "statements": [ - { - "expression": { - "id": 4597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4595, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19521:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3332", - "id": 4596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19528:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "19521:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4598, - "nodeType": "ExpressionStatement", - "src": "19521:9:27" - }, - { - "expression": { - "id": 4601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4599, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19548:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "3136", - "id": 4600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19555:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "19548:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4602, - "nodeType": "ExpressionStatement", - "src": "19548:9:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4605, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19589:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - }, - "id": 4608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19596:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3136", - "id": 4607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19601:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "19596:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - } - ], - "id": 4609, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19595:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - }, - "src": "19589:15:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4620, - "nodeType": "IfStatement", - "src": "19585:89:27", - "trueBody": { - "id": 4619, - "nodeType": "Block", - "src": "19606:68:27", - "statements": [ - { - "expression": { - "id": 4613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4611, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19624:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3136", - "id": 4612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19631:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "19624:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4614, - "nodeType": "ExpressionStatement", - "src": "19624:9:27" - }, - { - "expression": { - "id": 4617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4615, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19651:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "38", - "id": 4616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19658:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "19651:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4618, - "nodeType": "ExpressionStatement", - "src": "19651:8:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4621, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19691:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - }, - "id": 4624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19698:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "38", - "id": 4623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19703:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "19698:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - } - ], - "id": 4625, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19697:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - }, - "src": "19691:14:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4636, - "nodeType": "IfStatement", - "src": "19687:87:27", - "trueBody": { - "id": 4635, - "nodeType": "Block", - "src": "19707:67:27", - "statements": [ - { - "expression": { - "id": 4629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4627, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19725:2:27", - "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": "19732:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "19725:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4630, - "nodeType": "ExpressionStatement", - "src": "19725:8:27" - }, - { - "expression": { - "id": 4633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4631, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19751:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "34", - "id": 4632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19758:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "19751:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4634, - "nodeType": "ExpressionStatement", - "src": "19751:8:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4637, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19791:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "id": 4640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19798:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "34", - "id": 4639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19803:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "19798:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - } - } - ], - "id": 4641, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19797:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - } - }, - "src": "19791:14:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4652, - "nodeType": "IfStatement", - "src": "19787:87:27", - "trueBody": { - "id": 4651, - "nodeType": "Block", - "src": "19807:67:27", - "statements": [ - { - "expression": { - "id": 4645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4643, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19825:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "34", - "id": 4644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "19825:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4646, - "nodeType": "ExpressionStatement", - "src": "19825:8:27" - }, - { - "expression": { - "id": 4649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4647, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19851:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "32", - "id": 4648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19858:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "19851:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4650, - "nodeType": "ExpressionStatement", - "src": "19851:8:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4653, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19891:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "id": 4656, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19898:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "32", - "id": 4655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19903:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "19898:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - } - } - ], - "id": 4657, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19897:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - } - }, - "src": "19891:14:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4664, - "nodeType": "IfStatement", - "src": "19887:61:27", - "trueBody": { - "id": 4663, - "nodeType": "Block", - "src": "19907:41:27", - "statements": [ - { - "expression": { - "id": 4661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4659, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19925:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "31", - "id": 4660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19932:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "19925:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4662, - "nodeType": "ExpressionStatement", - "src": "19925:8:27" - } - ] - } - }, - { - "expression": { - "id": 4672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4665, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "20368:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "33", - "id": 4666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20374:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4667, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "20378:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20374:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4669, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20373:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4670, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20385:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "20373:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20368:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4673, - "nodeType": "ExpressionStatement", - "src": "20368:18:27" - }, - { - "expression": { - "id": 4683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4674, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22273:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4675, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22279:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4676, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22284:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4677, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22288:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22284:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22279:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4680, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22278:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4681, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22295:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22278:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22273:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4684, - "nodeType": "ExpressionStatement", - "src": "22273:23:27" - }, - { - "expression": { - "id": 4694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4685, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22382:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4686, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22388:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4687, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22393:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4688, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22397:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22393:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22388:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4691, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22387:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22404:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22387:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22382:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4695, - "nodeType": "ExpressionStatement", - "src": "22382:23:27" - }, - { - "expression": { - "id": 4705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4696, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22493:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4697, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22499:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4698, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22504:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4699, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22508:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22504:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22499:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4702, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22498:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22515:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22498:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22493:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4706, - "nodeType": "ExpressionStatement", - "src": "22493:23:27" - }, - { - "expression": { - "id": 4716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4707, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22602:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4708, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22608:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4709, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22613:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4710, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22617:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22613:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22608:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4713, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22607:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22624:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22607:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22602:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4717, - "nodeType": "ExpressionStatement", - "src": "22602:23:27" - }, - { - "expression": { - "id": 4727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4718, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22712:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4719, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22718:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4720, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22723:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4721, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22727:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22723:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22718:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4724, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22717:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22734:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22717:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22712:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4728, - "nodeType": "ExpressionStatement", - "src": "22712:23:27" - }, - { - "expression": { - "id": 4738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4729, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22822:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4730, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22828:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4731, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22833:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4732, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22837:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22833:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22828:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4735, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22827:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22844:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22827:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22822:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4739, - "nodeType": "ExpressionStatement", - "src": "22822:23:27" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4740, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "23211:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4743, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "23232:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4744, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "23237:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4745, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "23241:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23237:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23232:11:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4741, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "23216:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23225:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "23216:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23216:28:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23211:33:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4541, - "id": 4750, - "nodeType": "Return", - "src": "23204:40:27" - } - ] - } - ] - }, - "documentation": { - "id": 4535, - "nodeType": "StructuredDocumentation", - "src": "17783:292:27", - "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 This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations." - }, - "id": 4753, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sqrt", - "nameLocation": "18089:4:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4537, - "mutability": "mutable", - "name": "a", - "nameLocation": "18102:1:27", - "nodeType": "VariableDeclaration", - "scope": 4753, - "src": "18094:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4536, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18094:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "18093:11:27" - }, - "returnParameters": { - "id": 4541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4540, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4753, - "src": "18128:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18128:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "18127:9:27" - }, - "scope": 5374, - "src": "18080:5181:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4786, - "nodeType": "Block", - "src": "23434:171:27", - "statements": [ - { - "id": 4785, - "nodeType": "UncheckedBlock", - "src": "23444:155:27", - "statements": [ - { - "assignments": [ - 4765 - ], - "declarations": [ - { - "constant": false, - "id": 4765, - "mutability": "mutable", - "name": "result", - "nameLocation": "23476:6:27", - "nodeType": "VariableDeclaration", - "scope": 4785, - "src": "23468:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4764, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23468:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4769, - "initialValue": { - "arguments": [ - { - "id": 4767, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4756, - "src": "23490:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4766, - "name": "sqrt", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4753, - 4787 - ], - "referencedDeclaration": 4753, - "src": "23485:4:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 4768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23485:7:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23468:24:27" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4770, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4765, - "src": "23513:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4774, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4759, - "src": "23555:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 4773, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "23538:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 4775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23538:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4776, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4765, - "src": "23568:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4777, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4765, - "src": "23577:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23568:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 4779, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4756, - "src": "23586:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23568:19:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "23538:49:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4771, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "23522:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23531:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "23522:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23522:66:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23513:75:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4763, - "id": 4784, - "nodeType": "Return", - "src": "23506:82:27" - } - ] - } - ] - }, - "documentation": { - "id": 4754, - "nodeType": "StructuredDocumentation", - "src": "23267:86:27", - "text": " @dev Calculates sqrt(a), following the selected rounding direction." - }, - "id": 4787, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sqrt", - "nameLocation": "23367:4:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4756, - "mutability": "mutable", - "name": "a", - "nameLocation": "23380:1:27", - "nodeType": "VariableDeclaration", - "scope": 4787, - "src": "23372:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4755, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23372:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4759, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "23392:8:27", - "nodeType": "VariableDeclaration", - "scope": 4787, - "src": "23383:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 4758, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4757, - "name": "Rounding", - "nameLocations": [ - "23383:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "23383:8:27" - }, - "referencedDeclaration": 3780, - "src": "23383:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "23371:30:27" - }, - "returnParameters": { - "id": 4763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4762, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4787, - "src": "23425:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4761, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23425:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23424:9:27" - }, - "scope": 5374, - "src": "23358:247:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4982, - "nodeType": "Block", - "src": "23796:981:27", - "statements": [ - { - "assignments": [ - 4796 - ], - "declarations": [ - { - "constant": false, - "id": 4796, - "mutability": "mutable", - "name": "result", - "nameLocation": "23814:6:27", - "nodeType": "VariableDeclaration", - "scope": 4982, - "src": "23806:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4795, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23806:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4798, - "initialValue": { - "hexValue": "30", - "id": 4797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23823:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "23806:18:27" - }, - { - "assignments": [ - 4800 - ], - "declarations": [ - { - "constant": false, - "id": 4800, - "mutability": "mutable", - "name": "exp", - "nameLocation": "23842:3:27", - "nodeType": "VariableDeclaration", - "scope": 4982, - "src": "23834:11:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4799, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23834:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4801, - "nodeType": "VariableDeclarationStatement", - "src": "23834:11:27" - }, - { - "id": 4979, - "nodeType": "UncheckedBlock", - "src": "23855:893:27", - "statements": [ - { - "expression": { - "id": 4816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4802, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "23879:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "313238", - "id": 4803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23885:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4806, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "23907:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1455" - }, - "id": 4812, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - }, - "id": 4809, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23916:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "313238", - "id": 4808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23921:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "23916:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - } - ], - "id": 4810, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23915:10:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23928:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "23915:14:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1455" - } - }, - "src": "23907:22:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4804, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "23891:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23900:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "23891:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23891:39:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23885:45:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23879:51:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4817, - "nodeType": "ExpressionStatement", - "src": "23879:51:27" - }, - { - "expression": { - "id": 4820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4818, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "23944:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4819, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "23954:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23944:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4821, - "nodeType": "ExpressionStatement", - "src": "23944:13:27" - }, - { - "expression": { - "id": 4824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4822, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "23971:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4823, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "23981:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23971:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4825, - "nodeType": "ExpressionStatement", - "src": "23971:13:27" - }, - { - "expression": { - "id": 4840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4826, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "23999:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3634", - "id": 4827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24005:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4830, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24026:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_18446744073709551615_by_1", - "typeString": "int_const 18446744073709551615" - }, - "id": 4836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - }, - "id": 4833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24035:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3634", - "id": 4832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24040:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "24035:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - } - ], - "id": 4834, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24034:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4835, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24046:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24034:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551615_by_1", - "typeString": "int_const 18446744073709551615" - } - }, - "src": "24026:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4828, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24010:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24019:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24010:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24010:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24005:43:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23999:49:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4841, - "nodeType": "ExpressionStatement", - "src": "23999:49:27" - }, - { - "expression": { - "id": 4844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4842, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24062:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4843, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24072:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24062:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4845, - "nodeType": "ExpressionStatement", - "src": "24062:13:27" - }, - { - "expression": { - "id": 4848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4846, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24089:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4847, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24099:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24089:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4849, - "nodeType": "ExpressionStatement", - "src": "24089:13:27" - }, - { - "expression": { - "id": 4864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4850, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24117:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3332", - "id": 4851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24123:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4854, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24144:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "id": 4860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - }, - "id": 4857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24153:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3332", - "id": 4856, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24158:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "24153:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - } - ], - "id": 4858, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24152:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24164:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24152:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - } - }, - "src": "24144:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4852, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24128:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24137:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24128:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24128:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24123:43:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24117:49:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4865, - "nodeType": "ExpressionStatement", - "src": "24117:49:27" - }, - { - "expression": { - "id": 4868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4866, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24180:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4867, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24190:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24180:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4869, - "nodeType": "ExpressionStatement", - "src": "24180:13:27" - }, - { - "expression": { - "id": 4872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4870, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24207:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4871, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24217:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24207:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4873, - "nodeType": "ExpressionStatement", - "src": "24207:13:27" - }, - { - "expression": { - "id": 4888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4874, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24235:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3136", - "id": 4875, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24241:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4878, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24262:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_65535_by_1", - "typeString": "int_const 65535" - }, - "id": 4884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - }, - "id": 4881, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24271:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3136", - "id": 4880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24276:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "24271:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - } - ], - "id": 4882, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24270:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4883, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24282:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24270:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65535_by_1", - "typeString": "int_const 65535" - } - }, - "src": "24262:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4876, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24246:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24255:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24246:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24246:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24241:43:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24235:49:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4889, - "nodeType": "ExpressionStatement", - "src": "24235:49:27" - }, - { - "expression": { - "id": 4892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4890, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24298:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4891, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24308:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24298:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4893, - "nodeType": "ExpressionStatement", - "src": "24298:13:27" - }, - { - "expression": { - "id": 4896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4894, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24325:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4895, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24335:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24325:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4897, - "nodeType": "ExpressionStatement", - "src": "24325:13:27" - }, - { - "expression": { - "id": 4912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4898, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24353:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "38", - "id": 4899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24359:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4902, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24379:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "id": 4908, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - }, - "id": 4905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4903, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24388:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "38", - "id": 4904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24393:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "24388:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - } - ], - "id": 4906, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24387:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24398:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24387:12:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - } - }, - "src": "24379:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4900, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24363:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24372:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24363:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24363:37:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24359:41:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24353:47:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4913, - "nodeType": "ExpressionStatement", - "src": "24353:47:27" - }, - { - "expression": { - "id": 4916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4914, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24414:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4915, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24424:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24414:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4917, - "nodeType": "ExpressionStatement", - "src": "24414:13:27" - }, - { - "expression": { - "id": 4920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4918, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24441:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4919, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24451:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24441:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4921, - "nodeType": "ExpressionStatement", - "src": "24441:13:27" - }, - { - "expression": { - "id": 4936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4922, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24469:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "34", - "id": 4923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24475:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4926, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24495:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_15_by_1", - "typeString": "int_const 15" - }, - "id": 4932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "id": 4929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24504:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "34", - "id": 4928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24509:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "24504:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - } - } - ], - "id": 4930, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24503:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4931, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24514:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24503:12:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_15_by_1", - "typeString": "int_const 15" - } - }, - "src": "24495:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4924, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24479:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24488:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24479:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24479:37:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24475:41:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24469:47:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4937, - "nodeType": "ExpressionStatement", - "src": "24469:47:27" - }, - { - "expression": { - "id": 4940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4938, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24530:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4939, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24540:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24530:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4941, - "nodeType": "ExpressionStatement", - "src": "24530:13:27" - }, - { - "expression": { - "id": 4944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4942, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24557:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4943, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24567:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24557:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4945, - "nodeType": "ExpressionStatement", - "src": "24557:13:27" - }, - { - "expression": { - "id": 4960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4946, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24585:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4947, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24591:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4950, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24611:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "id": 4956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "id": 4953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4951, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24620:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "32", - "id": 4952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24625:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "24620:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - } - } - ], - "id": 4954, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24619:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24630:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24619:12:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - } - }, - "src": "24611:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4948, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24595:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24604:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24595:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24595:37:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24591:41:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24585:47:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4961, - "nodeType": "ExpressionStatement", - "src": "24585:47:27" - }, - { - "expression": { - "id": 4964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4962, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24646:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4963, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24656:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24646:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4965, - "nodeType": "ExpressionStatement", - "src": "24646:13:27" - }, - { - "expression": { - "id": 4968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4966, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24673:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4967, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24683:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24673:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4969, - "nodeType": "ExpressionStatement", - "src": "24673:13:27" - }, - { - "expression": { - "id": 4977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4970, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24701:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4973, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24727:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "31", - "id": 4974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24735:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24727:9:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4971, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24711:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24720:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24711:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24711:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24701:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4978, - "nodeType": "ExpressionStatement", - "src": "24701:36:27" - } - ] - }, - { - "expression": { - "id": 4980, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24764:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4794, - "id": 4981, - "nodeType": "Return", - "src": "24757:13:27" - } - ] - }, - "documentation": { - "id": 4788, - "nodeType": "StructuredDocumentation", - "src": "23611:119:27", - "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." - }, - "id": 4983, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log2", - "nameLocation": "23744:4:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4790, - "mutability": "mutable", - "name": "value", - "nameLocation": "23757:5:27", - "nodeType": "VariableDeclaration", - "scope": 4983, - "src": "23749:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4789, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23749:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23748:15:27" - }, - "returnParameters": { - "id": 4794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4793, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4983, - "src": "23787:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23787:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23786:9:27" - }, - "scope": 5374, - "src": "23735:1042:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5016, - "nodeType": "Block", - "src": "25010:175:27", - "statements": [ - { - "id": 5015, - "nodeType": "UncheckedBlock", - "src": "25020:159:27", - "statements": [ - { - "assignments": [ - 4995 - ], - "declarations": [ - { - "constant": false, - "id": 4995, - "mutability": "mutable", - "name": "result", - "nameLocation": "25052:6:27", - "nodeType": "VariableDeclaration", - "scope": 5015, - "src": "25044:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4994, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4999, - "initialValue": { - "arguments": [ - { - "id": 4997, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4986, - "src": "25066:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4996, - "name": "log2", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4983, - 5017 - ], - "referencedDeclaration": 4983, - "src": "25061:4:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 4998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25061:11:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25044:28:27" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5000, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4995, - "src": "25093:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 5004, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4989, - "src": "25135:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 5003, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "25118:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25118:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25148:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "id": 5007, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4995, - "src": "25153:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25148:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 5009, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4986, - "src": "25162:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25148:19:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25118:49:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5001, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "25102:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25111:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "25102:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25102:66:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25093:75:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4993, - "id": 5014, - "nodeType": "Return", - "src": "25086:82:27" - } - ] - } - ] - }, - "documentation": { - "id": 4984, - "nodeType": "StructuredDocumentation", - "src": "24783:142:27", - "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." - }, - "id": 5017, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log2", - "nameLocation": "24939:4:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4990, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4986, - "mutability": "mutable", - "name": "value", - "nameLocation": "24952:5:27", - "nodeType": "VariableDeclaration", - "scope": 5017, - "src": "24944:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4985, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24944:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4989, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "24968:8:27", - "nodeType": "VariableDeclaration", - "scope": 5017, - "src": "24959:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 4988, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4987, - "name": "Rounding", - "nameLocations": [ - "24959:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "24959:8:27" - }, - "referencedDeclaration": 3780, - "src": "24959:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "24943:34:27" - }, - "returnParameters": { - "id": 4993, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4992, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5017, - "src": "25001:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4991, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25001:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "25000:9:27" - }, - "scope": 5374, - "src": "24930:255:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5145, - "nodeType": "Block", - "src": "25378:854:27", - "statements": [ - { - "assignments": [ - 5026 - ], - "declarations": [ - { - "constant": false, - "id": 5026, - "mutability": "mutable", - "name": "result", - "nameLocation": "25396:6:27", - "nodeType": "VariableDeclaration", - "scope": 5145, - "src": "25388:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5025, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25388:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5028, - "initialValue": { - "hexValue": "30", - "id": 5027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25405:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "25388:18:27" - }, - { - "id": 5142, - "nodeType": "UncheckedBlock", - "src": "25416:787:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5029, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25444:5:27", - "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": 5032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25453:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3634", - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25459:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "25453:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(57 digits omitted)...0000" - } - }, - "src": "25444:17:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5045, - "nodeType": "IfStatement", - "src": "25440:103:27", - "trueBody": { - "id": 5044, - "nodeType": "Block", - "src": "25463:80:27", - "statements": [ - { - "expression": { - "id": 5038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5034, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25481:5:27", - "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": 5037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25490:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3634", - "id": 5036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25496:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "25490:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(57 digits omitted)...0000" - } - }, - "src": "25481:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5039, - "nodeType": "ExpressionStatement", - "src": "25481:17:27" - }, - { - "expression": { - "id": 5042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5040, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "25516:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3634", - "id": 5041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25526:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "25516:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5043, - "nodeType": "ExpressionStatement", - "src": "25516:12:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5046, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25560:5:27", - "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": 5049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25569:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3332", - "id": 5048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25575:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "25569:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(25 digits omitted)...0000" - } - }, - "src": "25560:17:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "IfStatement", - "src": "25556:103:27", - "trueBody": { - "id": 5061, - "nodeType": "Block", - "src": "25579:80:27", - "statements": [ - { - "expression": { - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5051, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25597:5:27", - "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": 5054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25606:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3332", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25612:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "25606:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(25 digits omitted)...0000" - } - }, - "src": "25597:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "25597:17:27" - }, - { - "expression": { - "id": 5059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5057, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "25632:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3332", - "id": 5058, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25642:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "25632:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5060, - "nodeType": "ExpressionStatement", - "src": "25632:12:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5063, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25676:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - "id": 5066, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5064, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25685:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3136", - "id": 5065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25691:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "25685:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - } - }, - "src": "25676:17:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5079, - "nodeType": "IfStatement", - "src": "25672:103:27", - "trueBody": { - "id": 5078, - "nodeType": "Block", - "src": "25695:80:27", - "statements": [ - { - "expression": { - "id": 5072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5068, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25713:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - "id": 5071, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25722:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3136", - "id": 5070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25728:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "25722:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - } - }, - "src": "25713:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5073, - "nodeType": "ExpressionStatement", - "src": "25713:17:27" - }, - { - "expression": { - "id": 5076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5074, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "25748:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3136", - "id": 5075, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25758:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "25748:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5077, - "nodeType": "ExpressionStatement", - "src": "25748:12:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5080, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25792:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "id": 5083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5081, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25801:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "38", - "id": 5082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25807:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "25801:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - }, - "src": "25792:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5096, - "nodeType": "IfStatement", - "src": "25788:100:27", - "trueBody": { - "id": 5095, - "nodeType": "Block", - "src": "25810:78:27", - "statements": [ - { - "expression": { - "id": 5089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5085, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25828:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "id": 5088, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25837:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "38", - "id": 5087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25843:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "25837:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - }, - "src": "25828:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5090, - "nodeType": "ExpressionStatement", - "src": "25828:16:27" - }, - { - "expression": { - "id": 5093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5091, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "25862:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "38", - "id": 5092, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25872:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "25862:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5094, - "nodeType": "ExpressionStatement", - "src": "25862:11:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5097, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25905:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "id": 5100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25914:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "34", - "id": 5099, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25920:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "25914:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - }, - "src": "25905:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5113, - "nodeType": "IfStatement", - "src": "25901:100:27", - "trueBody": { - "id": 5112, - "nodeType": "Block", - "src": "25923:78:27", - "statements": [ - { - "expression": { - "id": 5106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5102, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25941:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "id": 5105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25950:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "34", - "id": 5104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25956:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "25950:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - }, - "src": "25941:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5107, - "nodeType": "ExpressionStatement", - "src": "25941:16:27" - }, - { - "expression": { - "id": 5110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5108, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "25975:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "34", - "id": 5109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25985:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "25975:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5111, - "nodeType": "ExpressionStatement", - "src": "25975:11:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5114, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "26018:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "id": 5117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26027:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "32", - "id": 5116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26033:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "26027:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - } - }, - "src": "26018:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5130, - "nodeType": "IfStatement", - "src": "26014:100:27", - "trueBody": { - "id": 5129, - "nodeType": "Block", - "src": "26036:78:27", - "statements": [ - { - "expression": { - "id": 5123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5119, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "26054:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "id": 5122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26063:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "32", - "id": 5121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26069:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "26063:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - } - }, - "src": "26054:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5124, - "nodeType": "ExpressionStatement", - "src": "26054:16:27" - }, - { - "expression": { - "id": 5127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5125, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "26088:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "32", - "id": 5126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26098:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "26088:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5128, - "nodeType": "ExpressionStatement", - "src": "26088:11:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5131, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "26131:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "id": 5134, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5132, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26140:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "31", - "id": 5133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26146:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "26140:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - } - }, - "src": "26131:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5141, - "nodeType": "IfStatement", - "src": "26127:66:27", - "trueBody": { - "id": 5140, - "nodeType": "Block", - "src": "26149:44:27", - "statements": [ - { - "expression": { - "id": 5138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5136, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "26167:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 5137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26177:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "26167:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5139, - "nodeType": "ExpressionStatement", - "src": "26167:11:27" - } - ] - } - } - ] - }, - { - "expression": { - "id": 5143, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "26219:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5024, - "id": 5144, - "nodeType": "Return", - "src": "26212:13:27" - } - ] - }, - "documentation": { - "id": 5018, - "nodeType": "StructuredDocumentation", - "src": "25191:120:27", - "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." - }, - "id": 5146, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log10", - "nameLocation": "25325:5:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5020, - "mutability": "mutable", - "name": "value", - "nameLocation": "25339:5:27", - "nodeType": "VariableDeclaration", - "scope": 5146, - "src": "25331:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5019, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25331:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "25330:15:27" - }, - "returnParameters": { - "id": 5024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5023, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5146, - "src": "25369:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25369:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "25368:9:27" - }, - "scope": 5374, - "src": "25316:916:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5179, - "nodeType": "Block", - "src": "26467:177:27", - "statements": [ - { - "id": 5178, - "nodeType": "UncheckedBlock", - "src": "26477:161:27", - "statements": [ - { - "assignments": [ - 5158 - ], - "declarations": [ - { - "constant": false, - "id": 5158, - "mutability": "mutable", - "name": "result", - "nameLocation": "26509:6:27", - "nodeType": "VariableDeclaration", - "scope": 5178, - "src": "26501:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5157, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26501:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5162, - "initialValue": { - "arguments": [ - { - "id": 5160, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5149, - "src": "26524:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5159, - "name": "log10", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5146, - 5180 - ], - "referencedDeclaration": 5146, - "src": "26518:5:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 5161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26518:12:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26501:29:27" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5163, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "26551:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 5167, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5152, - "src": "26593:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 5166, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "26576:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 5168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26576:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26606:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "id": 5170, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "26612:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26606:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 5172, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5149, - "src": "26621:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26606:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "26576:50:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5164, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "26560:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "26569:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "26560:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26560:67:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26551:76:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5156, - "id": 5177, - "nodeType": "Return", - "src": "26544:83:27" - } - ] - } - ] - }, - "documentation": { - "id": 5147, - "nodeType": "StructuredDocumentation", - "src": "26238:143:27", - "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." - }, - "id": 5180, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log10", - "nameLocation": "26395:5:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5149, - "mutability": "mutable", - "name": "value", - "nameLocation": "26409:5:27", - "nodeType": "VariableDeclaration", - "scope": 5180, - "src": "26401:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26401:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "26425:8:27", - "nodeType": "VariableDeclaration", - "scope": 5180, - "src": "26416:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 5151, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5150, - "name": "Rounding", - "nameLocations": [ - "26416:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "26416:8:27" - }, - "referencedDeclaration": 3780, - "src": "26416:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "26400:34:27" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5180, - "src": "26458:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5154, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26458:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "26457:9:27" - }, - "scope": 5374, - "src": "26386:258:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5316, - "nodeType": "Block", - "src": "26964:674:27", - "statements": [ - { - "assignments": [ - 5189 - ], - "declarations": [ - { - "constant": false, - "id": 5189, - "mutability": "mutable", - "name": "result", - "nameLocation": "26982:6:27", - "nodeType": "VariableDeclaration", - "scope": 5316, - "src": "26974:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5188, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26974:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5191, - "initialValue": { - "hexValue": "30", - "id": 5190, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26991:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "26974:18:27" - }, - { - "assignments": [ - 5193 - ], - "declarations": [ - { - "constant": false, - "id": 5193, - "mutability": "mutable", - "name": "isGt", - "nameLocation": "27010:4:27", - "nodeType": "VariableDeclaration", - "scope": 5316, - "src": "27002:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5192, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27002:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5194, - "nodeType": "VariableDeclarationStatement", - "src": "27002:12:27" - }, - { - "id": 5313, - "nodeType": "UncheckedBlock", - "src": "27024:585:27", - "statements": [ - { - "expression": { - "id": 5207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5195, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27048:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5198, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27071:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1455" - }, - "id": 5204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - }, - "id": 5201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27080:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "313238", - "id": 5200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27085:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "27080:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - } - ], - "id": 5202, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27079:10:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5203, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27092:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27079:14:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1455" - } - }, - "src": "27071:22:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5196, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27055:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27064:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27055:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27055:39:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27048:46:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5208, - "nodeType": "ExpressionStatement", - "src": "27048:46:27" - }, - { - "expression": { - "id": 5213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5209, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27108:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5210, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27118:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "313238", - "id": 5211, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27125:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "27118:10:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27108:20:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5214, - "nodeType": "ExpressionStatement", - "src": "27108:20:27" - }, - { - "expression": { - "id": 5219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5215, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27142:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5216, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27152:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3136", - "id": 5217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27159:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "27152:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27142:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5220, - "nodeType": "ExpressionStatement", - "src": "27142:19:27" - }, - { - "expression": { - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5221, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27176:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5224, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27199:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_18446744073709551615_by_1", - "typeString": "int_const 18446744073709551615" - }, - "id": 5230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - }, - "id": 5227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27208:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3634", - "id": 5226, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27213:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "27208:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - } - ], - "id": 5228, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27207:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5229, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27219:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27207:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551615_by_1", - "typeString": "int_const 18446744073709551615" - } - }, - "src": "27199:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5222, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27183:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27192:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27183:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27183:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27176:45:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5234, - "nodeType": "ExpressionStatement", - "src": "27176:45:27" - }, - { - "expression": { - "id": 5239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5235, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27235:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5236, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27245:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3634", - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27252:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "27245:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27235:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5240, - "nodeType": "ExpressionStatement", - "src": "27235:19:27" - }, - { - "expression": { - "id": 5245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5241, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27268:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5242, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27278:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "38", - "id": 5243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27285:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "27278:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27268:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5246, - "nodeType": "ExpressionStatement", - "src": "27268:18:27" - }, - { - "expression": { - "id": 5259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5247, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27301:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5250, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27324:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "id": 5256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - }, - "id": 5253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27333:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3332", - "id": 5252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27338:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "27333:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - } - ], - "id": 5254, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27332:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27344:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27332:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - } - }, - "src": "27324:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5248, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27308:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27317:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27308:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27308:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27301:45:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5260, - "nodeType": "ExpressionStatement", - "src": "27301:45:27" - }, - { - "expression": { - "id": 5265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5261, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27360:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5262, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27370:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3332", - "id": 5263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27377:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "27370:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27360:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5266, - "nodeType": "ExpressionStatement", - "src": "27360:19:27" - }, - { - "expression": { - "id": 5271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5267, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27393:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5268, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27403:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "34", - "id": 5269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27410:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "27403:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27393:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5272, - "nodeType": "ExpressionStatement", - "src": "27393:18:27" - }, - { - "expression": { - "id": 5285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5273, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27426:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5276, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27449:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_65535_by_1", - "typeString": "int_const 65535" - }, - "id": 5282, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27458:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3136", - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27463:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "27458:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - } - ], - "id": 5280, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27457:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27469:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27457:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65535_by_1", - "typeString": "int_const 65535" - } - }, - "src": "27449:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5274, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27433:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27442:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27433:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27433:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27426:45:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5286, - "nodeType": "ExpressionStatement", - "src": "27426:45:27" - }, - { - "expression": { - "id": 5291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5287, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27485:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5288, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27495:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3136", - "id": 5289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27502:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "27495:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27485:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5292, - "nodeType": "ExpressionStatement", - "src": "27485:19:27" - }, - { - "expression": { - "id": 5297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5293, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27518:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5294, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27528:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "32", - "id": 5295, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27535:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "27528:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27518:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5298, - "nodeType": "ExpressionStatement", - "src": "27518:18:27" - }, - { - "expression": { - "id": 5311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5299, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27551:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5302, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27577:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "id": 5308, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27586:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "38", - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27591:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "27586:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - } - ], - "id": 5306, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27585:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27596:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27585:12:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - } - }, - "src": "27577:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5300, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27561:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27570:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27561:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27561:37:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27551:47:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5312, - "nodeType": "ExpressionStatement", - "src": "27551:47:27" - } - ] - }, - { - "expression": { - "id": 5314, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27625:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5187, - "id": 5315, - "nodeType": "Return", - "src": "27618:13:27" - } - ] - }, - "documentation": { - "id": 5181, - "nodeType": "StructuredDocumentation", - "src": "26650:246:27", - "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": 5317, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log256", - "nameLocation": "26910:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5183, - "mutability": "mutable", - "name": "value", - "nameLocation": "26925:5:27", - "nodeType": "VariableDeclaration", - "scope": 5317, - "src": "26917:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5182, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26917:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "26916:15:27" - }, - "returnParameters": { - "id": 5187, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5186, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5317, - "src": "26955:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5185, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26955:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "26954:9:27" - }, - "scope": 5374, - "src": "26901:737:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5353, - "nodeType": "Block", - "src": "27875:184:27", - "statements": [ - { - "id": 5352, - "nodeType": "UncheckedBlock", - "src": "27885:168:27", - "statements": [ - { - "assignments": [ - 5329 - ], - "declarations": [ - { - "constant": false, - "id": 5329, - "mutability": "mutable", - "name": "result", - "nameLocation": "27917:6:27", - "nodeType": "VariableDeclaration", - "scope": 5352, - "src": "27909:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5328, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27909:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5333, - "initialValue": { - "arguments": [ - { - "id": 5331, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "27933:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5330, - "name": "log256", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5317, - 5354 - ], - "referencedDeclaration": 5317, - "src": "27926:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 5332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27926:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "27909:30:27" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5334, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5329, - "src": "27960:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 5338, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5323, - "src": "28002:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 5337, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "27985:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 5339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27985:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28015:1:27", - "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": 5343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5341, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5329, - "src": "28021:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "33", - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28031:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "28021:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5344, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "28020:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28015:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 5346, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "28036:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28015:26:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "27985:56:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5335, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27969:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27978:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27969:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27969:73:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27960:82:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5327, - "id": 5351, - "nodeType": "Return", - "src": "27953:89:27" - } - ] - } - ] - }, - "documentation": { - "id": 5318, - "nodeType": "StructuredDocumentation", - "src": "27644:144:27", - "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." - }, - "id": 5354, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log256", - "nameLocation": "27802:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5324, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5320, - "mutability": "mutable", - "name": "value", - "nameLocation": "27817:5:27", - "nodeType": "VariableDeclaration", - "scope": 5354, - "src": "27809:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5319, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27809:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5323, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "27833:8:27", - "nodeType": "VariableDeclaration", - "scope": 5354, - "src": "27824:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 5322, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5321, - "name": "Rounding", - "nameLocations": [ - "27824:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "27824:8:27" - }, - "referencedDeclaration": 3780, - "src": "27824:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "27808:34:27" - }, - "returnParameters": { - "id": 5327, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5326, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5354, - "src": "27866:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5325, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27866:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "27865:9:27" - }, - "scope": 5374, - "src": "27793:266:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5372, - "nodeType": "Block", - "src": "28257:48:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 5370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 5368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 5365, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5358, - "src": "28280:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 5364, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28274:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 5363, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "28274:5:27", - "typeDescriptions": {} - } - }, - "id": 5366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28274:15:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "hexValue": "32", - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28292:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "28274:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "31", - "id": 5369, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28297:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "28274:24:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5362, - "id": 5371, - "nodeType": "Return", - "src": "28267:31:27" - } - ] - }, - "documentation": { - "id": 5355, - "nodeType": "StructuredDocumentation", - "src": "28065:113:27", - "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." - }, - "id": 5373, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "unsignedRoundsUp", - "nameLocation": "28192:16:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5359, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5358, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "28218:8:27", - "nodeType": "VariableDeclaration", - "scope": 5373, - "src": "28209:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 5357, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5356, - "name": "Rounding", - "nameLocations": [ - "28209:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "28209:8:27" - }, - "referencedDeclaration": 3780, - "src": "28209:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "28208:19:27" - }, - "returnParameters": { - "id": 5362, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5361, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5373, - "src": "28251:4:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5360, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "28251:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "28250:6:27" - }, - "scope": 5374, - "src": "28183:122:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 5375, - "src": "281:28026:27", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "103:28205:27" - }, - "id": 27 - }, - "@openzeppelin/contracts/utils/math/SafeCast.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", - "exportedSymbols": { - "SafeCast": [ - 7139 - ] - }, - "id": 7140, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5376, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "192:24:28" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "SafeCast", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 5377, - "nodeType": "StructuredDocumentation", - "src": "218:550:28", - "text": " @dev Wrappers over Solidity's uintXX/intXX/bool 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": 7139, - "linearizedBaseContracts": [ - 7139 - ], - "name": "SafeCast", - "nameLocation": "777:8:28", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 5378, - "nodeType": "StructuredDocumentation", - "src": "792:68:28", - "text": " @dev Value doesn't fit in an uint of `bits` size." - }, - "errorSelector": "6dfcc650", - "id": 5384, - "name": "SafeCastOverflowedUintDowncast", - "nameLocation": "871:30:28", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5380, - "mutability": "mutable", - "name": "bits", - "nameLocation": "908:4:28", - "nodeType": "VariableDeclaration", - "scope": 5384, - "src": "902:10:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5379, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "902:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5382, - "mutability": "mutable", - "name": "value", - "nameLocation": "922:5:28", - "nodeType": "VariableDeclaration", - "scope": 5384, - "src": "914:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5381, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "914:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "901:27:28" - }, - "src": "865:64:28" - }, - { - "documentation": { - "id": 5385, - "nodeType": "StructuredDocumentation", - "src": "935:75:28", - "text": " @dev An int value doesn't fit in an uint of `bits` size." - }, - "errorSelector": "a8ce4432", - "id": 5389, - "name": "SafeCastOverflowedIntToUint", - "nameLocation": "1021:27:28", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5388, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5387, - "mutability": "mutable", - "name": "value", - "nameLocation": "1056:5:28", - "nodeType": "VariableDeclaration", - "scope": 5389, - "src": "1049:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 5386, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "1049:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "1048:14:28" - }, - "src": "1015:48:28" - }, - { - "documentation": { - "id": 5390, - "nodeType": "StructuredDocumentation", - "src": "1069:67:28", - "text": " @dev Value doesn't fit in an int of `bits` size." - }, - "errorSelector": "327269a7", - "id": 5396, - "name": "SafeCastOverflowedIntDowncast", - "nameLocation": "1147:29:28", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5395, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5392, - "mutability": "mutable", - "name": "bits", - "nameLocation": "1183:4:28", - "nodeType": "VariableDeclaration", - "scope": 5396, - "src": "1177:10:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5391, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1177:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5394, - "mutability": "mutable", - "name": "value", - "nameLocation": "1196:5:28", - "nodeType": "VariableDeclaration", - "scope": 5396, - "src": "1189:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 5393, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "1189:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "1176:26:28" - }, - "src": "1141:62:28" - }, - { - "documentation": { - "id": 5397, - "nodeType": "StructuredDocumentation", - "src": "1209:75:28", - "text": " @dev An uint value doesn't fit in an int of `bits` size." - }, - "errorSelector": "24775e06", - "id": 5401, - "name": "SafeCastOverflowedUintToInt", - "nameLocation": "1295:27:28", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5399, - "mutability": "mutable", - "name": "value", - "nameLocation": "1331:5:28", - "nodeType": "VariableDeclaration", - "scope": 5401, - "src": "1323:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5398, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1323:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1322:15:28" - }, - "src": "1289:49:28" - }, - { - "body": { - "id": 5428, - "nodeType": "Block", - "src": "1695:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5409, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5404, - "src": "1709:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1722:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint248_$", - "typeString": "type(uint248)" - }, - "typeName": { - "id": 5411, - "name": "uint248", - "nodeType": "ElementaryTypeName", - "src": "1722:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint248_$", - "typeString": "type(uint248)" - } - ], - "id": 5410, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "1717:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1717:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint248", - "typeString": "type(uint248)" - } - }, - "id": 5414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1731:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "1717:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint248", - "typeString": "uint248" - } - }, - "src": "1709:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5422, - "nodeType": "IfStatement", - "src": "1705:105:28", - "trueBody": { - "id": 5421, - "nodeType": "Block", - "src": "1736:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323438", - "id": 5417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1788:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_248_by_1", - "typeString": "int_const 248" - }, - "value": "248" - }, - { - "id": 5418, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5404, - "src": "1793:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_248_by_1", - "typeString": "int_const 248" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5416, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "1757:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1757:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5420, - "nodeType": "RevertStatement", - "src": "1750:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5425, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5404, - "src": "1834:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1826:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint248_$", - "typeString": "type(uint248)" - }, - "typeName": { - "id": 5423, - "name": "uint248", - "nodeType": "ElementaryTypeName", - "src": "1826:7:28", - "typeDescriptions": {} - } - }, - "id": 5426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1826:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint248", - "typeString": "uint248" - } - }, - "functionReturnParameters": 5408, - "id": 5427, - "nodeType": "Return", - "src": "1819:21:28" - } - ] - }, - "documentation": { - "id": 5402, - "nodeType": "StructuredDocumentation", - "src": "1344:280:28", - "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": 5429, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint248", - "nameLocation": "1638:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5404, - "mutability": "mutable", - "name": "value", - "nameLocation": "1656:5:28", - "nodeType": "VariableDeclaration", - "scope": 5429, - "src": "1648:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1648:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1647:15:28" - }, - "returnParameters": { - "id": 5408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5407, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5429, - "src": "1686:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint248", - "typeString": "uint248" - }, - "typeName": { - "id": 5406, - "name": "uint248", - "nodeType": "ElementaryTypeName", - "src": "1686:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint248", - "typeString": "uint248" - } - }, - "visibility": "internal" - } - ], - "src": "1685:9:28" - }, - "scope": 7139, - "src": "1629:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5456, - "nodeType": "Block", - "src": "2204:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5437, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5432, - "src": "2218:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2231:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint240_$", - "typeString": "type(uint240)" - }, - "typeName": { - "id": 5439, - "name": "uint240", - "nodeType": "ElementaryTypeName", - "src": "2231:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint240_$", - "typeString": "type(uint240)" - } - ], - "id": 5438, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "2226:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2226:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint240", - "typeString": "type(uint240)" - } - }, - "id": 5442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2240:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "2226:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint240", - "typeString": "uint240" - } - }, - "src": "2218:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5450, - "nodeType": "IfStatement", - "src": "2214:105:28", - "trueBody": { - "id": 5449, - "nodeType": "Block", - "src": "2245:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323430", - "id": 5445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2297:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_240_by_1", - "typeString": "int_const 240" - }, - "value": "240" - }, - { - "id": 5446, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5432, - "src": "2302:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_240_by_1", - "typeString": "int_const 240" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5444, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2266:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2266:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5448, - "nodeType": "RevertStatement", - "src": "2259:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5453, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5432, - "src": "2343:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2335:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint240_$", - "typeString": "type(uint240)" - }, - "typeName": { - "id": 5451, - "name": "uint240", - "nodeType": "ElementaryTypeName", - "src": "2335:7:28", - "typeDescriptions": {} - } - }, - "id": 5454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2335:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint240", - "typeString": "uint240" - } - }, - "functionReturnParameters": 5436, - "id": 5455, - "nodeType": "Return", - "src": "2328:21:28" - } - ] - }, - "documentation": { - "id": 5430, - "nodeType": "StructuredDocumentation", - "src": "1853:280:28", - "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": 5457, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint240", - "nameLocation": "2147:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5432, - "mutability": "mutable", - "name": "value", - "nameLocation": "2165:5:28", - "nodeType": "VariableDeclaration", - "scope": 5457, - "src": "2157:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2157:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2156:15:28" - }, - "returnParameters": { - "id": 5436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5435, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5457, - "src": "2195:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint240", - "typeString": "uint240" - }, - "typeName": { - "id": 5434, - "name": "uint240", - "nodeType": "ElementaryTypeName", - "src": "2195:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint240", - "typeString": "uint240" - } - }, - "visibility": "internal" - } - ], - "src": "2194:9:28" - }, - "scope": 7139, - "src": "2138:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "2713:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5465, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5460, - "src": "2727:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2740:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint232_$", - "typeString": "type(uint232)" - }, - "typeName": { - "id": 5467, - "name": "uint232", - "nodeType": "ElementaryTypeName", - "src": "2740:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint232_$", - "typeString": "type(uint232)" - } - ], - "id": 5466, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "2735:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2735:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint232", - "typeString": "type(uint232)" - } - }, - "id": 5470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2749:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "2735:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint232", - "typeString": "uint232" - } - }, - "src": "2727:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5478, - "nodeType": "IfStatement", - "src": "2723:105:28", - "trueBody": { - "id": 5477, - "nodeType": "Block", - "src": "2754:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323332", - "id": 5473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2806:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_232_by_1", - "typeString": "int_const 232" - }, - "value": "232" - }, - { - "id": 5474, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5460, - "src": "2811:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_232_by_1", - "typeString": "int_const 232" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5472, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2775:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2775:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5476, - "nodeType": "RevertStatement", - "src": "2768:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5481, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5460, - "src": "2852:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2844:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint232_$", - "typeString": "type(uint232)" - }, - "typeName": { - "id": 5479, - "name": "uint232", - "nodeType": "ElementaryTypeName", - "src": "2844:7:28", - "typeDescriptions": {} - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2844:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint232", - "typeString": "uint232" - } - }, - "functionReturnParameters": 5464, - "id": 5483, - "nodeType": "Return", - "src": "2837:21:28" - } - ] - }, - "documentation": { - "id": 5458, - "nodeType": "StructuredDocumentation", - "src": "2362:280:28", - "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": 5485, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint232", - "nameLocation": "2656:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5460, - "mutability": "mutable", - "name": "value", - "nameLocation": "2674:5:28", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "2666:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2666:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2665:15:28" - }, - "returnParameters": { - "id": 5464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5463, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "2704:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint232", - "typeString": "uint232" - }, - "typeName": { - "id": 5462, - "name": "uint232", - "nodeType": "ElementaryTypeName", - "src": "2704:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint232", - "typeString": "uint232" - } - }, - "visibility": "internal" - } - ], - "src": "2703:9:28" - }, - "scope": 7139, - "src": "2647:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5512, - "nodeType": "Block", - "src": "3222:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5493, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5488, - "src": "3236:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3249:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 5495, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "3249:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - } - ], - "id": 5494, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "3244:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3244:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint224", - "typeString": "type(uint224)" - } - }, - "id": 5498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3258:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "3244:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "src": "3236:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5506, - "nodeType": "IfStatement", - "src": "3232:105:28", - "trueBody": { - "id": 5505, - "nodeType": "Block", - "src": "3263:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323234", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3315:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_224_by_1", - "typeString": "int_const 224" - }, - "value": "224" - }, - { - "id": 5502, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5488, - "src": "3320:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_224_by_1", - "typeString": "int_const 224" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5500, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3284:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3284:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5504, - "nodeType": "RevertStatement", - "src": "3277:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5509, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5488, - "src": "3361:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3353:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 5507, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "3353:7:28", - "typeDescriptions": {} - } - }, - "id": 5510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3353:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "functionReturnParameters": 5492, - "id": 5511, - "nodeType": "Return", - "src": "3346:21:28" - } - ] - }, - "documentation": { - "id": 5486, - "nodeType": "StructuredDocumentation", - "src": "2871:280:28", - "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": 5513, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint224", - "nameLocation": "3165:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5488, - "mutability": "mutable", - "name": "value", - "nameLocation": "3183:5:28", - "nodeType": "VariableDeclaration", - "scope": 5513, - "src": "3175:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5487, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3175:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3174:15:28" - }, - "returnParameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5491, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5513, - "src": "3213:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "typeName": { - "id": 5490, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "3213:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "visibility": "internal" - } - ], - "src": "3212:9:28" - }, - "scope": 7139, - "src": "3156:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5540, - "nodeType": "Block", - "src": "3731:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5521, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5516, - "src": "3745:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3758:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint216_$", - "typeString": "type(uint216)" - }, - "typeName": { - "id": 5523, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "3758:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint216_$", - "typeString": "type(uint216)" - } - ], - "id": 5522, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "3753:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3753:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint216", - "typeString": "type(uint216)" - } - }, - "id": 5526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3767:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "3753:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "src": "3745:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5534, - "nodeType": "IfStatement", - "src": "3741:105:28", - "trueBody": { - "id": 5533, - "nodeType": "Block", - "src": "3772:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323136", - "id": 5529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3824:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_216_by_1", - "typeString": "int_const 216" - }, - "value": "216" - }, - { - "id": 5530, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5516, - "src": "3829:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_216_by_1", - "typeString": "int_const 216" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5528, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3793:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3793:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5532, - "nodeType": "RevertStatement", - "src": "3786:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5537, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5516, - "src": "3870:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3862:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint216_$", - "typeString": "type(uint216)" - }, - "typeName": { - "id": 5535, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "3862:7:28", - "typeDescriptions": {} - } - }, - "id": 5538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3862:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "functionReturnParameters": 5520, - "id": 5539, - "nodeType": "Return", - "src": "3855:21:28" - } - ] - }, - "documentation": { - "id": 5514, - "nodeType": "StructuredDocumentation", - "src": "3380:280:28", - "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": 5541, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint216", - "nameLocation": "3674:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5517, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5516, - "mutability": "mutable", - "name": "value", - "nameLocation": "3692:5:28", - "nodeType": "VariableDeclaration", - "scope": 5541, - "src": "3684:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3684:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3683:15:28" - }, - "returnParameters": { - "id": 5520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5519, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5541, - "src": "3722:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - }, - "typeName": { - "id": 5518, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "3722:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "visibility": "internal" - } - ], - "src": "3721:9:28" - }, - "scope": 7139, - "src": "3665:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5568, - "nodeType": "Block", - "src": "4240:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5549, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5544, - "src": "4254:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4267:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint208_$", - "typeString": "type(uint208)" - }, - "typeName": { - "id": 5551, - "name": "uint208", - "nodeType": "ElementaryTypeName", - "src": "4267:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint208_$", - "typeString": "type(uint208)" - } - ], - "id": 5550, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "4262:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4262:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint208", - "typeString": "type(uint208)" - } - }, - "id": 5554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4276:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "4262:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint208", - "typeString": "uint208" - } - }, - "src": "4254:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5562, - "nodeType": "IfStatement", - "src": "4250:105:28", - "trueBody": { - "id": 5561, - "nodeType": "Block", - "src": "4281:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323038", - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4333:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_208_by_1", - "typeString": "int_const 208" - }, - "value": "208" - }, - { - "id": 5558, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5544, - "src": "4338:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_208_by_1", - "typeString": "int_const 208" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5556, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "4302:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4302:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5560, - "nodeType": "RevertStatement", - "src": "4295:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5565, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5544, - "src": "4379:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4371:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint208_$", - "typeString": "type(uint208)" - }, - "typeName": { - "id": 5563, - "name": "uint208", - "nodeType": "ElementaryTypeName", - "src": "4371:7:28", - "typeDescriptions": {} - } - }, - "id": 5566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4371:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint208", - "typeString": "uint208" - } - }, - "functionReturnParameters": 5548, - "id": 5567, - "nodeType": "Return", - "src": "4364:21:28" - } - ] - }, - "documentation": { - "id": 5542, - "nodeType": "StructuredDocumentation", - "src": "3889:280:28", - "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": 5569, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint208", - "nameLocation": "4183:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5544, - "mutability": "mutable", - "name": "value", - "nameLocation": "4201:5:28", - "nodeType": "VariableDeclaration", - "scope": 5569, - "src": "4193:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5543, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4193:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4192:15:28" - }, - "returnParameters": { - "id": 5548, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5547, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5569, - "src": "4231:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint208", - "typeString": "uint208" - }, - "typeName": { - "id": 5546, - "name": "uint208", - "nodeType": "ElementaryTypeName", - "src": "4231:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint208", - "typeString": "uint208" - } - }, - "visibility": "internal" - } - ], - "src": "4230:9:28" - }, - "scope": 7139, - "src": "4174:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5596, - "nodeType": "Block", - "src": "4749:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5577, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "4763:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4776:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint200_$", - "typeString": "type(uint200)" - }, - "typeName": { - "id": 5579, - "name": "uint200", - "nodeType": "ElementaryTypeName", - "src": "4776:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint200_$", - "typeString": "type(uint200)" - } - ], - "id": 5578, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "4771:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4771:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint200", - "typeString": "type(uint200)" - } - }, - "id": 5582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4785:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "4771:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint200", - "typeString": "uint200" - } - }, - "src": "4763:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5590, - "nodeType": "IfStatement", - "src": "4759:105:28", - "trueBody": { - "id": 5589, - "nodeType": "Block", - "src": "4790:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323030", - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4842:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" - }, - "value": "200" - }, - { - "id": 5586, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "4847:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5584, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "4811:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4811:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5588, - "nodeType": "RevertStatement", - "src": "4804:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5593, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "4888:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4880:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint200_$", - "typeString": "type(uint200)" - }, - "typeName": { - "id": 5591, - "name": "uint200", - "nodeType": "ElementaryTypeName", - "src": "4880:7:28", - "typeDescriptions": {} - } - }, - "id": 5594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4880:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint200", - "typeString": "uint200" - } - }, - "functionReturnParameters": 5576, - "id": 5595, - "nodeType": "Return", - "src": "4873:21:28" - } - ] - }, - "documentation": { - "id": 5570, - "nodeType": "StructuredDocumentation", - "src": "4398:280:28", - "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": 5597, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint200", - "nameLocation": "4692:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5572, - "mutability": "mutable", - "name": "value", - "nameLocation": "4710:5:28", - "nodeType": "VariableDeclaration", - "scope": 5597, - "src": "4702:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5571, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4702:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4701:15:28" - }, - "returnParameters": { - "id": 5576, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5575, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5597, - "src": "4740:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint200", - "typeString": "uint200" - }, - "typeName": { - "id": 5574, - "name": "uint200", - "nodeType": "ElementaryTypeName", - "src": "4740:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint200", - "typeString": "uint200" - } - }, - "visibility": "internal" - } - ], - "src": "4739:9:28" - }, - "scope": 7139, - "src": "4683:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5624, - "nodeType": "Block", - "src": "5258:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5605, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "5272:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5285:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint192_$", - "typeString": "type(uint192)" - }, - "typeName": { - "id": 5607, - "name": "uint192", - "nodeType": "ElementaryTypeName", - "src": "5285:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint192_$", - "typeString": "type(uint192)" - } - ], - "id": 5606, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "5280:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5280:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint192", - "typeString": "type(uint192)" - } - }, - "id": 5610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5294:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "5280:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint192", - "typeString": "uint192" - } - }, - "src": "5272:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5618, - "nodeType": "IfStatement", - "src": "5268:105:28", - "trueBody": { - "id": 5617, - "nodeType": "Block", - "src": "5299:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313932", - "id": 5613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5351:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_192_by_1", - "typeString": "int_const 192" - }, - "value": "192" - }, - { - "id": 5614, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "5356:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_192_by_1", - "typeString": "int_const 192" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5612, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "5320:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5320:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5616, - "nodeType": "RevertStatement", - "src": "5313:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5621, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "5397:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5389:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint192_$", - "typeString": "type(uint192)" - }, - "typeName": { - "id": 5619, - "name": "uint192", - "nodeType": "ElementaryTypeName", - "src": "5389:7:28", - "typeDescriptions": {} - } - }, - "id": 5622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5389:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint192", - "typeString": "uint192" - } - }, - "functionReturnParameters": 5604, - "id": 5623, - "nodeType": "Return", - "src": "5382:21:28" - } - ] - }, - "documentation": { - "id": 5598, - "nodeType": "StructuredDocumentation", - "src": "4907:280:28", - "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": 5625, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint192", - "nameLocation": "5201:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5600, - "mutability": "mutable", - "name": "value", - "nameLocation": "5219:5:28", - "nodeType": "VariableDeclaration", - "scope": 5625, - "src": "5211:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5211:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5210:15:28" - }, - "returnParameters": { - "id": 5604, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5603, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5625, - "src": "5249:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint192", - "typeString": "uint192" - }, - "typeName": { - "id": 5602, - "name": "uint192", - "nodeType": "ElementaryTypeName", - "src": "5249:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint192", - "typeString": "uint192" - } - }, - "visibility": "internal" - } - ], - "src": "5248:9:28" - }, - "scope": 7139, - "src": "5192:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5652, - "nodeType": "Block", - "src": "5767:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5633, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5628, - "src": "5781:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5636, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5794:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint184_$", - "typeString": "type(uint184)" - }, - "typeName": { - "id": 5635, - "name": "uint184", - "nodeType": "ElementaryTypeName", - "src": "5794:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint184_$", - "typeString": "type(uint184)" - } - ], - "id": 5634, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "5789:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5789:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint184", - "typeString": "type(uint184)" - } - }, - "id": 5638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5803:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "5789:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint184", - "typeString": "uint184" - } - }, - "src": "5781:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5646, - "nodeType": "IfStatement", - "src": "5777:105:28", - "trueBody": { - "id": 5645, - "nodeType": "Block", - "src": "5808:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313834", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5860:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_184_by_1", - "typeString": "int_const 184" - }, - "value": "184" - }, - { - "id": 5642, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5628, - "src": "5865:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_184_by_1", - "typeString": "int_const 184" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5640, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "5829:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5829:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5644, - "nodeType": "RevertStatement", - "src": "5822:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5649, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5628, - "src": "5906:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5898:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint184_$", - "typeString": "type(uint184)" - }, - "typeName": { - "id": 5647, - "name": "uint184", - "nodeType": "ElementaryTypeName", - "src": "5898:7:28", - "typeDescriptions": {} - } - }, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5898:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint184", - "typeString": "uint184" - } - }, - "functionReturnParameters": 5632, - "id": 5651, - "nodeType": "Return", - "src": "5891:21:28" - } - ] - }, - "documentation": { - "id": 5626, - "nodeType": "StructuredDocumentation", - "src": "5416:280:28", - "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": 5653, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint184", - "nameLocation": "5710:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5628, - "mutability": "mutable", - "name": "value", - "nameLocation": "5728:5:28", - "nodeType": "VariableDeclaration", - "scope": 5653, - "src": "5720:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5720:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5719:15:28" - }, - "returnParameters": { - "id": 5632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5631, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5653, - "src": "5758:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint184", - "typeString": "uint184" - }, - "typeName": { - "id": 5630, - "name": "uint184", - "nodeType": "ElementaryTypeName", - "src": "5758:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint184", - "typeString": "uint184" - } - }, - "visibility": "internal" - } - ], - "src": "5757:9:28" - }, - "scope": 7139, - "src": "5701:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5680, - "nodeType": "Block", - "src": "6276:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5661, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5656, - "src": "6290:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6303:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint176_$", - "typeString": "type(uint176)" - }, - "typeName": { - "id": 5663, - "name": "uint176", - "nodeType": "ElementaryTypeName", - "src": "6303:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint176_$", - "typeString": "type(uint176)" - } - ], - "id": 5662, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "6298:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6298:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint176", - "typeString": "type(uint176)" - } - }, - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6312:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "6298:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint176", - "typeString": "uint176" - } - }, - "src": "6290:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5674, - "nodeType": "IfStatement", - "src": "6286:105:28", - "trueBody": { - "id": 5673, - "nodeType": "Block", - "src": "6317:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313736", - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6369:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_176_by_1", - "typeString": "int_const 176" - }, - "value": "176" - }, - { - "id": 5670, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5656, - "src": "6374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_176_by_1", - "typeString": "int_const 176" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5668, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "6338:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6338:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5672, - "nodeType": "RevertStatement", - "src": "6331:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5677, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5656, - "src": "6415:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6407:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint176_$", - "typeString": "type(uint176)" - }, - "typeName": { - "id": 5675, - "name": "uint176", - "nodeType": "ElementaryTypeName", - "src": "6407:7:28", - "typeDescriptions": {} - } - }, - "id": 5678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6407:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint176", - "typeString": "uint176" - } - }, - "functionReturnParameters": 5660, - "id": 5679, - "nodeType": "Return", - "src": "6400:21:28" - } - ] - }, - "documentation": { - "id": 5654, - "nodeType": "StructuredDocumentation", - "src": "5925:280:28", - "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": 5681, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint176", - "nameLocation": "6219:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5657, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5656, - "mutability": "mutable", - "name": "value", - "nameLocation": "6237:5:28", - "nodeType": "VariableDeclaration", - "scope": 5681, - "src": "6229:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5655, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6229:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6228:15:28" - }, - "returnParameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5659, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5681, - "src": "6267:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint176", - "typeString": "uint176" - }, - "typeName": { - "id": 5658, - "name": "uint176", - "nodeType": "ElementaryTypeName", - "src": "6267:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint176", - "typeString": "uint176" - } - }, - "visibility": "internal" - } - ], - "src": "6266:9:28" - }, - "scope": 7139, - "src": "6210:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5708, - "nodeType": "Block", - "src": "6785:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5689, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5684, - "src": "6799:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6812:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint168_$", - "typeString": "type(uint168)" - }, - "typeName": { - "id": 5691, - "name": "uint168", - "nodeType": "ElementaryTypeName", - "src": "6812:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint168_$", - "typeString": "type(uint168)" - } - ], - "id": 5690, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "6807:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6807:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint168", - "typeString": "type(uint168)" - } - }, - "id": 5694, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6821:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "6807:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint168", - "typeString": "uint168" - } - }, - "src": "6799:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5702, - "nodeType": "IfStatement", - "src": "6795:105:28", - "trueBody": { - "id": 5701, - "nodeType": "Block", - "src": "6826:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313638", - "id": 5697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6878:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_168_by_1", - "typeString": "int_const 168" - }, - "value": "168" - }, - { - "id": 5698, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5684, - "src": "6883:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_168_by_1", - "typeString": "int_const 168" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5696, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "6847:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6847:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5700, - "nodeType": "RevertStatement", - "src": "6840:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5705, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5684, - "src": "6924:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6916:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint168_$", - "typeString": "type(uint168)" - }, - "typeName": { - "id": 5703, - "name": "uint168", - "nodeType": "ElementaryTypeName", - "src": "6916:7:28", - "typeDescriptions": {} - } - }, - "id": 5706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6916:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint168", - "typeString": "uint168" - } - }, - "functionReturnParameters": 5688, - "id": 5707, - "nodeType": "Return", - "src": "6909:21:28" - } - ] - }, - "documentation": { - "id": 5682, - "nodeType": "StructuredDocumentation", - "src": "6434:280:28", - "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": 5709, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint168", - "nameLocation": "6728:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5684, - "mutability": "mutable", - "name": "value", - "nameLocation": "6746:5:28", - "nodeType": "VariableDeclaration", - "scope": 5709, - "src": "6738:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6738:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6737:15:28" - }, - "returnParameters": { - "id": 5688, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5687, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5709, - "src": "6776:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint168", - "typeString": "uint168" - }, - "typeName": { - "id": 5686, - "name": "uint168", - "nodeType": "ElementaryTypeName", - "src": "6776:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint168", - "typeString": "uint168" - } - }, - "visibility": "internal" - } - ], - "src": "6775:9:28" - }, - "scope": 7139, - "src": "6719:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5736, - "nodeType": "Block", - "src": "7294:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5717, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5712, - "src": "7308:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7321:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 5719, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "7321:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - } - ], - "id": 5718, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "7316:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7316:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint160", - "typeString": "type(uint160)" - } - }, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7330:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "7316:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - }, - "src": "7308:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5730, - "nodeType": "IfStatement", - "src": "7304:105:28", - "trueBody": { - "id": 5729, - "nodeType": "Block", - "src": "7335:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313630", - "id": 5725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7387:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_160_by_1", - "typeString": "int_const 160" - }, - "value": "160" - }, - { - "id": 5726, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5712, - "src": "7392:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_160_by_1", - "typeString": "int_const 160" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5724, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "7356:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7356:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5728, - "nodeType": "RevertStatement", - "src": "7349:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5733, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5712, - "src": "7433:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7425:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 5731, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "7425:7:28", - "typeDescriptions": {} - } - }, - "id": 5734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7425:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - }, - "functionReturnParameters": 5716, - "id": 5735, - "nodeType": "Return", - "src": "7418:21:28" - } - ] - }, - "documentation": { - "id": 5710, - "nodeType": "StructuredDocumentation", - "src": "6943:280:28", - "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": 5737, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint160", - "nameLocation": "7237:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5713, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5712, - "mutability": "mutable", - "name": "value", - "nameLocation": "7255:5:28", - "nodeType": "VariableDeclaration", - "scope": 5737, - "src": "7247:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5711, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7247:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7246:15:28" - }, - "returnParameters": { - "id": 5716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5715, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5737, - "src": "7285:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - }, - "typeName": { - "id": 5714, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "7285:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - }, - "visibility": "internal" - } - ], - "src": "7284:9:28" - }, - "scope": 7139, - "src": "7228:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5764, - "nodeType": "Block", - "src": "7803:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5745, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5740, - "src": "7817:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7830:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint152_$", - "typeString": "type(uint152)" - }, - "typeName": { - "id": 5747, - "name": "uint152", - "nodeType": "ElementaryTypeName", - "src": "7830:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint152_$", - "typeString": "type(uint152)" - } - ], - "id": 5746, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "7825:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5749, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7825:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint152", - "typeString": "type(uint152)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7839:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "7825:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint152", - "typeString": "uint152" - } - }, - "src": "7817:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5758, - "nodeType": "IfStatement", - "src": "7813:105:28", - "trueBody": { - "id": 5757, - "nodeType": "Block", - "src": "7844:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313532", - "id": 5753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7896:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_152_by_1", - "typeString": "int_const 152" - }, - "value": "152" - }, - { - "id": 5754, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5740, - "src": "7901:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_152_by_1", - "typeString": "int_const 152" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5752, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "7865:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7865:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5756, - "nodeType": "RevertStatement", - "src": "7858:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5761, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5740, - "src": "7942:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7934:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint152_$", - "typeString": "type(uint152)" - }, - "typeName": { - "id": 5759, - "name": "uint152", - "nodeType": "ElementaryTypeName", - "src": "7934:7:28", - "typeDescriptions": {} - } - }, - "id": 5762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7934:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint152", - "typeString": "uint152" - } - }, - "functionReturnParameters": 5744, - "id": 5763, - "nodeType": "Return", - "src": "7927:21:28" - } - ] - }, - "documentation": { - "id": 5738, - "nodeType": "StructuredDocumentation", - "src": "7452:280:28", - "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": 5765, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint152", - "nameLocation": "7746:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5741, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5740, - "mutability": "mutable", - "name": "value", - "nameLocation": "7764:5:28", - "nodeType": "VariableDeclaration", - "scope": 5765, - "src": "7756:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5739, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7756:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7755:15:28" - }, - "returnParameters": { - "id": 5744, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5743, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5765, - "src": "7794:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint152", - "typeString": "uint152" - }, - "typeName": { - "id": 5742, - "name": "uint152", - "nodeType": "ElementaryTypeName", - "src": "7794:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint152", - "typeString": "uint152" - } - }, - "visibility": "internal" - } - ], - "src": "7793:9:28" - }, - "scope": 7139, - "src": "7737:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5792, - "nodeType": "Block", - "src": "8312:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5773, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "8326:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8339:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint144_$", - "typeString": "type(uint144)" - }, - "typeName": { - "id": 5775, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "8339:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint144_$", - "typeString": "type(uint144)" - } - ], - "id": 5774, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "8334:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5777, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8334:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint144", - "typeString": "type(uint144)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8348:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "8334:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "src": "8326:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5786, - "nodeType": "IfStatement", - "src": "8322:105:28", - "trueBody": { - "id": 5785, - "nodeType": "Block", - "src": "8353:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313434", - "id": 5781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8405:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_144_by_1", - "typeString": "int_const 144" - }, - "value": "144" - }, - { - "id": 5782, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "8410:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_144_by_1", - "typeString": "int_const 144" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5780, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "8374:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8374:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5784, - "nodeType": "RevertStatement", - "src": "8367:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5789, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "8451:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8443:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint144_$", - "typeString": "type(uint144)" - }, - "typeName": { - "id": 5787, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "8443:7:28", - "typeDescriptions": {} - } - }, - "id": 5790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8443:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "functionReturnParameters": 5772, - "id": 5791, - "nodeType": "Return", - "src": "8436:21:28" - } - ] - }, - "documentation": { - "id": 5766, - "nodeType": "StructuredDocumentation", - "src": "7961:280:28", - "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": 5793, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint144", - "nameLocation": "8255:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5769, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "mutability": "mutable", - "name": "value", - "nameLocation": "8273:5:28", - "nodeType": "VariableDeclaration", - "scope": 5793, - "src": "8265:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5767, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8265:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8264:15:28" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5771, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5793, - "src": "8303:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - }, - "typeName": { - "id": 5770, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "8303:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "visibility": "internal" - } - ], - "src": "8302:9:28" - }, - "scope": 7139, - "src": "8246:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5820, - "nodeType": "Block", - "src": "8821:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5801, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5796, - "src": "8835:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8848:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint136_$", - "typeString": "type(uint136)" - }, - "typeName": { - "id": 5803, - "name": "uint136", - "nodeType": "ElementaryTypeName", - "src": "8848:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint136_$", - "typeString": "type(uint136)" - } - ], - "id": 5802, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "8843:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8843:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint136", - "typeString": "type(uint136)" - } - }, - "id": 5806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8857:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "8843:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint136", - "typeString": "uint136" - } - }, - "src": "8835:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5814, - "nodeType": "IfStatement", - "src": "8831:105:28", - "trueBody": { - "id": 5813, - "nodeType": "Block", - "src": "8862:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313336", - "id": 5809, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8914:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_136_by_1", - "typeString": "int_const 136" - }, - "value": "136" - }, - { - "id": 5810, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5796, - "src": "8919:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_136_by_1", - "typeString": "int_const 136" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5808, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "8883:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8883:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5812, - "nodeType": "RevertStatement", - "src": "8876:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5817, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5796, - "src": "8960:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8952:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint136_$", - "typeString": "type(uint136)" - }, - "typeName": { - "id": 5815, - "name": "uint136", - "nodeType": "ElementaryTypeName", - "src": "8952:7:28", - "typeDescriptions": {} - } - }, - "id": 5818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8952:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint136", - "typeString": "uint136" - } - }, - "functionReturnParameters": 5800, - "id": 5819, - "nodeType": "Return", - "src": "8945:21:28" - } - ] - }, - "documentation": { - "id": 5794, - "nodeType": "StructuredDocumentation", - "src": "8470:280:28", - "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": 5821, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint136", - "nameLocation": "8764:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5796, - "mutability": "mutable", - "name": "value", - "nameLocation": "8782:5:28", - "nodeType": "VariableDeclaration", - "scope": 5821, - "src": "8774:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5795, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8774:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8773:15:28" - }, - "returnParameters": { - "id": 5800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5799, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5821, - "src": "8812:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint136", - "typeString": "uint136" - }, - "typeName": { - "id": 5798, - "name": "uint136", - "nodeType": "ElementaryTypeName", - "src": "8812:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint136", - "typeString": "uint136" - } - }, - "visibility": "internal" - } - ], - "src": "8811:9:28" - }, - "scope": 7139, - "src": "8755:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5848, - "nodeType": "Block", - "src": "9330:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5829, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9344:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9357:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint128_$", - "typeString": "type(uint128)" - }, - "typeName": { - "id": 5831, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "9357:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint128_$", - "typeString": "type(uint128)" - } - ], - "id": 5830, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "9352:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9352:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint128", - "typeString": "type(uint128)" - } - }, - "id": 5834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9366:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "9352:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "src": "9344:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5842, - "nodeType": "IfStatement", - "src": "9340:105:28", - "trueBody": { - "id": 5841, - "nodeType": "Block", - "src": "9371:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313238", - "id": 5837, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9423:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - { - "id": 5838, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9428:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5836, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "9392:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9392:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5840, - "nodeType": "RevertStatement", - "src": "9385:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5845, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9469:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9461:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint128_$", - "typeString": "type(uint128)" - }, - "typeName": { - "id": 5843, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "9461:7:28", - "typeDescriptions": {} - } - }, - "id": 5846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9461:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "functionReturnParameters": 5828, - "id": 5847, - "nodeType": "Return", - "src": "9454:21:28" - } - ] - }, - "documentation": { - "id": 5822, - "nodeType": "StructuredDocumentation", - "src": "8979:280:28", - "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": 5849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint128", - "nameLocation": "9273:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5824, - "mutability": "mutable", - "name": "value", - "nameLocation": "9291:5:28", - "nodeType": "VariableDeclaration", - "scope": 5849, - "src": "9283:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5823, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9283:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9282:15:28" - }, - "returnParameters": { - "id": 5828, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5827, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5849, - "src": "9321:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 5826, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "9321:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - } - ], - "src": "9320:9:28" - }, - "scope": 7139, - "src": "9264:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5876, - "nodeType": "Block", - "src": "9839:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5857, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5852, - "src": "9853:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9866:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint120_$", - "typeString": "type(uint120)" - }, - "typeName": { - "id": 5859, - "name": "uint120", - "nodeType": "ElementaryTypeName", - "src": "9866:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint120_$", - "typeString": "type(uint120)" - } - ], - "id": 5858, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "9861:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5861, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9861:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint120", - "typeString": "type(uint120)" - } - }, - "id": 5862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9875:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "9861:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint120", - "typeString": "uint120" - } - }, - "src": "9853:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5870, - "nodeType": "IfStatement", - "src": "9849:105:28", - "trueBody": { - "id": 5869, - "nodeType": "Block", - "src": "9880:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313230", - "id": 5865, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9932:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - "value": "120" - }, - { - "id": 5866, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5852, - "src": "9937:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5864, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "9901:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9901:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5868, - "nodeType": "RevertStatement", - "src": "9894:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5873, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5852, - "src": "9978:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9970:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint120_$", - "typeString": "type(uint120)" - }, - "typeName": { - "id": 5871, - "name": "uint120", - "nodeType": "ElementaryTypeName", - "src": "9970:7:28", - "typeDescriptions": {} - } - }, - "id": 5874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9970:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint120", - "typeString": "uint120" - } - }, - "functionReturnParameters": 5856, - "id": 5875, - "nodeType": "Return", - "src": "9963:21:28" - } - ] - }, - "documentation": { - "id": 5850, - "nodeType": "StructuredDocumentation", - "src": "9488:280:28", - "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": 5877, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint120", - "nameLocation": "9782:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5852, - "mutability": "mutable", - "name": "value", - "nameLocation": "9800:5:28", - "nodeType": "VariableDeclaration", - "scope": 5877, - "src": "9792:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9792:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9791:15:28" - }, - "returnParameters": { - "id": 5856, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5855, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5877, - "src": "9830:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint120", - "typeString": "uint120" - }, - "typeName": { - "id": 5854, - "name": "uint120", - "nodeType": "ElementaryTypeName", - "src": "9830:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint120", - "typeString": "uint120" - } - }, - "visibility": "internal" - } - ], - "src": "9829:9:28" - }, - "scope": 7139, - "src": "9773:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5904, - "nodeType": "Block", - "src": "10348:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5885, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5880, - "src": "10362:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10375:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint112_$", - "typeString": "type(uint112)" - }, - "typeName": { - "id": 5887, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "10375:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint112_$", - "typeString": "type(uint112)" - } - ], - "id": 5886, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "10370:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5889, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10370:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint112", - "typeString": "type(uint112)" - } - }, - "id": 5890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10384:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "10370:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "src": "10362:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5898, - "nodeType": "IfStatement", - "src": "10358:105:28", - "trueBody": { - "id": 5897, - "nodeType": "Block", - "src": "10389:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313132", - "id": 5893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10441:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - "value": "112" - }, - { - "id": 5894, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5880, - "src": "10446:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5892, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "10410:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10410:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5896, - "nodeType": "RevertStatement", - "src": "10403:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5901, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5880, - "src": "10487:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10479:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint112_$", - "typeString": "type(uint112)" - }, - "typeName": { - "id": 5899, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "10479:7:28", - "typeDescriptions": {} - } - }, - "id": 5902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10479:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "functionReturnParameters": 5884, - "id": 5903, - "nodeType": "Return", - "src": "10472:21:28" - } - ] - }, - "documentation": { - "id": 5878, - "nodeType": "StructuredDocumentation", - "src": "9997:280:28", - "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": 5905, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint112", - "nameLocation": "10291:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5880, - "mutability": "mutable", - "name": "value", - "nameLocation": "10309:5:28", - "nodeType": "VariableDeclaration", - "scope": 5905, - "src": "10301:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5879, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10301:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10300:15:28" - }, - "returnParameters": { - "id": 5884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5883, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5905, - "src": "10339:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 5882, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "10339:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "visibility": "internal" - } - ], - "src": "10338:9:28" - }, - "scope": 7139, - "src": "10282:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5932, - "nodeType": "Block", - "src": "10857:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5913, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5908, - "src": "10871:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10884:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint104_$", - "typeString": "type(uint104)" - }, - "typeName": { - "id": 5915, - "name": "uint104", - "nodeType": "ElementaryTypeName", - "src": "10884:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint104_$", - "typeString": "type(uint104)" - } - ], - "id": 5914, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "10879:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5917, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10879:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint104", - "typeString": "type(uint104)" - } - }, - "id": 5918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10893:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "10879:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - "src": "10871:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5926, - "nodeType": "IfStatement", - "src": "10867:105:28", - "trueBody": { - "id": 5925, - "nodeType": "Block", - "src": "10898:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313034", - "id": 5921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10950:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_104_by_1", - "typeString": "int_const 104" - }, - "value": "104" - }, - { - "id": 5922, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5908, - "src": "10955:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_104_by_1", - "typeString": "int_const 104" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5920, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "10919:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10919:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5924, - "nodeType": "RevertStatement", - "src": "10912:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5929, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5908, - "src": "10996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10988:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint104_$", - "typeString": "type(uint104)" - }, - "typeName": { - "id": 5927, - "name": "uint104", - "nodeType": "ElementaryTypeName", - "src": "10988:7:28", - "typeDescriptions": {} - } - }, - "id": 5930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10988:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - "functionReturnParameters": 5912, - "id": 5931, - "nodeType": "Return", - "src": "10981:21:28" - } - ] - }, - "documentation": { - "id": 5906, - "nodeType": "StructuredDocumentation", - "src": "10506:280:28", - "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": 5933, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint104", - "nameLocation": "10800:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5909, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5908, - "mutability": "mutable", - "name": "value", - "nameLocation": "10818:5:28", - "nodeType": "VariableDeclaration", - "scope": 5933, - "src": "10810:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5907, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10810:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10809:15:28" - }, - "returnParameters": { - "id": 5912, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5911, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5933, - "src": "10848:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - }, - "typeName": { - "id": 5910, - "name": "uint104", - "nodeType": "ElementaryTypeName", - "src": "10848:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - "visibility": "internal" - } - ], - "src": "10847:9:28" - }, - "scope": 7139, - "src": "10791:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5960, - "nodeType": "Block", - "src": "11360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5941, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5936, - "src": "11374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint96_$", - "typeString": "type(uint96)" - }, - "typeName": { - "id": 5943, - "name": "uint96", - "nodeType": "ElementaryTypeName", - "src": "11387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint96_$", - "typeString": "type(uint96)" - } - ], - "id": 5942, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "11382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint96", - "typeString": "type(uint96)" - } - }, - "id": 5946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "11395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "11382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint96", - "typeString": "uint96" - } - }, - "src": "11374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5954, - "nodeType": "IfStatement", - "src": "11370:103:28", - "trueBody": { - "id": 5953, - "nodeType": "Block", - "src": "11400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3936", - "id": 5949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - "value": "96" - }, - { - "id": 5950, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5936, - "src": "11456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5948, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "11421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5952, - "nodeType": "RevertStatement", - "src": "11414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5957, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5936, - "src": "11496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint96_$", - "typeString": "type(uint96)" - }, - "typeName": { - "id": 5955, - "name": "uint96", - "nodeType": "ElementaryTypeName", - "src": "11489:6:28", - "typeDescriptions": {} - } - }, - "id": 5958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint96", - "typeString": "uint96" - } - }, - "functionReturnParameters": 5940, - "id": 5959, - "nodeType": "Return", - "src": "11482:20:28" - } - ] - }, - "documentation": { - "id": 5934, - "nodeType": "StructuredDocumentation", - "src": "11015:276:28", - "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": 5961, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint96", - "nameLocation": "11305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5936, - "mutability": "mutable", - "name": "value", - "nameLocation": "11322:5:28", - "nodeType": "VariableDeclaration", - "scope": 5961, - "src": "11314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5935, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11313:15:28" - }, - "returnParameters": { - "id": 5940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5939, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5961, - "src": "11352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint96", - "typeString": "uint96" - }, - "typeName": { - "id": 5938, - "name": "uint96", - "nodeType": "ElementaryTypeName", - "src": "11352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint96", - "typeString": "uint96" - } - }, - "visibility": "internal" - } - ], - "src": "11351:8:28" - }, - "scope": 7139, - "src": "11296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5988, - "nodeType": "Block", - "src": "11860:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5969, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5964, - "src": "11874:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11887:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint88_$", - "typeString": "type(uint88)" - }, - "typeName": { - "id": 5971, - "name": "uint88", - "nodeType": "ElementaryTypeName", - "src": "11887:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint88_$", - "typeString": "type(uint88)" - } - ], - "id": 5970, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "11882:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11882:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint88", - "typeString": "type(uint88)" - } - }, - "id": 5974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "11895:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "11882:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint88", - "typeString": "uint88" - } - }, - "src": "11874:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5982, - "nodeType": "IfStatement", - "src": "11870:103:28", - "trueBody": { - "id": 5981, - "nodeType": "Block", - "src": "11900:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3838", - "id": 5977, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11952:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_88_by_1", - "typeString": "int_const 88" - }, - "value": "88" - }, - { - "id": 5978, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5964, - "src": "11956:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_88_by_1", - "typeString": "int_const 88" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5976, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "11921:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11921:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5980, - "nodeType": "RevertStatement", - "src": "11914:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5985, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5964, - "src": "11996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5984, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint88_$", - "typeString": "type(uint88)" - }, - "typeName": { - "id": 5983, - "name": "uint88", - "nodeType": "ElementaryTypeName", - "src": "11989:6:28", - "typeDescriptions": {} - } - }, - "id": 5986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint88", - "typeString": "uint88" - } - }, - "functionReturnParameters": 5968, - "id": 5987, - "nodeType": "Return", - "src": "11982:20:28" - } - ] - }, - "documentation": { - "id": 5962, - "nodeType": "StructuredDocumentation", - "src": "11515:276:28", - "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": 5989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint88", - "nameLocation": "11805:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5964, - "mutability": "mutable", - "name": "value", - "nameLocation": "11822:5:28", - "nodeType": "VariableDeclaration", - "scope": 5989, - "src": "11814:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11814:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11813:15:28" - }, - "returnParameters": { - "id": 5968, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5967, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5989, - "src": "11852:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint88", - "typeString": "uint88" - }, - "typeName": { - "id": 5966, - "name": "uint88", - "nodeType": "ElementaryTypeName", - "src": "11852:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint88", - "typeString": "uint88" - } - }, - "visibility": "internal" - } - ], - "src": "11851:8:28" - }, - "scope": 7139, - "src": "11796:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6016, - "nodeType": "Block", - "src": "12360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5997, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5992, - "src": "12374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6000, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint80_$", - "typeString": "type(uint80)" - }, - "typeName": { - "id": 5999, - "name": "uint80", - "nodeType": "ElementaryTypeName", - "src": "12387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint80_$", - "typeString": "type(uint80)" - } - ], - "id": 5998, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "12382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6001, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint80", - "typeString": "type(uint80)" - } - }, - "id": 6002, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "12395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "12382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - } - }, - "src": "12374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6010, - "nodeType": "IfStatement", - "src": "12370:103:28", - "trueBody": { - "id": 6009, - "nodeType": "Block", - "src": "12400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3830", - "id": 6005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_80_by_1", - "typeString": "int_const 80" - }, - "value": "80" - }, - { - "id": 6006, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5992, - "src": "12456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_80_by_1", - "typeString": "int_const 80" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6004, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "12421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6008, - "nodeType": "RevertStatement", - "src": "12414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6013, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5992, - "src": "12496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint80_$", - "typeString": "type(uint80)" - }, - "typeName": { - "id": 6011, - "name": "uint80", - "nodeType": "ElementaryTypeName", - "src": "12489:6:28", - "typeDescriptions": {} - } - }, - "id": 6014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - } - }, - "functionReturnParameters": 5996, - "id": 6015, - "nodeType": "Return", - "src": "12482:20:28" - } - ] - }, - "documentation": { - "id": 5990, - "nodeType": "StructuredDocumentation", - "src": "12015:276:28", - "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": 6017, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint80", - "nameLocation": "12305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5993, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5992, - "mutability": "mutable", - "name": "value", - "nameLocation": "12322:5:28", - "nodeType": "VariableDeclaration", - "scope": 6017, - "src": "12314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5991, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12313:15:28" - }, - "returnParameters": { - "id": 5996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5995, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6017, - "src": "12352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - }, - "typeName": { - "id": 5994, - "name": "uint80", - "nodeType": "ElementaryTypeName", - "src": "12352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - } - }, - "visibility": "internal" - } - ], - "src": "12351:8:28" - }, - "scope": 7139, - "src": "12296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6044, - "nodeType": "Block", - "src": "12860:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6025, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6020, - "src": "12874:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12887:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint72_$", - "typeString": "type(uint72)" - }, - "typeName": { - "id": 6027, - "name": "uint72", - "nodeType": "ElementaryTypeName", - "src": "12887:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint72_$", - "typeString": "type(uint72)" - } - ], - "id": 6026, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "12882:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12882:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint72", - "typeString": "type(uint72)" - } - }, - "id": 6030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "12895:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "12882:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint72", - "typeString": "uint72" - } - }, - "src": "12874:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6038, - "nodeType": "IfStatement", - "src": "12870:103:28", - "trueBody": { - "id": 6037, - "nodeType": "Block", - "src": "12900:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3732", - "id": 6033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12952:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_72_by_1", - "typeString": "int_const 72" - }, - "value": "72" - }, - { - "id": 6034, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6020, - "src": "12956:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_72_by_1", - "typeString": "int_const 72" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6032, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "12921:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12921:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6036, - "nodeType": "RevertStatement", - "src": "12914:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6041, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6020, - "src": "12996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint72_$", - "typeString": "type(uint72)" - }, - "typeName": { - "id": 6039, - "name": "uint72", - "nodeType": "ElementaryTypeName", - "src": "12989:6:28", - "typeDescriptions": {} - } - }, - "id": 6042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint72", - "typeString": "uint72" - } - }, - "functionReturnParameters": 6024, - "id": 6043, - "nodeType": "Return", - "src": "12982:20:28" - } - ] - }, - "documentation": { - "id": 6018, - "nodeType": "StructuredDocumentation", - "src": "12515:276:28", - "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": 6045, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint72", - "nameLocation": "12805:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6020, - "mutability": "mutable", - "name": "value", - "nameLocation": "12822:5:28", - "nodeType": "VariableDeclaration", - "scope": 6045, - "src": "12814:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6019, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12814:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12813:15:28" - }, - "returnParameters": { - "id": 6024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6023, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6045, - "src": "12852:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint72", - "typeString": "uint72" - }, - "typeName": { - "id": 6022, - "name": "uint72", - "nodeType": "ElementaryTypeName", - "src": "12852:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint72", - "typeString": "uint72" - } - }, - "visibility": "internal" - } - ], - "src": "12851:8:28" - }, - "scope": 7139, - "src": "12796:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6072, - "nodeType": "Block", - "src": "13360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6053, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6048, - "src": "13374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 6055, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - } - ], - "id": 6054, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "13382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6057, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint64", - "typeString": "type(uint64)" - } - }, - "id": 6058, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "13395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "13382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "13374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6066, - "nodeType": "IfStatement", - "src": "13370:103:28", - "trueBody": { - "id": 6065, - "nodeType": "Block", - "src": "13400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3634", - "id": 6061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - { - "id": 6062, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6048, - "src": "13456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6060, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "13421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6064, - "nodeType": "RevertStatement", - "src": "13414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6069, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6048, - "src": "13496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6068, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 6067, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13489:6:28", - "typeDescriptions": {} - } - }, - "id": 6070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 6052, - "id": 6071, - "nodeType": "Return", - "src": "13482:20:28" - } - ] - }, - "documentation": { - "id": 6046, - "nodeType": "StructuredDocumentation", - "src": "13015:276:28", - "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": 6073, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint64", - "nameLocation": "13305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6048, - "mutability": "mutable", - "name": "value", - "nameLocation": "13322:5:28", - "nodeType": "VariableDeclaration", - "scope": 6073, - "src": "13314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6047, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13313:15:28" - }, - "returnParameters": { - "id": 6052, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6051, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6073, - "src": "13352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 6050, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "13351:8:28" - }, - "scope": 7139, - "src": "13296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6100, - "nodeType": "Block", - "src": "13860:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6081, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6076, - "src": "13874:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13887:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint56_$", - "typeString": "type(uint56)" - }, - "typeName": { - "id": 6083, - "name": "uint56", - "nodeType": "ElementaryTypeName", - "src": "13887:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint56_$", - "typeString": "type(uint56)" - } - ], - "id": 6082, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "13882:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13882:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint56", - "typeString": "type(uint56)" - } - }, - "id": 6086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "13895:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "13882:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint56", - "typeString": "uint56" - } - }, - "src": "13874:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6094, - "nodeType": "IfStatement", - "src": "13870:103:28", - "trueBody": { - "id": 6093, - "nodeType": "Block", - "src": "13900:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3536", - "id": 6089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13952:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_56_by_1", - "typeString": "int_const 56" - }, - "value": "56" - }, - { - "id": 6090, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6076, - "src": "13956:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_56_by_1", - "typeString": "int_const 56" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6088, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "13921:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13921:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6092, - "nodeType": "RevertStatement", - "src": "13914:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6097, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6076, - "src": "13996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6096, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint56_$", - "typeString": "type(uint56)" - }, - "typeName": { - "id": 6095, - "name": "uint56", - "nodeType": "ElementaryTypeName", - "src": "13989:6:28", - "typeDescriptions": {} - } - }, - "id": 6098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint56", - "typeString": "uint56" - } - }, - "functionReturnParameters": 6080, - "id": 6099, - "nodeType": "Return", - "src": "13982:20:28" - } - ] - }, - "documentation": { - "id": 6074, - "nodeType": "StructuredDocumentation", - "src": "13515:276:28", - "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": 6101, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint56", - "nameLocation": "13805:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6077, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6076, - "mutability": "mutable", - "name": "value", - "nameLocation": "13822:5:28", - "nodeType": "VariableDeclaration", - "scope": 6101, - "src": "13814:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6075, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13814:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13813:15:28" - }, - "returnParameters": { - "id": 6080, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6079, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6101, - "src": "13852:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint56", - "typeString": "uint56" - }, - "typeName": { - "id": 6078, - "name": "uint56", - "nodeType": "ElementaryTypeName", - "src": "13852:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint56", - "typeString": "uint56" - } - }, - "visibility": "internal" - } - ], - "src": "13851:8:28" - }, - "scope": 7139, - "src": "13796:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6128, - "nodeType": "Block", - "src": "14360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6109, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6104, - "src": "14374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint48_$", - "typeString": "type(uint48)" - }, - "typeName": { - "id": 6111, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "14387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint48_$", - "typeString": "type(uint48)" - } - ], - "id": 6110, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "14382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint48", - "typeString": "type(uint48)" - } - }, - "id": 6114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "14395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "14382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "src": "14374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6122, - "nodeType": "IfStatement", - "src": "14370:103:28", - "trueBody": { - "id": 6121, - "nodeType": "Block", - "src": "14400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3438", - "id": 6117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - "value": "48" - }, - { - "id": 6118, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6104, - "src": "14456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6116, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "14421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6120, - "nodeType": "RevertStatement", - "src": "14414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6125, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6104, - "src": "14496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6124, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint48_$", - "typeString": "type(uint48)" - }, - "typeName": { - "id": 6123, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "14489:6:28", - "typeDescriptions": {} - } - }, - "id": 6126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "functionReturnParameters": 6108, - "id": 6127, - "nodeType": "Return", - "src": "14482:20:28" - } - ] - }, - "documentation": { - "id": 6102, - "nodeType": "StructuredDocumentation", - "src": "14015:276:28", - "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": 6129, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint48", - "nameLocation": "14305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6104, - "mutability": "mutable", - "name": "value", - "nameLocation": "14322:5:28", - "nodeType": "VariableDeclaration", - "scope": 6129, - "src": "14314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6103, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14313:15:28" - }, - "returnParameters": { - "id": 6108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6107, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6129, - "src": "14352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 6106, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "14352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "14351:8:28" - }, - "scope": 7139, - "src": "14296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6156, - "nodeType": "Block", - "src": "14860:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6137, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "14874:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14887:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint40_$", - "typeString": "type(uint40)" - }, - "typeName": { - "id": 6139, - "name": "uint40", - "nodeType": "ElementaryTypeName", - "src": "14887:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint40_$", - "typeString": "type(uint40)" - } - ], - "id": 6138, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "14882:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14882:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint40", - "typeString": "type(uint40)" - } - }, - "id": 6142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "14895:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "14882:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - } - }, - "src": "14874:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6150, - "nodeType": "IfStatement", - "src": "14870:103:28", - "trueBody": { - "id": 6149, - "nodeType": "Block", - "src": "14900:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3430", - "id": 6145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14952:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - "value": "40" - }, - { - "id": 6146, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "14956:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6144, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "14921:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14921:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6148, - "nodeType": "RevertStatement", - "src": "14914:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6153, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "14996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint40_$", - "typeString": "type(uint40)" - }, - "typeName": { - "id": 6151, - "name": "uint40", - "nodeType": "ElementaryTypeName", - "src": "14989:6:28", - "typeDescriptions": {} - } - }, - "id": 6154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - } - }, - "functionReturnParameters": 6136, - "id": 6155, - "nodeType": "Return", - "src": "14982:20:28" - } - ] - }, - "documentation": { - "id": 6130, - "nodeType": "StructuredDocumentation", - "src": "14515:276:28", - "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": 6157, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint40", - "nameLocation": "14805:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6132, - "mutability": "mutable", - "name": "value", - "nameLocation": "14822:5:28", - "nodeType": "VariableDeclaration", - "scope": 6157, - "src": "14814:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14814:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14813:15:28" - }, - "returnParameters": { - "id": 6136, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6135, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6157, - "src": "14852:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - }, - "typeName": { - "id": 6134, - "name": "uint40", - "nodeType": "ElementaryTypeName", - "src": "14852:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - } - }, - "visibility": "internal" - } - ], - "src": "14851:8:28" - }, - "scope": 7139, - "src": "14796:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6184, - "nodeType": "Block", - "src": "15360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6165, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6160, - "src": "15374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6168, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 6167, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "15387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - } - ], - "id": 6166, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "15382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint32", - "typeString": "type(uint32)" - } - }, - "id": 6170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "15395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "15382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "15374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6178, - "nodeType": "IfStatement", - "src": "15370:103:28", - "trueBody": { - "id": 6177, - "nodeType": "Block", - "src": "15400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3332", - "id": 6173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - { - "id": 6174, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6160, - "src": "15456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6172, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "15421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6176, - "nodeType": "RevertStatement", - "src": "15414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6181, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6160, - "src": "15496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 6179, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "15489:6:28", - "typeDescriptions": {} - } - }, - "id": 6182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 6164, - "id": 6183, - "nodeType": "Return", - "src": "15482:20:28" - } - ] - }, - "documentation": { - "id": 6158, - "nodeType": "StructuredDocumentation", - "src": "15015:276:28", - "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": 6185, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint32", - "nameLocation": "15305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6161, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6160, - "mutability": "mutable", - "name": "value", - "nameLocation": "15322:5:28", - "nodeType": "VariableDeclaration", - "scope": 6185, - "src": "15314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6159, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "15313:15:28" - }, - "returnParameters": { - "id": 6164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6163, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6185, - "src": "15352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 6162, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "15352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "15351:8:28" - }, - "scope": 7139, - "src": "15296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6212, - "nodeType": "Block", - "src": "15860:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6193, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6188, - "src": "15874:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15887:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint24_$", - "typeString": "type(uint24)" - }, - "typeName": { - "id": 6195, - "name": "uint24", - "nodeType": "ElementaryTypeName", - "src": "15887:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint24_$", - "typeString": "type(uint24)" - } - ], - "id": 6194, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "15882:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15882:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint24", - "typeString": "type(uint24)" - } - }, - "id": 6198, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "15895:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "15882:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint24", - "typeString": "uint24" - } - }, - "src": "15874:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6206, - "nodeType": "IfStatement", - "src": "15870:103:28", - "trueBody": { - "id": 6205, - "nodeType": "Block", - "src": "15900:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3234", - "id": 6201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15952:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - "value": "24" - }, - { - "id": 6202, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6188, - "src": "15956:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6200, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "15921:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15921:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6204, - "nodeType": "RevertStatement", - "src": "15914:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6209, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6188, - "src": "15996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint24_$", - "typeString": "type(uint24)" - }, - "typeName": { - "id": 6207, - "name": "uint24", - "nodeType": "ElementaryTypeName", - "src": "15989:6:28", - "typeDescriptions": {} - } - }, - "id": 6210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint24", - "typeString": "uint24" - } - }, - "functionReturnParameters": 6192, - "id": 6211, - "nodeType": "Return", - "src": "15982:20:28" - } - ] - }, - "documentation": { - "id": 6186, - "nodeType": "StructuredDocumentation", - "src": "15515:276:28", - "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": 6213, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint24", - "nameLocation": "15805:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6188, - "mutability": "mutable", - "name": "value", - "nameLocation": "15822:5:28", - "nodeType": "VariableDeclaration", - "scope": 6213, - "src": "15814:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6187, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15814:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "15813:15:28" - }, - "returnParameters": { - "id": 6192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6191, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6213, - "src": "15852:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint24", - "typeString": "uint24" - }, - "typeName": { - "id": 6190, - "name": "uint24", - "nodeType": "ElementaryTypeName", - "src": "15852:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint24", - "typeString": "uint24" - } - }, - "visibility": "internal" - } - ], - "src": "15851:8:28" - }, - "scope": 7139, - "src": "15796:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6240, - "nodeType": "Block", - "src": "16360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6221, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6216, - "src": "16374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6224, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": { - "id": 6223, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "16387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - } - ], - "id": 6222, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "16382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint16", - "typeString": "type(uint16)" - } - }, - "id": 6226, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "16395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "16382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "16374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6234, - "nodeType": "IfStatement", - "src": "16370:103:28", - "trueBody": { - "id": 6233, - "nodeType": "Block", - "src": "16400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3136", - "id": 6229, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - { - "id": 6230, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6216, - "src": "16456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6228, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "16421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6232, - "nodeType": "RevertStatement", - "src": "16414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6237, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6216, - "src": "16496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": { - "id": 6235, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "16489:6:28", - "typeDescriptions": {} - } - }, - "id": 6238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 6220, - "id": 6239, - "nodeType": "Return", - "src": "16482:20:28" - } - ] - }, - "documentation": { - "id": 6214, - "nodeType": "StructuredDocumentation", - "src": "16015:276:28", - "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": 6241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint16", - "nameLocation": "16305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6217, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6216, - "mutability": "mutable", - "name": "value", - "nameLocation": "16322:5:28", - "nodeType": "VariableDeclaration", - "scope": 6241, - "src": "16314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6215, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "16313:15:28" - }, - "returnParameters": { - "id": 6220, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6219, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6241, - "src": "16352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 6218, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "16352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "visibility": "internal" - } - ], - "src": "16351:8:28" - }, - "scope": 7139, - "src": "16296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6268, - "nodeType": "Block", - "src": "16854:146:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6249, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6244, - "src": "16868:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16881:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 6251, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "16881:5:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - } - ], - "id": 6250, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "16876:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16876:11:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint8", - "typeString": "type(uint8)" - } - }, - "id": 6254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "16888:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "16876:15:28", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "16868:23:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6262, - "nodeType": "IfStatement", - "src": "16864:101:28", - "trueBody": { - "id": 6261, - "nodeType": "Block", - "src": "16893:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "38", - "id": 6257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16945:1:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - { - "id": 6258, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6244, - "src": "16948:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6256, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "16914:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16914:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6260, - "nodeType": "RevertStatement", - "src": "16907:47:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6265, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6244, - "src": "16987:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16981:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 6263, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "16981:5:28", - "typeDescriptions": {} - } - }, - "id": 6266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16981:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 6248, - "id": 6267, - "nodeType": "Return", - "src": "16974:19:28" - } - ] - }, - "documentation": { - "id": 6242, - "nodeType": "StructuredDocumentation", - "src": "16515:272:28", - "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": 6269, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint8", - "nameLocation": "16801:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6245, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6244, - "mutability": "mutable", - "name": "value", - "nameLocation": "16817:5:28", - "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "16809:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6243, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16809:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "16808:15:28" - }, - "returnParameters": { - "id": 6248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6247, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "16847:5:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6246, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "16847:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "16846:7:28" - }, - "scope": 7139, - "src": "16792:208:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6291, - "nodeType": "Block", - "src": "17236:128:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6277, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6272, - "src": "17250:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "hexValue": "30", - "id": 6278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17258:1:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17250:9:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6285, - "nodeType": "IfStatement", - "src": "17246:81:28", - "trueBody": { - "id": 6284, - "nodeType": "Block", - "src": "17261:66:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 6281, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6272, - "src": "17310:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6280, - "name": "SafeCastOverflowedIntToUint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5389, - "src": "17282:27:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_int256_$returns$_t_error_$", - "typeString": "function (int256) pure returns (error)" - } - }, - "id": 6282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17282:34:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6283, - "nodeType": "RevertStatement", - "src": "17275:41:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6288, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6272, - "src": "17351:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17343:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6286, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17343:7:28", - "typeDescriptions": {} - } - }, - "id": 6289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17343:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6276, - "id": 6290, - "nodeType": "Return", - "src": "17336:21:28" - } - ] - }, - "documentation": { - "id": 6270, - "nodeType": "StructuredDocumentation", - "src": "17006:160:28", - "text": " @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0." - }, - "id": 6292, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint256", - "nameLocation": "17180:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6272, - "mutability": "mutable", - "name": "value", - "nameLocation": "17197:5:28", - "nodeType": "VariableDeclaration", - "scope": 6292, - "src": "17190:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6271, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "17190:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "17189:14:28" - }, - "returnParameters": { - "id": 6276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6275, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6292, - "src": "17227:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17227:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "17226:9:28" - }, - "scope": 7139, - "src": "17171:193:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6317, - "nodeType": "Block", - "src": "17761:150:28", - "statements": [ - { - "expression": { - "id": 6305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6300, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6298, - "src": "17771:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6303, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6295, - "src": "17791:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17784:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int248_$", - "typeString": "type(int248)" - }, - "typeName": { - "id": 6301, - "name": "int248", - "nodeType": "ElementaryTypeName", - "src": "17784:6:28", - "typeDescriptions": {} - } - }, - "id": 6304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17784:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - } - }, - "src": "17771:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - } - }, - "id": 6306, - "nodeType": "ExpressionStatement", - "src": "17771:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6307, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6298, - "src": "17811:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6308, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6295, - "src": "17825:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "17811:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6316, - "nodeType": "IfStatement", - "src": "17807:98:28", - "trueBody": { - "id": 6315, - "nodeType": "Block", - "src": "17832:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323438", - "id": 6311, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17883:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_248_by_1", - "typeString": "int_const 248" - }, - "value": "248" - }, - { - "id": 6312, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6295, - "src": "17888:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_248_by_1", - "typeString": "int_const 248" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6310, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "17853:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17853:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6314, - "nodeType": "RevertStatement", - "src": "17846:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6293, - "nodeType": "StructuredDocumentation", - "src": "17370:312:28", - "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": 6318, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt248", - "nameLocation": "17696:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6295, - "mutability": "mutable", - "name": "value", - "nameLocation": "17712:5:28", - "nodeType": "VariableDeclaration", - "scope": 6318, - "src": "17705:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6294, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "17705:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "17704:14:28" - }, - "returnParameters": { - "id": 6299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6298, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "17749:10:28", - "nodeType": "VariableDeclaration", - "scope": 6318, - "src": "17742:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - }, - "typeName": { - "id": 6297, - "name": "int248", - "nodeType": "ElementaryTypeName", - "src": "17742:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - } - }, - "visibility": "internal" - } - ], - "src": "17741:19:28" - }, - "scope": 7139, - "src": "17687:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6343, - "nodeType": "Block", - "src": "18308:150:28", - "statements": [ - { - "expression": { - "id": 6331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6326, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "18318:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6329, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6321, - "src": "18338:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6328, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18331:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int240_$", - "typeString": "type(int240)" - }, - "typeName": { - "id": 6327, - "name": "int240", - "nodeType": "ElementaryTypeName", - "src": "18331:6:28", - "typeDescriptions": {} - } - }, - "id": 6330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18331:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - } - }, - "src": "18318:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - } - }, - "id": 6332, - "nodeType": "ExpressionStatement", - "src": "18318:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6333, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "18358:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6334, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6321, - "src": "18372:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "18358:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6342, - "nodeType": "IfStatement", - "src": "18354:98:28", - "trueBody": { - "id": 6341, - "nodeType": "Block", - "src": "18379:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323430", - "id": 6337, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18430:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_240_by_1", - "typeString": "int_const 240" - }, - "value": "240" - }, - { - "id": 6338, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6321, - "src": "18435:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_240_by_1", - "typeString": "int_const 240" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6336, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "18400:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18400:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6340, - "nodeType": "RevertStatement", - "src": "18393:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6319, - "nodeType": "StructuredDocumentation", - "src": "17917:312:28", - "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": 6344, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt240", - "nameLocation": "18243:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6321, - "mutability": "mutable", - "name": "value", - "nameLocation": "18259:5:28", - "nodeType": "VariableDeclaration", - "scope": 6344, - "src": "18252:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6320, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "18252:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "18251:14:28" - }, - "returnParameters": { - "id": 6325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6324, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "18296:10:28", - "nodeType": "VariableDeclaration", - "scope": 6344, - "src": "18289:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - }, - "typeName": { - "id": 6323, - "name": "int240", - "nodeType": "ElementaryTypeName", - "src": "18289:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - } - }, - "visibility": "internal" - } - ], - "src": "18288:19:28" - }, - "scope": 7139, - "src": "18234:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6369, - "nodeType": "Block", - "src": "18855:150:28", - "statements": [ - { - "expression": { - "id": 6357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6352, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6350, - "src": "18865:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6355, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6347, - "src": "18885:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18878:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int232_$", - "typeString": "type(int232)" - }, - "typeName": { - "id": 6353, - "name": "int232", - "nodeType": "ElementaryTypeName", - "src": "18878:6:28", - "typeDescriptions": {} - } - }, - "id": 6356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18878:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - } - }, - "src": "18865:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - } - }, - "id": 6358, - "nodeType": "ExpressionStatement", - "src": "18865:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6359, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6350, - "src": "18905:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6360, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6347, - "src": "18919:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "18905:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6368, - "nodeType": "IfStatement", - "src": "18901:98:28", - "trueBody": { - "id": 6367, - "nodeType": "Block", - "src": "18926:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323332", - "id": 6363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18977:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_232_by_1", - "typeString": "int_const 232" - }, - "value": "232" - }, - { - "id": 6364, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6347, - "src": "18982:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_232_by_1", - "typeString": "int_const 232" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6362, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "18947:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18947:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6366, - "nodeType": "RevertStatement", - "src": "18940:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6345, - "nodeType": "StructuredDocumentation", - "src": "18464:312:28", - "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": 6370, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt232", - "nameLocation": "18790:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6347, - "mutability": "mutable", - "name": "value", - "nameLocation": "18806:5:28", - "nodeType": "VariableDeclaration", - "scope": 6370, - "src": "18799:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6346, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "18799:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "18798:14:28" - }, - "returnParameters": { - "id": 6351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6350, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "18843:10:28", - "nodeType": "VariableDeclaration", - "scope": 6370, - "src": "18836:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - }, - "typeName": { - "id": 6349, - "name": "int232", - "nodeType": "ElementaryTypeName", - "src": "18836:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - } - }, - "visibility": "internal" - } - ], - "src": "18835:19:28" - }, - "scope": 7139, - "src": "18781:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6395, - "nodeType": "Block", - "src": "19402:150:28", - "statements": [ - { - "expression": { - "id": 6383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6378, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6376, - "src": "19412:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6381, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "19432:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19425:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int224_$", - "typeString": "type(int224)" - }, - "typeName": { - "id": 6379, - "name": "int224", - "nodeType": "ElementaryTypeName", - "src": "19425:6:28", - "typeDescriptions": {} - } - }, - "id": 6382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19425:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - } - }, - "src": "19412:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - } - }, - "id": 6384, - "nodeType": "ExpressionStatement", - "src": "19412:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6385, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6376, - "src": "19452:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6386, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "19466:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "19452:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6394, - "nodeType": "IfStatement", - "src": "19448:98:28", - "trueBody": { - "id": 6393, - "nodeType": "Block", - "src": "19473:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323234", - "id": 6389, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19524:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_224_by_1", - "typeString": "int_const 224" - }, - "value": "224" - }, - { - "id": 6390, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "19529:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_224_by_1", - "typeString": "int_const 224" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6388, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "19494:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19494:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6392, - "nodeType": "RevertStatement", - "src": "19487:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6371, - "nodeType": "StructuredDocumentation", - "src": "19011:312:28", - "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": 6396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt224", - "nameLocation": "19337:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6374, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6373, - "mutability": "mutable", - "name": "value", - "nameLocation": "19353:5:28", - "nodeType": "VariableDeclaration", - "scope": 6396, - "src": "19346:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6372, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "19346:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "19345:14:28" - }, - "returnParameters": { - "id": 6377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6376, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "19390:10:28", - "nodeType": "VariableDeclaration", - "scope": 6396, - "src": "19383:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - }, - "typeName": { - "id": 6375, - "name": "int224", - "nodeType": "ElementaryTypeName", - "src": "19383:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - } - }, - "visibility": "internal" - } - ], - "src": "19382:19:28" - }, - "scope": 7139, - "src": "19328:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6421, - "nodeType": "Block", - "src": "19949:150:28", - "statements": [ - { - "expression": { - "id": 6409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6404, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6402, - "src": "19959:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6407, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6399, - "src": "19979:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6406, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19972:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int216_$", - "typeString": "type(int216)" - }, - "typeName": { - "id": 6405, - "name": "int216", - "nodeType": "ElementaryTypeName", - "src": "19972:6:28", - "typeDescriptions": {} - } - }, - "id": 6408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19972:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - } - }, - "src": "19959:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - } - }, - "id": 6410, - "nodeType": "ExpressionStatement", - "src": "19959:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6411, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6402, - "src": "19999:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6412, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6399, - "src": "20013:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "19999:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6420, - "nodeType": "IfStatement", - "src": "19995:98:28", - "trueBody": { - "id": 6419, - "nodeType": "Block", - "src": "20020:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323136", - "id": 6415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20071:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_216_by_1", - "typeString": "int_const 216" - }, - "value": "216" - }, - { - "id": 6416, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6399, - "src": "20076:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_216_by_1", - "typeString": "int_const 216" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6414, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "20041:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20041:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6418, - "nodeType": "RevertStatement", - "src": "20034:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6397, - "nodeType": "StructuredDocumentation", - "src": "19558:312:28", - "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": 6422, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt216", - "nameLocation": "19884:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6399, - "mutability": "mutable", - "name": "value", - "nameLocation": "19900:5:28", - "nodeType": "VariableDeclaration", - "scope": 6422, - "src": "19893:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6398, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "19893:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "19892:14:28" - }, - "returnParameters": { - "id": 6403, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6402, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "19937:10:28", - "nodeType": "VariableDeclaration", - "scope": 6422, - "src": "19930:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - }, - "typeName": { - "id": 6401, - "name": "int216", - "nodeType": "ElementaryTypeName", - "src": "19930:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - } - }, - "visibility": "internal" - } - ], - "src": "19929:19:28" - }, - "scope": 7139, - "src": "19875:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6447, - "nodeType": "Block", - "src": "20496:150:28", - "statements": [ - { - "expression": { - "id": 6435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6430, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "20506:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6433, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6425, - "src": "20526:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20519:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int208_$", - "typeString": "type(int208)" - }, - "typeName": { - "id": 6431, - "name": "int208", - "nodeType": "ElementaryTypeName", - "src": "20519:6:28", - "typeDescriptions": {} - } - }, - "id": 6434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20519:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - } - }, - "src": "20506:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - } - }, - "id": 6436, - "nodeType": "ExpressionStatement", - "src": "20506:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6437, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "20546:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6438, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6425, - "src": "20560:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "20546:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6446, - "nodeType": "IfStatement", - "src": "20542:98:28", - "trueBody": { - "id": 6445, - "nodeType": "Block", - "src": "20567:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323038", - "id": 6441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20618:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_208_by_1", - "typeString": "int_const 208" - }, - "value": "208" - }, - { - "id": 6442, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6425, - "src": "20623:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_208_by_1", - "typeString": "int_const 208" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6440, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "20588:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20588:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6444, - "nodeType": "RevertStatement", - "src": "20581:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6423, - "nodeType": "StructuredDocumentation", - "src": "20105:312:28", - "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": 6448, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt208", - "nameLocation": "20431:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6425, - "mutability": "mutable", - "name": "value", - "nameLocation": "20447:5:28", - "nodeType": "VariableDeclaration", - "scope": 6448, - "src": "20440:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6424, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "20440:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "20439:14:28" - }, - "returnParameters": { - "id": 6429, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6428, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "20484:10:28", - "nodeType": "VariableDeclaration", - "scope": 6448, - "src": "20477:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - }, - "typeName": { - "id": 6427, - "name": "int208", - "nodeType": "ElementaryTypeName", - "src": "20477:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - } - }, - "visibility": "internal" - } - ], - "src": "20476:19:28" - }, - "scope": 7139, - "src": "20422:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6473, - "nodeType": "Block", - "src": "21043:150:28", - "statements": [ - { - "expression": { - "id": 6461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6456, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6454, - "src": "21053:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6459, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6451, - "src": "21073:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21066:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int200_$", - "typeString": "type(int200)" - }, - "typeName": { - "id": 6457, - "name": "int200", - "nodeType": "ElementaryTypeName", - "src": "21066:6:28", - "typeDescriptions": {} - } - }, - "id": 6460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21066:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - } - }, - "src": "21053:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - } - }, - "id": 6462, - "nodeType": "ExpressionStatement", - "src": "21053:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6463, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6454, - "src": "21093:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6464, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6451, - "src": "21107:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "21093:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6472, - "nodeType": "IfStatement", - "src": "21089:98:28", - "trueBody": { - "id": 6471, - "nodeType": "Block", - "src": "21114:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323030", - "id": 6467, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21165:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" - }, - "value": "200" - }, - { - "id": 6468, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6451, - "src": "21170:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6466, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "21135:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21135:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6470, - "nodeType": "RevertStatement", - "src": "21128:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6449, - "nodeType": "StructuredDocumentation", - "src": "20652:312:28", - "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": 6474, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt200", - "nameLocation": "20978:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6452, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6451, - "mutability": "mutable", - "name": "value", - "nameLocation": "20994:5:28", - "nodeType": "VariableDeclaration", - "scope": 6474, - "src": "20987:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6450, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "20987:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "20986:14:28" - }, - "returnParameters": { - "id": 6455, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6454, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "21031:10:28", - "nodeType": "VariableDeclaration", - "scope": 6474, - "src": "21024:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - }, - "typeName": { - "id": 6453, - "name": "int200", - "nodeType": "ElementaryTypeName", - "src": "21024:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - } - }, - "visibility": "internal" - } - ], - "src": "21023:19:28" - }, - "scope": 7139, - "src": "20969:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6499, - "nodeType": "Block", - "src": "21590:150:28", - "statements": [ - { - "expression": { - "id": 6487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6482, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6480, - "src": "21600:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6485, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6477, - "src": "21620:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21613:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int192_$", - "typeString": "type(int192)" - }, - "typeName": { - "id": 6483, - "name": "int192", - "nodeType": "ElementaryTypeName", - "src": "21613:6:28", - "typeDescriptions": {} - } - }, - "id": 6486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21613:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - } - }, - "src": "21600:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - } - }, - "id": 6488, - "nodeType": "ExpressionStatement", - "src": "21600:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6489, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6480, - "src": "21640:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6490, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6477, - "src": "21654:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "21640:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6498, - "nodeType": "IfStatement", - "src": "21636:98:28", - "trueBody": { - "id": 6497, - "nodeType": "Block", - "src": "21661:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313932", - "id": 6493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21712:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_192_by_1", - "typeString": "int_const 192" - }, - "value": "192" - }, - { - "id": 6494, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6477, - "src": "21717:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_192_by_1", - "typeString": "int_const 192" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6492, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "21682:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21682:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6496, - "nodeType": "RevertStatement", - "src": "21675:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6475, - "nodeType": "StructuredDocumentation", - "src": "21199:312:28", - "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": 6500, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt192", - "nameLocation": "21525:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6477, - "mutability": "mutable", - "name": "value", - "nameLocation": "21541:5:28", - "nodeType": "VariableDeclaration", - "scope": 6500, - "src": "21534:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6476, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "21534:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "21533:14:28" - }, - "returnParameters": { - "id": 6481, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6480, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "21578:10:28", - "nodeType": "VariableDeclaration", - "scope": 6500, - "src": "21571:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - }, - "typeName": { - "id": 6479, - "name": "int192", - "nodeType": "ElementaryTypeName", - "src": "21571:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - } - }, - "visibility": "internal" - } - ], - "src": "21570:19:28" - }, - "scope": 7139, - "src": "21516:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6525, - "nodeType": "Block", - "src": "22137:150:28", - "statements": [ - { - "expression": { - "id": 6513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6508, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6506, - "src": "22147:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6511, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6503, - "src": "22167:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22160:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int184_$", - "typeString": "type(int184)" - }, - "typeName": { - "id": 6509, - "name": "int184", - "nodeType": "ElementaryTypeName", - "src": "22160:6:28", - "typeDescriptions": {} - } - }, - "id": 6512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22160:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - } - }, - "src": "22147:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - } - }, - "id": 6514, - "nodeType": "ExpressionStatement", - "src": "22147:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6515, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6506, - "src": "22187:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6516, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6503, - "src": "22201:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "22187:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6524, - "nodeType": "IfStatement", - "src": "22183:98:28", - "trueBody": { - "id": 6523, - "nodeType": "Block", - "src": "22208:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313834", - "id": 6519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22259:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_184_by_1", - "typeString": "int_const 184" - }, - "value": "184" - }, - { - "id": 6520, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6503, - "src": "22264:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_184_by_1", - "typeString": "int_const 184" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6518, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "22229:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22229:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6522, - "nodeType": "RevertStatement", - "src": "22222:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6501, - "nodeType": "StructuredDocumentation", - "src": "21746:312:28", - "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": 6526, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt184", - "nameLocation": "22072:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6503, - "mutability": "mutable", - "name": "value", - "nameLocation": "22088:5:28", - "nodeType": "VariableDeclaration", - "scope": 6526, - "src": "22081:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6502, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "22081:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "22080:14:28" - }, - "returnParameters": { - "id": 6507, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6506, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "22125:10:28", - "nodeType": "VariableDeclaration", - "scope": 6526, - "src": "22118:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - }, - "typeName": { - "id": 6505, - "name": "int184", - "nodeType": "ElementaryTypeName", - "src": "22118:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - } - }, - "visibility": "internal" - } - ], - "src": "22117:19:28" - }, - "scope": 7139, - "src": "22063:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6551, - "nodeType": "Block", - "src": "22684:150:28", - "statements": [ - { - "expression": { - "id": 6539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6534, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6532, - "src": "22694:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6537, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "22714:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22707:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int176_$", - "typeString": "type(int176)" - }, - "typeName": { - "id": 6535, - "name": "int176", - "nodeType": "ElementaryTypeName", - "src": "22707:6:28", - "typeDescriptions": {} - } - }, - "id": 6538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22707:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - } - }, - "src": "22694:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - } - }, - "id": 6540, - "nodeType": "ExpressionStatement", - "src": "22694:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6541, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6532, - "src": "22734:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6542, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "22748:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "22734:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6550, - "nodeType": "IfStatement", - "src": "22730:98:28", - "trueBody": { - "id": 6549, - "nodeType": "Block", - "src": "22755:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313736", - "id": 6545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22806:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_176_by_1", - "typeString": "int_const 176" - }, - "value": "176" - }, - { - "id": 6546, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "22811:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_176_by_1", - "typeString": "int_const 176" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6544, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "22776:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22776:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6548, - "nodeType": "RevertStatement", - "src": "22769:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6527, - "nodeType": "StructuredDocumentation", - "src": "22293:312:28", - "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": 6552, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt176", - "nameLocation": "22619:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6529, - "mutability": "mutable", - "name": "value", - "nameLocation": "22635:5:28", - "nodeType": "VariableDeclaration", - "scope": 6552, - "src": "22628:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6528, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "22628:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "22627:14:28" - }, - "returnParameters": { - "id": 6533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6532, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "22672:10:28", - "nodeType": "VariableDeclaration", - "scope": 6552, - "src": "22665:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - }, - "typeName": { - "id": 6531, - "name": "int176", - "nodeType": "ElementaryTypeName", - "src": "22665:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - } - }, - "visibility": "internal" - } - ], - "src": "22664:19:28" - }, - "scope": 7139, - "src": "22610:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6577, - "nodeType": "Block", - "src": "23231:150:28", - "statements": [ - { - "expression": { - "id": 6565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6560, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6558, - "src": "23241:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6563, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6555, - "src": "23261:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6562, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23254:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int168_$", - "typeString": "type(int168)" - }, - "typeName": { - "id": 6561, - "name": "int168", - "nodeType": "ElementaryTypeName", - "src": "23254:6:28", - "typeDescriptions": {} - } - }, - "id": 6564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23254:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - } - }, - "src": "23241:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - } - }, - "id": 6566, - "nodeType": "ExpressionStatement", - "src": "23241:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6567, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6558, - "src": "23281:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6568, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6555, - "src": "23295:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "23281:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6576, - "nodeType": "IfStatement", - "src": "23277:98:28", - "trueBody": { - "id": 6575, - "nodeType": "Block", - "src": "23302:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313638", - "id": 6571, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23353:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_168_by_1", - "typeString": "int_const 168" - }, - "value": "168" - }, - { - "id": 6572, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6555, - "src": "23358:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_168_by_1", - "typeString": "int_const 168" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6570, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "23323:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23323:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6574, - "nodeType": "RevertStatement", - "src": "23316:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6553, - "nodeType": "StructuredDocumentation", - "src": "22840:312:28", - "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": 6578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt168", - "nameLocation": "23166:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6556, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6555, - "mutability": "mutable", - "name": "value", - "nameLocation": "23182:5:28", - "nodeType": "VariableDeclaration", - "scope": 6578, - "src": "23175:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6554, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "23175:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "23174:14:28" - }, - "returnParameters": { - "id": 6559, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6558, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "23219:10:28", - "nodeType": "VariableDeclaration", - "scope": 6578, - "src": "23212:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - }, - "typeName": { - "id": 6557, - "name": "int168", - "nodeType": "ElementaryTypeName", - "src": "23212:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - } - }, - "visibility": "internal" - } - ], - "src": "23211:19:28" - }, - "scope": 7139, - "src": "23157:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6603, - "nodeType": "Block", - "src": "23778:150:28", - "statements": [ - { - "expression": { - "id": 6591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6586, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6584, - "src": "23788:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6589, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6581, - "src": "23808:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23801:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int160_$", - "typeString": "type(int160)" - }, - "typeName": { - "id": 6587, - "name": "int160", - "nodeType": "ElementaryTypeName", - "src": "23801:6:28", - "typeDescriptions": {} - } - }, - "id": 6590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23801:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - } - }, - "src": "23788:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - } - }, - "id": 6592, - "nodeType": "ExpressionStatement", - "src": "23788:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6593, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6584, - "src": "23828:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6594, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6581, - "src": "23842:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "23828:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6602, - "nodeType": "IfStatement", - "src": "23824:98:28", - "trueBody": { - "id": 6601, - "nodeType": "Block", - "src": "23849:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313630", - "id": 6597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23900:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_160_by_1", - "typeString": "int_const 160" - }, - "value": "160" - }, - { - "id": 6598, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6581, - "src": "23905:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_160_by_1", - "typeString": "int_const 160" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6596, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "23870:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23870:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6600, - "nodeType": "RevertStatement", - "src": "23863:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6579, - "nodeType": "StructuredDocumentation", - "src": "23387:312:28", - "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": 6604, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt160", - "nameLocation": "23713:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6582, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6581, - "mutability": "mutable", - "name": "value", - "nameLocation": "23729:5:28", - "nodeType": "VariableDeclaration", - "scope": 6604, - "src": "23722:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6580, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "23722:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "23721:14:28" - }, - "returnParameters": { - "id": 6585, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6584, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "23766:10:28", - "nodeType": "VariableDeclaration", - "scope": 6604, - "src": "23759:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - }, - "typeName": { - "id": 6583, - "name": "int160", - "nodeType": "ElementaryTypeName", - "src": "23759:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - } - }, - "visibility": "internal" - } - ], - "src": "23758:19:28" - }, - "scope": 7139, - "src": "23704:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6629, - "nodeType": "Block", - "src": "24325:150:28", - "statements": [ - { - "expression": { - "id": 6617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6612, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6610, - "src": "24335:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6615, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "24355:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24348:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int152_$", - "typeString": "type(int152)" - }, - "typeName": { - "id": 6613, - "name": "int152", - "nodeType": "ElementaryTypeName", - "src": "24348:6:28", - "typeDescriptions": {} - } - }, - "id": 6616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24348:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - } - }, - "src": "24335:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - } - }, - "id": 6618, - "nodeType": "ExpressionStatement", - "src": "24335:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6619, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6610, - "src": "24375:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6620, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "24389:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "24375:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6628, - "nodeType": "IfStatement", - "src": "24371:98:28", - "trueBody": { - "id": 6627, - "nodeType": "Block", - "src": "24396:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313532", - "id": 6623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24447:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_152_by_1", - "typeString": "int_const 152" - }, - "value": "152" - }, - { - "id": 6624, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "24452:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_152_by_1", - "typeString": "int_const 152" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6622, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "24417:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24417:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6626, - "nodeType": "RevertStatement", - "src": "24410:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6605, - "nodeType": "StructuredDocumentation", - "src": "23934:312:28", - "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": 6630, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt152", - "nameLocation": "24260:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6608, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6607, - "mutability": "mutable", - "name": "value", - "nameLocation": "24276:5:28", - "nodeType": "VariableDeclaration", - "scope": 6630, - "src": "24269:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6606, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "24269:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "24268:14:28" - }, - "returnParameters": { - "id": 6611, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6610, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "24313:10:28", - "nodeType": "VariableDeclaration", - "scope": 6630, - "src": "24306:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - }, - "typeName": { - "id": 6609, - "name": "int152", - "nodeType": "ElementaryTypeName", - "src": "24306:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - } - }, - "visibility": "internal" - } - ], - "src": "24305:19:28" - }, - "scope": 7139, - "src": "24251:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6655, - "nodeType": "Block", - "src": "24872:150:28", - "statements": [ - { - "expression": { - "id": 6643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6638, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6636, - "src": "24882:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6641, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6633, - "src": "24902:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24895:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int144_$", - "typeString": "type(int144)" - }, - "typeName": { - "id": 6639, - "name": "int144", - "nodeType": "ElementaryTypeName", - "src": "24895:6:28", - "typeDescriptions": {} - } - }, - "id": 6642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24895:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - } - }, - "src": "24882:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - } - }, - "id": 6644, - "nodeType": "ExpressionStatement", - "src": "24882:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6645, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6636, - "src": "24922:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6646, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6633, - "src": "24936:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "24922:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6654, - "nodeType": "IfStatement", - "src": "24918:98:28", - "trueBody": { - "id": 6653, - "nodeType": "Block", - "src": "24943:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313434", - "id": 6649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24994:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_144_by_1", - "typeString": "int_const 144" - }, - "value": "144" - }, - { - "id": 6650, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6633, - "src": "24999:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_144_by_1", - "typeString": "int_const 144" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6648, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "24964:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24964:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6652, - "nodeType": "RevertStatement", - "src": "24957:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6631, - "nodeType": "StructuredDocumentation", - "src": "24481:312:28", - "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": 6656, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt144", - "nameLocation": "24807:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6634, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6633, - "mutability": "mutable", - "name": "value", - "nameLocation": "24823:5:28", - "nodeType": "VariableDeclaration", - "scope": 6656, - "src": "24816:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6632, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "24816:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "24815:14:28" - }, - "returnParameters": { - "id": 6637, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6636, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "24860:10:28", - "nodeType": "VariableDeclaration", - "scope": 6656, - "src": "24853:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - }, - "typeName": { - "id": 6635, - "name": "int144", - "nodeType": "ElementaryTypeName", - "src": "24853:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - } - }, - "visibility": "internal" - } - ], - "src": "24852:19:28" - }, - "scope": 7139, - "src": "24798:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6681, - "nodeType": "Block", - "src": "25419:150:28", - "statements": [ - { - "expression": { - "id": 6669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6664, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6662, - "src": "25429:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6667, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6659, - "src": "25449:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "25442:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int136_$", - "typeString": "type(int136)" - }, - "typeName": { - "id": 6665, - "name": "int136", - "nodeType": "ElementaryTypeName", - "src": "25442:6:28", - "typeDescriptions": {} - } - }, - "id": 6668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25442:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - } - }, - "src": "25429:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - } - }, - "id": 6670, - "nodeType": "ExpressionStatement", - "src": "25429:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6671, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6662, - "src": "25469:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6672, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6659, - "src": "25483:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "25469:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6680, - "nodeType": "IfStatement", - "src": "25465:98:28", - "trueBody": { - "id": 6679, - "nodeType": "Block", - "src": "25490:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313336", - "id": 6675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25541:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_136_by_1", - "typeString": "int_const 136" - }, - "value": "136" - }, - { - "id": 6676, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6659, - "src": "25546:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_136_by_1", - "typeString": "int_const 136" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6674, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "25511:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25511:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6678, - "nodeType": "RevertStatement", - "src": "25504:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6657, - "nodeType": "StructuredDocumentation", - "src": "25028:312:28", - "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": 6682, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt136", - "nameLocation": "25354:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6659, - "mutability": "mutable", - "name": "value", - "nameLocation": "25370:5:28", - "nodeType": "VariableDeclaration", - "scope": 6682, - "src": "25363:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6658, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "25363:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "25362:14:28" - }, - "returnParameters": { - "id": 6663, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6662, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "25407:10:28", - "nodeType": "VariableDeclaration", - "scope": 6682, - "src": "25400:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - }, - "typeName": { - "id": 6661, - "name": "int136", - "nodeType": "ElementaryTypeName", - "src": "25400:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - } - }, - "visibility": "internal" - } - ], - "src": "25399:19:28" - }, - "scope": 7139, - "src": "25345:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6707, - "nodeType": "Block", - "src": "25966:150:28", - "statements": [ - { - "expression": { - "id": 6695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6690, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6688, - "src": "25976:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6693, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6685, - "src": "25996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "25989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int128_$", - "typeString": "type(int128)" - }, - "typeName": { - "id": 6691, - "name": "int128", - "nodeType": "ElementaryTypeName", - "src": "25989:6:28", - "typeDescriptions": {} - } - }, - "id": 6694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - } - }, - "src": "25976:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - } - }, - "id": 6696, - "nodeType": "ExpressionStatement", - "src": "25976:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6697, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6688, - "src": "26016:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6698, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6685, - "src": "26030:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "26016:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6706, - "nodeType": "IfStatement", - "src": "26012:98:28", - "trueBody": { - "id": 6705, - "nodeType": "Block", - "src": "26037:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313238", - "id": 6701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26088:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - { - "id": 6702, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6685, - "src": "26093:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6700, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "26058:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26058:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6704, - "nodeType": "RevertStatement", - "src": "26051:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6683, - "nodeType": "StructuredDocumentation", - "src": "25575:312:28", - "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": 6708, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt128", - "nameLocation": "25901:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6686, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6685, - "mutability": "mutable", - "name": "value", - "nameLocation": "25917:5:28", - "nodeType": "VariableDeclaration", - "scope": 6708, - "src": "25910:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6684, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "25910:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "25909:14:28" - }, - "returnParameters": { - "id": 6689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6688, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "25954:10:28", - "nodeType": "VariableDeclaration", - "scope": 6708, - "src": "25947:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - }, - "typeName": { - "id": 6687, - "name": "int128", - "nodeType": "ElementaryTypeName", - "src": "25947:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - } - }, - "visibility": "internal" - } - ], - "src": "25946:19:28" - }, - "scope": 7139, - "src": "25892:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6733, - "nodeType": "Block", - "src": "26513:150:28", - "statements": [ - { - "expression": { - "id": 6721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6716, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6714, - "src": "26523:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6719, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6711, - "src": "26543:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "26536:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int120_$", - "typeString": "type(int120)" - }, - "typeName": { - "id": 6717, - "name": "int120", - "nodeType": "ElementaryTypeName", - "src": "26536:6:28", - "typeDescriptions": {} - } - }, - "id": 6720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26536:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - } - }, - "src": "26523:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - } - }, - "id": 6722, - "nodeType": "ExpressionStatement", - "src": "26523:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6723, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6714, - "src": "26563:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6724, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6711, - "src": "26577:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "26563:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6732, - "nodeType": "IfStatement", - "src": "26559:98:28", - "trueBody": { - "id": 6731, - "nodeType": "Block", - "src": "26584:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313230", - "id": 6727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26635:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - "value": "120" - }, - { - "id": 6728, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6711, - "src": "26640:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6726, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "26605:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26605:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6730, - "nodeType": "RevertStatement", - "src": "26598:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6709, - "nodeType": "StructuredDocumentation", - "src": "26122:312:28", - "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": 6734, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt120", - "nameLocation": "26448:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6712, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6711, - "mutability": "mutable", - "name": "value", - "nameLocation": "26464:5:28", - "nodeType": "VariableDeclaration", - "scope": 6734, - "src": "26457:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6710, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "26457:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "26456:14:28" - }, - "returnParameters": { - "id": 6715, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6714, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "26501:10:28", - "nodeType": "VariableDeclaration", - "scope": 6734, - "src": "26494:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - }, - "typeName": { - "id": 6713, - "name": "int120", - "nodeType": "ElementaryTypeName", - "src": "26494:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - } - }, - "visibility": "internal" - } - ], - "src": "26493:19:28" - }, - "scope": 7139, - "src": "26439:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6759, - "nodeType": "Block", - "src": "27060:150:28", - "statements": [ - { - "expression": { - "id": 6747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6742, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6740, - "src": "27070:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6745, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6737, - "src": "27090:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "27083:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int112_$", - "typeString": "type(int112)" - }, - "typeName": { - "id": 6743, - "name": "int112", - "nodeType": "ElementaryTypeName", - "src": "27083:6:28", - "typeDescriptions": {} - } - }, - "id": 6746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27083:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - } - }, - "src": "27070:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - } - }, - "id": 6748, - "nodeType": "ExpressionStatement", - "src": "27070:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6749, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6740, - "src": "27110:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6750, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6737, - "src": "27124:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "27110:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6758, - "nodeType": "IfStatement", - "src": "27106:98:28", - "trueBody": { - "id": 6757, - "nodeType": "Block", - "src": "27131:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313132", - "id": 6753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27182:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - "value": "112" - }, - { - "id": 6754, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6737, - "src": "27187:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6752, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "27152:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27152:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6756, - "nodeType": "RevertStatement", - "src": "27145:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6735, - "nodeType": "StructuredDocumentation", - "src": "26669:312:28", - "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": 6760, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt112", - "nameLocation": "26995:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6738, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6737, - "mutability": "mutable", - "name": "value", - "nameLocation": "27011:5:28", - "nodeType": "VariableDeclaration", - "scope": 6760, - "src": "27004:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6736, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "27004:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "27003:14:28" - }, - "returnParameters": { - "id": 6741, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6740, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "27048:10:28", - "nodeType": "VariableDeclaration", - "scope": 6760, - "src": "27041:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - }, - "typeName": { - "id": 6739, - "name": "int112", - "nodeType": "ElementaryTypeName", - "src": "27041:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - } - }, - "visibility": "internal" - } - ], - "src": "27040:19:28" - }, - "scope": 7139, - "src": "26986:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6785, - "nodeType": "Block", - "src": "27607:150:28", - "statements": [ - { - "expression": { - "id": 6773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6768, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6766, - "src": "27617:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6771, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6763, - "src": "27637:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "27630:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int104_$", - "typeString": "type(int104)" - }, - "typeName": { - "id": 6769, - "name": "int104", - "nodeType": "ElementaryTypeName", - "src": "27630:6:28", - "typeDescriptions": {} - } - }, - "id": 6772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27630:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - } - }, - "src": "27617:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - } - }, - "id": 6774, - "nodeType": "ExpressionStatement", - "src": "27617:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6775, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6766, - "src": "27657:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6776, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6763, - "src": "27671:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "27657:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6784, - "nodeType": "IfStatement", - "src": "27653:98:28", - "trueBody": { - "id": 6783, - "nodeType": "Block", - "src": "27678:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313034", - "id": 6779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27729:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_104_by_1", - "typeString": "int_const 104" - }, - "value": "104" - }, - { - "id": 6780, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6763, - "src": "27734:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_104_by_1", - "typeString": "int_const 104" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6778, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "27699:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27699:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6782, - "nodeType": "RevertStatement", - "src": "27692:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6761, - "nodeType": "StructuredDocumentation", - "src": "27216:312:28", - "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": 6786, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt104", - "nameLocation": "27542:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6764, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6763, - "mutability": "mutable", - "name": "value", - "nameLocation": "27558:5:28", - "nodeType": "VariableDeclaration", - "scope": 6786, - "src": "27551:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6762, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "27551:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "27550:14:28" - }, - "returnParameters": { - "id": 6767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6766, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "27595:10:28", - "nodeType": "VariableDeclaration", - "scope": 6786, - "src": "27588:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - }, - "typeName": { - "id": 6765, - "name": "int104", - "nodeType": "ElementaryTypeName", - "src": "27588:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - } - }, - "visibility": "internal" - } - ], - "src": "27587:19:28" - }, - "scope": 7139, - "src": "27533:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6811, - "nodeType": "Block", - "src": "28147:148:28", - "statements": [ - { - "expression": { - "id": 6799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6794, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6792, - "src": "28157:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6797, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "28176:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28170:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int96_$", - "typeString": "type(int96)" - }, - "typeName": { - "id": 6795, - "name": "int96", - "nodeType": "ElementaryTypeName", - "src": "28170:5:28", - "typeDescriptions": {} - } - }, - "id": 6798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28170:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - } - }, - "src": "28157:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - } - }, - "id": 6800, - "nodeType": "ExpressionStatement", - "src": "28157:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6801, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6792, - "src": "28196:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6802, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "28210:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "28196:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6810, - "nodeType": "IfStatement", - "src": "28192:97:28", - "trueBody": { - "id": 6809, - "nodeType": "Block", - "src": "28217:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3936", - "id": 6805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28268:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - "value": "96" - }, - { - "id": 6806, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "28272:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6804, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "28238:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28238:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6808, - "nodeType": "RevertStatement", - "src": "28231:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6787, - "nodeType": "StructuredDocumentation", - "src": "27763:307:28", - "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": 6812, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt96", - "nameLocation": "28084:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6790, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6789, - "mutability": "mutable", - "name": "value", - "nameLocation": "28099:5:28", - "nodeType": "VariableDeclaration", - "scope": 6812, - "src": "28092:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6788, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "28092:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "28091:14:28" - }, - "returnParameters": { - "id": 6793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6792, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "28135:10:28", - "nodeType": "VariableDeclaration", - "scope": 6812, - "src": "28129:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - }, - "typeName": { - "id": 6791, - "name": "int96", - "nodeType": "ElementaryTypeName", - "src": "28129:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - } - }, - "visibility": "internal" - } - ], - "src": "28128:18:28" - }, - "scope": 7139, - "src": "28075:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6837, - "nodeType": "Block", - "src": "28685:148:28", - "statements": [ - { - "expression": { - "id": 6825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6820, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6818, - "src": "28695:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6823, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6815, - "src": "28714:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28708:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int88_$", - "typeString": "type(int88)" - }, - "typeName": { - "id": 6821, - "name": "int88", - "nodeType": "ElementaryTypeName", - "src": "28708:5:28", - "typeDescriptions": {} - } - }, - "id": 6824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28708:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - } - }, - "src": "28695:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - } - }, - "id": 6826, - "nodeType": "ExpressionStatement", - "src": "28695:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6827, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6818, - "src": "28734:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6828, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6815, - "src": "28748:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "28734:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6836, - "nodeType": "IfStatement", - "src": "28730:97:28", - "trueBody": { - "id": 6835, - "nodeType": "Block", - "src": "28755:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3838", - "id": 6831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28806:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_88_by_1", - "typeString": "int_const 88" - }, - "value": "88" - }, - { - "id": 6832, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6815, - "src": "28810:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_88_by_1", - "typeString": "int_const 88" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6830, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "28776:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28776:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6834, - "nodeType": "RevertStatement", - "src": "28769:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6813, - "nodeType": "StructuredDocumentation", - "src": "28301:307:28", - "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": 6838, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt88", - "nameLocation": "28622:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6815, - "mutability": "mutable", - "name": "value", - "nameLocation": "28637:5:28", - "nodeType": "VariableDeclaration", - "scope": 6838, - "src": "28630:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6814, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "28630:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "28629:14:28" - }, - "returnParameters": { - "id": 6819, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6818, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "28673:10:28", - "nodeType": "VariableDeclaration", - "scope": 6838, - "src": "28667:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - }, - "typeName": { - "id": 6817, - "name": "int88", - "nodeType": "ElementaryTypeName", - "src": "28667:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - } - }, - "visibility": "internal" - } - ], - "src": "28666:18:28" - }, - "scope": 7139, - "src": "28613:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6863, - "nodeType": "Block", - "src": "29223:148:28", - "statements": [ - { - "expression": { - "id": 6851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6846, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6844, - "src": "29233:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6849, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6841, - "src": "29252:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "29246:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int80_$", - "typeString": "type(int80)" - }, - "typeName": { - "id": 6847, - "name": "int80", - "nodeType": "ElementaryTypeName", - "src": "29246:5:28", - "typeDescriptions": {} - } - }, - "id": 6850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29246:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - } - }, - "src": "29233:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - } - }, - "id": 6852, - "nodeType": "ExpressionStatement", - "src": "29233:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6853, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6844, - "src": "29272:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6854, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6841, - "src": "29286:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "29272:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6862, - "nodeType": "IfStatement", - "src": "29268:97:28", - "trueBody": { - "id": 6861, - "nodeType": "Block", - "src": "29293:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3830", - "id": 6857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29344:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_80_by_1", - "typeString": "int_const 80" - }, - "value": "80" - }, - { - "id": 6858, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6841, - "src": "29348:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_80_by_1", - "typeString": "int_const 80" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6856, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "29314:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29314:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6860, - "nodeType": "RevertStatement", - "src": "29307:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6839, - "nodeType": "StructuredDocumentation", - "src": "28839:307:28", - "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": 6864, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt80", - "nameLocation": "29160:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6842, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6841, - "mutability": "mutable", - "name": "value", - "nameLocation": "29175:5:28", - "nodeType": "VariableDeclaration", - "scope": 6864, - "src": "29168:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6840, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "29168:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "29167:14:28" - }, - "returnParameters": { - "id": 6845, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6844, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "29211:10:28", - "nodeType": "VariableDeclaration", - "scope": 6864, - "src": "29205:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - }, - "typeName": { - "id": 6843, - "name": "int80", - "nodeType": "ElementaryTypeName", - "src": "29205:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - } - }, - "visibility": "internal" - } - ], - "src": "29204:18:28" - }, - "scope": 7139, - "src": "29151:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6889, - "nodeType": "Block", - "src": "29761:148:28", - "statements": [ - { - "expression": { - "id": 6877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6872, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6870, - "src": "29771:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6875, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6867, - "src": "29790:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "29784:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int72_$", - "typeString": "type(int72)" - }, - "typeName": { - "id": 6873, - "name": "int72", - "nodeType": "ElementaryTypeName", - "src": "29784:5:28", - "typeDescriptions": {} - } - }, - "id": 6876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29784:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - } - }, - "src": "29771:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - } - }, - "id": 6878, - "nodeType": "ExpressionStatement", - "src": "29771:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6879, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6870, - "src": "29810:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6880, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6867, - "src": "29824:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "29810:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6888, - "nodeType": "IfStatement", - "src": "29806:97:28", - "trueBody": { - "id": 6887, - "nodeType": "Block", - "src": "29831:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3732", - "id": 6883, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29882:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_72_by_1", - "typeString": "int_const 72" - }, - "value": "72" - }, - { - "id": 6884, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6867, - "src": "29886:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_72_by_1", - "typeString": "int_const 72" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6882, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "29852:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29852:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6886, - "nodeType": "RevertStatement", - "src": "29845:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6865, - "nodeType": "StructuredDocumentation", - "src": "29377:307:28", - "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": 6890, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt72", - "nameLocation": "29698:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6867, - "mutability": "mutable", - "name": "value", - "nameLocation": "29713:5:28", - "nodeType": "VariableDeclaration", - "scope": 6890, - "src": "29706:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6866, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "29706:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "29705:14:28" - }, - "returnParameters": { - "id": 6871, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6870, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "29749:10:28", - "nodeType": "VariableDeclaration", - "scope": 6890, - "src": "29743:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - }, - "typeName": { - "id": 6869, - "name": "int72", - "nodeType": "ElementaryTypeName", - "src": "29743:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - } - }, - "visibility": "internal" - } - ], - "src": "29742:18:28" - }, - "scope": 7139, - "src": "29689:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6915, - "nodeType": "Block", - "src": "30299:148:28", - "statements": [ - { - "expression": { - "id": 6903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6898, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6896, - "src": "30309:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6901, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6893, - "src": "30328:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "30322:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int64_$", - "typeString": "type(int64)" - }, - "typeName": { - "id": 6899, - "name": "int64", - "nodeType": "ElementaryTypeName", - "src": "30322:5:28", - "typeDescriptions": {} - } - }, - "id": 6902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30322:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - } - }, - "src": "30309:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - } - }, - "id": 6904, - "nodeType": "ExpressionStatement", - "src": "30309:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6905, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6896, - "src": "30348:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6906, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6893, - "src": "30362:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "30348:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6914, - "nodeType": "IfStatement", - "src": "30344:97:28", - "trueBody": { - "id": 6913, - "nodeType": "Block", - "src": "30369:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3634", - "id": 6909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "30420:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - { - "id": 6910, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6893, - "src": "30424:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6908, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "30390:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30390:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6912, - "nodeType": "RevertStatement", - "src": "30383:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6891, - "nodeType": "StructuredDocumentation", - "src": "29915:307:28", - "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": 6916, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt64", - "nameLocation": "30236:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6894, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6893, - "mutability": "mutable", - "name": "value", - "nameLocation": "30251:5:28", - "nodeType": "VariableDeclaration", - "scope": 6916, - "src": "30244:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6892, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "30244:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "30243:14:28" - }, - "returnParameters": { - "id": 6897, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6896, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "30287:10:28", - "nodeType": "VariableDeclaration", - "scope": 6916, - "src": "30281:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - }, - "typeName": { - "id": 6895, - "name": "int64", - "nodeType": "ElementaryTypeName", - "src": "30281:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - } - }, - "visibility": "internal" - } - ], - "src": "30280:18:28" - }, - "scope": 7139, - "src": "30227:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6941, - "nodeType": "Block", - "src": "30837:148:28", - "statements": [ - { - "expression": { - "id": 6929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6924, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6922, - "src": "30847:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6927, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6919, - "src": "30866:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "30860:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int56_$", - "typeString": "type(int56)" - }, - "typeName": { - "id": 6925, - "name": "int56", - "nodeType": "ElementaryTypeName", - "src": "30860:5:28", - "typeDescriptions": {} - } - }, - "id": 6928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30860:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - } - }, - "src": "30847:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - } - }, - "id": 6930, - "nodeType": "ExpressionStatement", - "src": "30847:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6931, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6922, - "src": "30886:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6932, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6919, - "src": "30900:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "30886:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6940, - "nodeType": "IfStatement", - "src": "30882:97:28", - "trueBody": { - "id": 6939, - "nodeType": "Block", - "src": "30907:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3536", - "id": 6935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "30958:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_56_by_1", - "typeString": "int_const 56" - }, - "value": "56" - }, - { - "id": 6936, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6919, - "src": "30962:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_56_by_1", - "typeString": "int_const 56" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6934, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "30928:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30928:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6938, - "nodeType": "RevertStatement", - "src": "30921:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6917, - "nodeType": "StructuredDocumentation", - "src": "30453:307:28", - "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": 6942, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt56", - "nameLocation": "30774:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6920, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6919, - "mutability": "mutable", - "name": "value", - "nameLocation": "30789:5:28", - "nodeType": "VariableDeclaration", - "scope": 6942, - "src": "30782:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6918, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "30782:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "30781:14:28" - }, - "returnParameters": { - "id": 6923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6922, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "30825:10:28", - "nodeType": "VariableDeclaration", - "scope": 6942, - "src": "30819:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - }, - "typeName": { - "id": 6921, - "name": "int56", - "nodeType": "ElementaryTypeName", - "src": "30819:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - } - }, - "visibility": "internal" - } - ], - "src": "30818:18:28" - }, - "scope": 7139, - "src": "30765:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6967, - "nodeType": "Block", - "src": "31375:148:28", - "statements": [ - { - "expression": { - "id": 6955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6950, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6948, - "src": "31385:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6953, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6945, - "src": "31404:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "31398:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int48_$", - "typeString": "type(int48)" - }, - "typeName": { - "id": 6951, - "name": "int48", - "nodeType": "ElementaryTypeName", - "src": "31398:5:28", - "typeDescriptions": {} - } - }, - "id": 6954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31398:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - } - }, - "src": "31385:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - } - }, - "id": 6956, - "nodeType": "ExpressionStatement", - "src": "31385:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6957, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6948, - "src": "31424:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6958, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6945, - "src": "31438:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "31424:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6966, - "nodeType": "IfStatement", - "src": "31420:97:28", - "trueBody": { - "id": 6965, - "nodeType": "Block", - "src": "31445:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3438", - "id": 6961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31496:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - "value": "48" - }, - { - "id": 6962, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6945, - "src": "31500:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6960, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "31466:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31466:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6964, - "nodeType": "RevertStatement", - "src": "31459:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6943, - "nodeType": "StructuredDocumentation", - "src": "30991:307:28", - "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": 6968, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt48", - "nameLocation": "31312:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6945, - "mutability": "mutable", - "name": "value", - "nameLocation": "31327:5:28", - "nodeType": "VariableDeclaration", - "scope": 6968, - "src": "31320:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6944, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "31320:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "31319:14:28" - }, - "returnParameters": { - "id": 6949, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6948, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "31363:10:28", - "nodeType": "VariableDeclaration", - "scope": 6968, - "src": "31357:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - }, - "typeName": { - "id": 6947, - "name": "int48", - "nodeType": "ElementaryTypeName", - "src": "31357:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - } - }, - "visibility": "internal" - } - ], - "src": "31356:18:28" - }, - "scope": 7139, - "src": "31303:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6993, - "nodeType": "Block", - "src": "31913:148:28", - "statements": [ - { - "expression": { - "id": 6981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6976, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6974, - "src": "31923:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6979, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6971, - "src": "31942:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "31936:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int40_$", - "typeString": "type(int40)" - }, - "typeName": { - "id": 6977, - "name": "int40", - "nodeType": "ElementaryTypeName", - "src": "31936:5:28", - "typeDescriptions": {} - } - }, - "id": 6980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31936:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - } - }, - "src": "31923:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - } - }, - "id": 6982, - "nodeType": "ExpressionStatement", - "src": "31923:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6983, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6974, - "src": "31962:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6984, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6971, - "src": "31976:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "31962:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6992, - "nodeType": "IfStatement", - "src": "31958:97:28", - "trueBody": { - "id": 6991, - "nodeType": "Block", - "src": "31983:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3430", - "id": 6987, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32034:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - "value": "40" - }, - { - "id": 6988, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6971, - "src": "32038:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6986, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "32004:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32004:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6990, - "nodeType": "RevertStatement", - "src": "31997:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6969, - "nodeType": "StructuredDocumentation", - "src": "31529:307:28", - "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": 6994, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt40", - "nameLocation": "31850:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6971, - "mutability": "mutable", - "name": "value", - "nameLocation": "31865:5:28", - "nodeType": "VariableDeclaration", - "scope": 6994, - "src": "31858:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6970, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "31858:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "31857:14:28" - }, - "returnParameters": { - "id": 6975, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6974, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "31901:10:28", - "nodeType": "VariableDeclaration", - "scope": 6994, - "src": "31895:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - }, - "typeName": { - "id": 6973, - "name": "int40", - "nodeType": "ElementaryTypeName", - "src": "31895:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - } - }, - "visibility": "internal" - } - ], - "src": "31894:18:28" - }, - "scope": 7139, - "src": "31841:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7019, - "nodeType": "Block", - "src": "32451:148:28", - "statements": [ - { - "expression": { - "id": 7007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7002, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7000, - "src": "32461:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7005, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6997, - "src": "32480:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "32474:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int32_$", - "typeString": "type(int32)" - }, - "typeName": { - "id": 7003, - "name": "int32", - "nodeType": "ElementaryTypeName", - "src": "32474:5:28", - "typeDescriptions": {} - } - }, - "id": 7006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32474:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - } - }, - "src": "32461:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - } - }, - "id": 7008, - "nodeType": "ExpressionStatement", - "src": "32461:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7009, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7000, - "src": "32500:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7010, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6997, - "src": "32514:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "32500:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7018, - "nodeType": "IfStatement", - "src": "32496:97:28", - "trueBody": { - "id": 7017, - "nodeType": "Block", - "src": "32521:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3332", - "id": 7013, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32572:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - { - "id": 7014, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6997, - "src": "32576:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7012, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "32542:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 7015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32542:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7016, - "nodeType": "RevertStatement", - "src": "32535:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6995, - "nodeType": "StructuredDocumentation", - "src": "32067:307:28", - "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": 7020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt32", - "nameLocation": "32388:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6997, - "mutability": "mutable", - "name": "value", - "nameLocation": "32403:5:28", - "nodeType": "VariableDeclaration", - "scope": 7020, - "src": "32396:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6996, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "32396:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "32395:14:28" - }, - "returnParameters": { - "id": 7001, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7000, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "32439:10:28", - "nodeType": "VariableDeclaration", - "scope": 7020, - "src": "32433:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - }, - "typeName": { - "id": 6999, - "name": "int32", - "nodeType": "ElementaryTypeName", - "src": "32433:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - } - }, - "visibility": "internal" - } - ], - "src": "32432:18:28" - }, - "scope": 7139, - "src": "32379:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7045, - "nodeType": "Block", - "src": "32989:148:28", - "statements": [ - { - "expression": { - "id": 7033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7028, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7026, - "src": "32999:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7031, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7023, - "src": "33018:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "33012:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int24_$", - "typeString": "type(int24)" - }, - "typeName": { - "id": 7029, - "name": "int24", - "nodeType": "ElementaryTypeName", - "src": "33012:5:28", - "typeDescriptions": {} - } - }, - "id": 7032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33012:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - } - }, - "src": "32999:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - } - }, - "id": 7034, - "nodeType": "ExpressionStatement", - "src": "32999:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7035, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7026, - "src": "33038:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7036, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7023, - "src": "33052:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "33038:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7044, - "nodeType": "IfStatement", - "src": "33034:97:28", - "trueBody": { - "id": 7043, - "nodeType": "Block", - "src": "33059:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3234", - "id": 7039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33110:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - "value": "24" - }, - { - "id": 7040, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7023, - "src": "33114:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7038, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "33080:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 7041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33080:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7042, - "nodeType": "RevertStatement", - "src": "33073:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 7021, - "nodeType": "StructuredDocumentation", - "src": "32605:307:28", - "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": 7046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt24", - "nameLocation": "32926:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7023, - "mutability": "mutable", - "name": "value", - "nameLocation": "32941:5:28", - "nodeType": "VariableDeclaration", - "scope": 7046, - "src": "32934:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7022, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "32934:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "32933:14:28" - }, - "returnParameters": { - "id": 7027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7026, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "32977:10:28", - "nodeType": "VariableDeclaration", - "scope": 7046, - "src": "32971:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - }, - "typeName": { - "id": 7025, - "name": "int24", - "nodeType": "ElementaryTypeName", - "src": "32971:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - } - }, - "visibility": "internal" - } - ], - "src": "32970:18:28" - }, - "scope": 7139, - "src": "32917:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7071, - "nodeType": "Block", - "src": "33527:148:28", - "statements": [ - { - "expression": { - "id": 7059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7054, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7052, - "src": "33537:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7057, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7049, - "src": "33556:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "33550:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int16_$", - "typeString": "type(int16)" - }, - "typeName": { - "id": 7055, - "name": "int16", - "nodeType": "ElementaryTypeName", - "src": "33550:5:28", - "typeDescriptions": {} - } - }, - "id": 7058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33550:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - } - }, - "src": "33537:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - } - }, - "id": 7060, - "nodeType": "ExpressionStatement", - "src": "33537:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7061, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7052, - "src": "33576:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7062, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7049, - "src": "33590:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "33576:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7070, - "nodeType": "IfStatement", - "src": "33572:97:28", - "trueBody": { - "id": 7069, - "nodeType": "Block", - "src": "33597:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3136", - "id": 7065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33648:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - { - "id": 7066, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7049, - "src": "33652:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7064, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "33618:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 7067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33618:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7068, - "nodeType": "RevertStatement", - "src": "33611:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 7047, - "nodeType": "StructuredDocumentation", - "src": "33143:307:28", - "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": 7072, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt16", - "nameLocation": "33464:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7049, - "mutability": "mutable", - "name": "value", - "nameLocation": "33479:5:28", - "nodeType": "VariableDeclaration", - "scope": 7072, - "src": "33472:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7048, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "33472:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "33471:14:28" - }, - "returnParameters": { - "id": 7053, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7052, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "33515:10:28", - "nodeType": "VariableDeclaration", - "scope": 7072, - "src": "33509:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - }, - "typeName": { - "id": 7051, - "name": "int16", - "nodeType": "ElementaryTypeName", - "src": "33509:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - } - }, - "visibility": "internal" - } - ], - "src": "33508:18:28" - }, - "scope": 7139, - "src": "33455:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7097, - "nodeType": "Block", - "src": "34058:146:28", - "statements": [ - { - "expression": { - "id": 7085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7080, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7078, - "src": "34068:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7083, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7075, - "src": "34086:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34081:4:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int8_$", - "typeString": "type(int8)" - }, - "typeName": { - "id": 7081, - "name": "int8", - "nodeType": "ElementaryTypeName", - "src": "34081:4:28", - "typeDescriptions": {} - } - }, - "id": 7084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34081:11:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - } - }, - "src": "34068:24:28", - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - } - }, - "id": 7086, - "nodeType": "ExpressionStatement", - "src": "34068:24:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7087, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7078, - "src": "34106:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7088, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7075, - "src": "34120:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "34106:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7096, - "nodeType": "IfStatement", - "src": "34102:96:28", - "trueBody": { - "id": 7095, - "nodeType": "Block", - "src": "34127:71:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "38", - "id": 7091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34178:1:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - { - "id": 7092, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7075, - "src": "34181:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7090, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "34148:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 7093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34148:39:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7094, - "nodeType": "RevertStatement", - "src": "34141:46:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 7073, - "nodeType": "StructuredDocumentation", - "src": "33681:302:28", - "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": 7098, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt8", - "nameLocation": "33997:6:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7076, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7075, - "mutability": "mutable", - "name": "value", - "nameLocation": "34011:5:28", - "nodeType": "VariableDeclaration", - "scope": 7098, - "src": "34004:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7074, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "34004:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "34003:14:28" - }, - "returnParameters": { - "id": 7079, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7078, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "34046:10:28", - "nodeType": "VariableDeclaration", - "scope": 7098, - "src": "34041:15:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - }, - "typeName": { - "id": 7077, - "name": "int8", - "nodeType": "ElementaryTypeName", - "src": "34041:4:28", - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - } - }, - "visibility": "internal" - } - ], - "src": "34040:17:28" - }, - "scope": 7139, - "src": "33988:216:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7127, - "nodeType": "Block", - "src": "34444:250:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7106, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7101, - "src": "34557:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 7111, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34578:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 7110, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "34578:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - } - ], - "id": 7109, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "34573:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 7112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34573:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_int256", - "typeString": "type(int256)" - } - }, - "id": 7113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "34586:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "34573:16:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34565:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 7107, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34565:7:28", - "typeDescriptions": {} - } - }, - "id": 7114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34565:25:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34557:33:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7121, - "nodeType": "IfStatement", - "src": "34553:105:28", - "trueBody": { - "id": 7120, - "nodeType": "Block", - "src": "34592:66:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 7117, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7101, - "src": "34641:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7116, - "name": "SafeCastOverflowedUintToInt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5401, - "src": "34613:27:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256) pure returns (error)" - } - }, - "id": 7118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34613:34:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7119, - "nodeType": "RevertStatement", - "src": "34606:41:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 7124, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7101, - "src": "34681:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34674:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 7122, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "34674:6:28", - "typeDescriptions": {} - } - }, - "id": 7125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34674:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 7105, - "id": 7126, - "nodeType": "Return", - "src": "34667:20:28" - } - ] - }, - "documentation": { - "id": 7099, - "nodeType": "StructuredDocumentation", - "src": "34210:165:28", - "text": " @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256." - }, - "id": 7128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt256", - "nameLocation": "34389:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7102, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7101, - "mutability": "mutable", - "name": "value", - "nameLocation": "34406:5:28", - "nodeType": "VariableDeclaration", - "scope": 7128, - "src": "34398:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7100, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34398:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "34397:15:28" - }, - "returnParameters": { - "id": 7105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7104, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7128, - "src": "34436:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7103, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "34436:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "34435:8:28" - }, - "scope": 7139, - "src": "34380:314:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7137, - "nodeType": "Block", - "src": "34853:87:28", - "statements": [ - { - "AST": { - "nativeSrc": "34888:46:28", - "nodeType": "YulBlock", - "src": "34888:46:28", - "statements": [ - { - "nativeSrc": "34902:22:28", - "nodeType": "YulAssignment", - "src": "34902:22:28", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "b", - "nativeSrc": "34921:1:28", - "nodeType": "YulIdentifier", - "src": "34921:1:28" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "34914:6:28", - "nodeType": "YulIdentifier", - "src": "34914:6:28" - }, - "nativeSrc": "34914:9:28", - "nodeType": "YulFunctionCall", - "src": "34914:9:28" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "34907:6:28", - "nodeType": "YulIdentifier", - "src": "34907:6:28" - }, - "nativeSrc": "34907:17:28", - "nodeType": "YulFunctionCall", - "src": "34907:17:28" - }, - "variableNames": [ - { - "name": "u", - "nativeSrc": "34902:1:28", - "nodeType": "YulIdentifier", - "src": "34902:1:28" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 7131, - "isOffset": false, - "isSlot": false, - "src": "34921:1:28", - "valueSize": 1 - }, - { - "declaration": 7134, - "isOffset": false, - "isSlot": false, - "src": "34902:1:28", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 7136, - "nodeType": "InlineAssembly", - "src": "34863:71:28" - } - ] - }, - "documentation": { - "id": 7129, - "nodeType": "StructuredDocumentation", - "src": "34700:90:28", - "text": " @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump." - }, - "id": 7138, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint", - "nameLocation": "34804:6:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7131, - "mutability": "mutable", - "name": "b", - "nameLocation": "34816:1:28", - "nodeType": "VariableDeclaration", - "scope": 7138, - "src": "34811:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7130, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "34811:4:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "34810:8:28" - }, - "returnParameters": { - "id": 7135, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7134, - "mutability": "mutable", - "name": "u", - "nameLocation": "34850:1:28", - "nodeType": "VariableDeclaration", - "scope": 7138, - "src": "34842:9:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7133, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34842:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "34841:11:28" - }, - "scope": 7139, - "src": "34795:145:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 7140, - "src": "769:34173:28", - "usedErrors": [ - 5384, - 5389, - 5396, - 5401 - ], - "usedEvents": [] - } - ], - "src": "192:34751:28" - }, - "id": 28 - }, - "contracts/DomainMangager/DomainManager.sol": { - "ast": { - "absolutePath": "contracts/DomainMangager/DomainManager.sol", - "exportedSymbols": { - "DomainManager": [ - 7204 - ], - "ISciRegistry": [ - 7736 - ] - }, - "id": 7205, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7141, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:29" - }, - { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "file": "../SciRegistry/ISciRegistry.sol", - "id": 7143, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7205, - "sourceUnit": 7737, - "src": "62:61:29", - "symbolAliases": [ - { - "foreign": { - "id": 7142, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "70:12:29", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "DomainManager", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7144, - "nodeType": "StructuredDocumentation", - "src": "125:185:29", - "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": 7204, - "linearizedBaseContracts": [ - 7204 - ], - "name": "DomainManager", - "nameLocation": "329:13:29", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "7b103999", - "id": 7147, - "mutability": "immutable", - "name": "registry", - "nameLocation": "379:8:29", - "nodeType": "VariableDeclaration", - "scope": 7204, - "src": "349:38:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - }, - "typeName": { - "id": 7146, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7145, - "name": "ISciRegistry", - "nameLocations": [ - "349:12:29" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7736, - "src": "349:12:29" - }, - "referencedDeclaration": 7736, - "src": "349:12:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "visibility": "public" - }, - { - "documentation": { - "id": 7148, - "nodeType": "StructuredDocumentation", - "src": "394:85:29", - "text": " @dev Thrown when the `account` is not the owner of the domainhash." - }, - "errorSelector": "2ebb0ef6", - "id": 7154, - "name": "AccountIsNotDomainOwner", - "nameLocation": "490:23:29", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 7153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7150, - "mutability": "mutable", - "name": "account", - "nameLocation": "522:7:29", - "nodeType": "VariableDeclaration", - "scope": 7154, - "src": "514:15:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "514:7:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7152, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "539:10:29", - "nodeType": "VariableDeclaration", - "scope": 7154, - "src": "531:18:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7151, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "531:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "513:37:29" - }, - "src": "484:67:29" - }, - { - "body": { - "id": 7167, - "nodeType": "Block", - "src": "862:66:29", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7162, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7157, - "src": "890:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7163, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7159, - "src": "899:10:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7161, - "name": "_checkDomainOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7203, - "src": "872:17:29", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) view" - } - }, - "id": 7164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "872:38:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7165, - "nodeType": "ExpressionStatement", - "src": "872:38:29" - }, - { - "id": 7166, - "nodeType": "PlaceholderStatement", - "src": "920:1:29" - } - ] - }, - "documentation": { - "id": 7155, - "nodeType": "StructuredDocumentation", - "src": "557:238:29", - "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": 7168, - "name": "onlyDomainOwner", - "nameLocation": "809:15:29", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7160, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7157, - "mutability": "mutable", - "name": "account", - "nameLocation": "833:7:29", - "nodeType": "VariableDeclaration", - "scope": 7168, - "src": "825:15:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "825:7:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7159, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "850:10:29", - "nodeType": "VariableDeclaration", - "scope": 7168, - "src": "842:18:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7158, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "842:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "824:37:29" - }, - "src": "800:128:29", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7180, - "nodeType": "Block", - "src": "1137:61:29", - "statements": [ - { - "expression": { - "id": 7178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7174, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7147, - "src": "1147:8:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7176, - "name": "_sciRegistryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7171, - "src": "1171:19:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7175, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "1158:12:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7736_$", - "typeString": "type(contract ISciRegistry)" - } - }, - "id": 7177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1158:33:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "src": "1147:44:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7179, - "nodeType": "ExpressionStatement", - "src": "1147:44:29" - } - ] - }, - "documentation": { - "id": 7169, - "nodeType": "StructuredDocumentation", - "src": "934:157:29", - "text": " @dev Initializes the contract with references to the SCI Registry.\n @param _sciRegistryAddress Address of the SCI Registry contract." - }, - "id": 7181, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7171, - "mutability": "mutable", - "name": "_sciRegistryAddress", - "nameLocation": "1116:19:29", - "nodeType": "VariableDeclaration", - "scope": 7181, - "src": "1108:27:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1107:29:29" - }, - "returnParameters": { - "id": 7173, - "nodeType": "ParameterList", - "parameters": [], - "src": "1137:0:29" - }, - "scope": 7204, - "src": "1096:102:29", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7202, - "nodeType": "Block", - "src": "1564:141:29", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7191, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7186, - "src": "1599:10:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7189, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7147, - "src": "1578:8:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1587:11:29", - "memberName": "domainOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 7709, - "src": "1578:20:29", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 7192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1578:32:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7193, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7184, - "src": "1614:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1578:43:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7201, - "nodeType": "IfStatement", - "src": "1574:125:29", - "trueBody": { - "id": 7200, - "nodeType": "Block", - "src": "1623:76:29", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 7196, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7184, - "src": "1668:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7197, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7186, - "src": "1677:10:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7195, - "name": "AccountIsNotDomainOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7154, - "src": "1644:23:29", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", - "typeString": "function (address,bytes32) pure returns (error)" - } - }, - "id": 7198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1644:44:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7199, - "nodeType": "RevertStatement", - "src": "1637:51:29" - } - ] - } - } - ] - }, - "documentation": { - "id": 7182, - "nodeType": "StructuredDocumentation", - "src": "1204:278:29", - "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": 7203, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkDomainOwner", - "nameLocation": "1496:17:29", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7187, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7184, - "mutability": "mutable", - "name": "account", - "nameLocation": "1522:7:29", - "nodeType": "VariableDeclaration", - "scope": 7203, - "src": "1514:15:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7183, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1514:7:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7186, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1539:10:29", - "nodeType": "VariableDeclaration", - "scope": 7203, - "src": "1531:18:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7185, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1531:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1513:37:29" - }, - "returnParameters": { - "id": 7188, - "nodeType": "ParameterList", - "parameters": [], - "src": "1564:0:29" - }, - "scope": 7204, - "src": "1487:218:29", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 7205, - "src": "311:1396:29", - "usedErrors": [ - 7154 - ], - "usedEvents": [] - } - ], - "src": "37:1671:29" - }, - "id": 29 - }, - "contracts/Ens/Ens.sol": { - "ast": { - "absolutePath": "contracts/Ens/Ens.sol", - "exportedSymbols": { - "ENSRegistry": [ - 560 - ] - }, - "id": 7209, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7206, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:30" - }, - { - "absolutePath": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", - "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", - "id": 7208, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7209, - "sourceUnit": 561, - "src": "160:89:30", - "symbolAliases": [ - { - "foreign": { - "id": 7207, - "name": "ENSRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "168:11:30", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - } - ], - "src": "37:213:30" - }, - "id": 30 - }, - "contracts/Proxy/Proxy.sol": { - "ast": { - "absolutePath": "contracts/Proxy/Proxy.sol", - "exportedSymbols": { - "ProxyAdmin": [ - 2992 - ], - "TransparentUpgradeableProxy": [ - 3128 - ] - }, - "id": 7215, - "license": "UNLICENSED", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7210, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "39:23:31" - }, - { - "absolutePath": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", - "file": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", - "id": 7212, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7215, - "sourceUnit": 2993, - "src": "238:84:31", - "symbolAliases": [ - { - "foreign": { - "id": 7211, - "name": "ProxyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "246:10:31", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "file": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "id": 7214, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7215, - "sourceUnit": 3129, - "src": "323:118:31", - "symbolAliases": [ - { - "foreign": { - "id": 7213, - "name": "TransparentUpgradeableProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3128, - "src": "331:27:31", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - } - ], - "src": "39:403:31" - }, - "id": 31 - }, - "contracts/Registrars/EnsRegistrar.sol": { - "ast": { - "absolutePath": "contracts/Registrars/EnsRegistrar.sol", - "exportedSymbols": { - "Context": [ - 3417 - ], - "ENS": [ - 136 - ], - "EnsRegistrar": [ - 7342 - ], - "ISciRegistry": [ - 7736 - ], - "IVerifier": [ - 8101 - ] - }, - "id": 7343, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7216, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:32" - }, - { - "absolutePath": "@ensdomains/ens-contracts/contracts/registry/ENS.sol", - "file": "@ensdomains/ens-contracts/contracts/registry/ENS.sol", - "id": 7218, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7343, - "sourceUnit": 137, - "src": "62:73:32", - "symbolAliases": [ - { - "foreign": { - "id": 7217, - "name": "ENS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "70:3:32", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "file": "../SciRegistry/ISciRegistry.sol", - "id": 7220, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7343, - "sourceUnit": 7737, - "src": "136:61:32", - "symbolAliases": [ - { - "foreign": { - "id": 7219, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "144:12:32", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "../Verifiers/IVerifier.sol", - "id": 7222, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7343, - "sourceUnit": 8102, - "src": "198:53:32", - "symbolAliases": [ - { - "foreign": { - "id": 7221, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "206:9:32", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "@openzeppelin/contracts/utils/Context.sol", - "id": 7224, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7343, - "sourceUnit": 3418, - "src": "252:66:32", - "symbolAliases": [ - { - "foreign": { - "id": 7223, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "src": "260:7:32", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 7226, - "name": "Context", - "nameLocations": [ - "694:7:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3417, - "src": "694:7:32" - }, - "id": 7227, - "nodeType": "InheritanceSpecifier", - "src": "694:7:32" - } - ], - "canonicalName": "EnsRegistrar", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7225, - "nodeType": "StructuredDocumentation", - "src": "320:348:32", - "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": 7342, - "linearizedBaseContracts": [ - 7342, - 3417 - ], - "name": "EnsRegistrar", - "nameLocation": "678:12:32", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "7d73b231", - "id": 7230, - "mutability": "immutable", - "name": "ensRegistry", - "nameLocation": "729:11:32", - "nodeType": "VariableDeclaration", - "scope": 7342, - "src": "708:32:32", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - }, - "typeName": { - "id": 7229, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7228, - "name": "ENS", - "nameLocations": [ - "708:3:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 136, - "src": "708:3:32" - }, - "referencedDeclaration": 136, - "src": "708:3:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7b103999", - "id": 7233, - "mutability": "immutable", - "name": "registry", - "nameLocation": "776:8:32", - "nodeType": "VariableDeclaration", - "scope": 7342, - "src": "746:38:32", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - }, - "typeName": { - "id": 7232, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7231, - "name": "ISciRegistry", - "nameLocations": [ - "746:12:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7736, - "src": "746:12:32" - }, - "referencedDeclaration": 7736, - "src": "746:12:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "visibility": "public" - }, - { - "documentation": { - "id": 7234, - "nodeType": "StructuredDocumentation", - "src": "791:91:32", - "text": " @dev Thrown when the `account` is not the owner of the ENS `domainhash`." - }, - "errorSelector": "36b85210", - "id": 7240, - "name": "AccountIsNotEnsOwner", - "nameLocation": "893:20:32", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 7239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7236, - "mutability": "mutable", - "name": "account", - "nameLocation": "922:7:32", - "nodeType": "VariableDeclaration", - "scope": 7240, - "src": "914:15:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "914:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7238, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "939:10:32", - "nodeType": "VariableDeclaration", - "scope": 7240, - "src": "931:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7237, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "931:7:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "913:37:32" - }, - "src": "887:64:32" - }, - { - "body": { - "id": 7253, - "nodeType": "Block", - "src": "1319:63:32", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7248, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7243, - "src": "1344:7:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7249, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7245, - "src": "1353:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7247, - "name": "_checkEnsOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7341, - "src": "1329:14:32", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) view" - } - }, - "id": 7250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1329:35:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7251, - "nodeType": "ExpressionStatement", - "src": "1329:35:32" - }, - { - "id": 7252, - "nodeType": "PlaceholderStatement", - "src": "1374:1:32" - } - ] - }, - "documentation": { - "id": 7241, - "nodeType": "StructuredDocumentation", - "src": "957:298:32", - "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": 7254, - "name": "onlyEnsOwner", - "nameLocation": "1269:12:32", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7243, - "mutability": "mutable", - "name": "account", - "nameLocation": "1290:7:32", - "nodeType": "VariableDeclaration", - "scope": 7254, - "src": "1282:15:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1282:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7245, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1307:10:32", - "nodeType": "VariableDeclaration", - "scope": 7254, - "src": "1299:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7244, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1299:7:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1281:37:32" - }, - "src": "1260:122:32", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7274, - "nodeType": "Block", - "src": "1704:109:32", - "statements": [ - { - "expression": { - "id": 7266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7262, - "name": "ensRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7230, - "src": "1714:11:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7264, - "name": "_ensRegistryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7257, - "src": "1732:19:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7263, - "name": "ENS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "1728:3:32", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ENS_$136_$", - "typeString": "type(contract ENS)" - } - }, - "id": 7265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1728:24:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - } - }, - "src": "1714:38:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - } - }, - "id": 7267, - "nodeType": "ExpressionStatement", - "src": "1714:38:32" - }, - { - "expression": { - "id": 7272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7268, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7233, - "src": "1762:8:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7270, - "name": "_sciRegistryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7259, - "src": "1786:19:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7269, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "1773:12:32", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7736_$", - "typeString": "type(contract ISciRegistry)" - } - }, - "id": 7271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1773:33:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "src": "1762:44:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7273, - "nodeType": "ExpressionStatement", - "src": "1762:44:32" - } - ] - }, - "documentation": { - "id": 7255, - "nodeType": "StructuredDocumentation", - "src": "1388:241:32", - "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": 7275, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7260, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7257, - "mutability": "mutable", - "name": "_ensRegistryAddress", - "nameLocation": "1654:19:32", - "nodeType": "VariableDeclaration", - "scope": 7275, - "src": "1646:27:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7256, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1646:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7259, - "mutability": "mutable", - "name": "_sciRegistryAddress", - "nameLocation": "1683:19:32", - "nodeType": "VariableDeclaration", - "scope": 7275, - "src": "1675:27:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1675:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1645:58:32" - }, - "returnParameters": { - "id": 7261, - "nodeType": "ParameterList", - "parameters": [], - "src": "1704:0:32" - }, - "scope": 7342, - "src": "1634:179:32", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 7294, - "nodeType": "Block", - "src": "2207:59:32", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7290, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7278, - "src": "2241:5:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7291, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7280, - "src": "2248:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7287, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7233, - "src": "2217:8:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2226:14:32", - "memberName": "registerDomain", - "nodeType": "MemberAccess", - "referencedDeclaration": 7680, - "src": "2217:23:32", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) external" - } - }, - "id": 7292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2217:42:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7293, - "nodeType": "ExpressionStatement", - "src": "2217:42:32" - } - ] - }, - "documentation": { - "id": 7276, - "nodeType": "StructuredDocumentation", - "src": "1819:261:32", - "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": 7295, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7283, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7278, - "src": "2188:5:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7284, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7280, - "src": "2195:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7285, - "kind": "modifierInvocation", - "modifierName": { - "id": 7282, - "name": "onlyEnsOwner", - "nameLocations": [ - "2175:12:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7254, - "src": "2175:12:32" - }, - "nodeType": "ModifierInvocation", - "src": "2175:31:32" - } - ], - "name": "registerDomain", - "nameLocation": "2094:14:32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7278, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2126:5:32", - "nodeType": "VariableDeclaration", - "scope": 7295, - "src": "2118:13:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7277, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2118:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7280, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2149:10:32", - "nodeType": "VariableDeclaration", - "scope": 7295, - "src": "2141:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7279, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2141:7:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2108:57:32" - }, - "returnParameters": { - "id": 7286, - "nodeType": "ParameterList", - "parameters": [], - "src": "2207:0:32" - }, - "scope": 7342, - "src": "2085:181:32", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7318, - "nodeType": "Block", - "src": "2713:88:32", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7312, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2759:10:32", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2759:12:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7314, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7298, - "src": "2773:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7315, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7301, - "src": "2785:8:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "expression": { - "id": 7309, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7233, - "src": "2723:8:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2732:26:32", - "memberName": "registerDomainWithVerifier", - "nodeType": "MemberAccess", - "referencedDeclaration": 7691, - "src": "2723:35:32", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8101_$returns$__$", - "typeString": "function (address,bytes32,contract IVerifier) external" - } - }, - "id": 7316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2723:71:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7317, - "nodeType": "ExpressionStatement", - "src": "2723:71:32" - } - ] - }, - "documentation": { - "id": 7296, - "nodeType": "StructuredDocumentation", - "src": "2272:290:32", - "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": 7319, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7304, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2687:10:32", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2687:12:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7306, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7298, - "src": "2701:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7307, - "kind": "modifierInvocation", - "modifierName": { - "id": 7303, - "name": "onlyEnsOwner", - "nameLocations": [ - "2674:12:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7254, - "src": "2674:12:32" - }, - "nodeType": "ModifierInvocation", - "src": "2674:38:32" - } - ], - "name": "registerDomainWithVerifier", - "nameLocation": "2576:26:32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7298, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2620:10:32", - "nodeType": "VariableDeclaration", - "scope": 7319, - "src": "2612:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7297, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2612:7:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7301, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2650:8:32", - "nodeType": "VariableDeclaration", - "scope": 7319, - "src": "2640:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7300, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7299, - "name": "IVerifier", - "nameLocations": [ - "2640:9:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "2640:9:32" - }, - "referencedDeclaration": 8101, - "src": "2640:9:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "2602:62:32" - }, - "returnParameters": { - "id": 7308, - "nodeType": "ParameterList", - "parameters": [], - "src": "2713:0:32" - }, - "scope": 7342, - "src": "2567:234:32", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7340, - "nodeType": "Block", - "src": "3213:135:32", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7329, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7324, - "src": "3245:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7327, - "name": "ensRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7230, - "src": "3227:11:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - } - }, - "id": 7328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3239:5:32", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 105, - "src": "3227:17:32", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 7330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3227:29:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7331, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7322, - "src": "3260:7:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3227:40:32", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7339, - "nodeType": "IfStatement", - "src": "3223:119:32", - "trueBody": { - "id": 7338, - "nodeType": "Block", - "src": "3269:73:32", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 7334, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7322, - "src": "3311:7:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7335, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7324, - "src": "3320:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7333, - "name": "AccountIsNotEnsOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7240, - "src": "3290:20:32", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", - "typeString": "function (address,bytes32) pure returns (error)" - } - }, - "id": 7336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3290:41:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7337, - "nodeType": "RevertStatement", - "src": "3283:48:32" - } - ] - } - } - ] - }, - "documentation": { - "id": 7320, - "nodeType": "StructuredDocumentation", - "src": "2807:327:32", - "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": 7341, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkEnsOwner", - "nameLocation": "3148:14:32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7322, - "mutability": "mutable", - "name": "account", - "nameLocation": "3171:7:32", - "nodeType": "VariableDeclaration", - "scope": 7341, - "src": "3163:15:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7321, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3163:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7324, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3188:10:32", - "nodeType": "VariableDeclaration", - "scope": 7341, - "src": "3180:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7323, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3180:7:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3162:37:32" - }, - "returnParameters": { - "id": 7326, - "nodeType": "ParameterList", - "parameters": [], - "src": "3213:0:32" - }, - "scope": 7342, - "src": "3139:209:32", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 7343, - "src": "669:2681:32", - "usedErrors": [ - 7240 - ], - "usedEvents": [] - } - ], - "src": "37:3314:32" - }, - "id": 32 - }, - "contracts/Registrars/SciRegistrar.sol": { - "ast": { - "absolutePath": "contracts/Registrars/SciRegistrar.sol", - "exportedSymbols": { - "AccessControlDefaultAdminRules": [ - 2436 - ], - "ISciRegistry": [ - 7736 - ], - "IVerifier": [ - 8101 - ], - "SciRegistrar": [ - 7424 - ] - }, - "id": 7425, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7344, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:33" - }, - { - "absolutePath": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", - "file": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", - "id": 7346, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7425, - "sourceUnit": 2437, - "src": "62:124:33", - "symbolAliases": [ - { - "foreign": { - "id": 7345, - "name": "AccessControlDefaultAdminRules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2436, - "src": "70:30:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "file": "../SciRegistry/ISciRegistry.sol", - "id": 7348, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7425, - "sourceUnit": 7737, - "src": "187:61:33", - "symbolAliases": [ - { - "foreign": { - "id": 7347, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "195:12:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "../Verifiers/IVerifier.sol", - "id": 7350, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7425, - "sourceUnit": 8102, - "src": "249:53:33", - "symbolAliases": [ - { - "foreign": { - "id": 7349, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "257:9:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 7352, - "name": "AccessControlDefaultAdminRules", - "nameLocations": [ - "768:30:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2436, - "src": "768:30:33" - }, - "id": 7353, - "nodeType": "InheritanceSpecifier", - "src": "768:30:33" - } - ], - "canonicalName": "SciRegistrar", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7351, - "nodeType": "StructuredDocumentation", - "src": "304:438:33", - "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": 7424, - "linearizedBaseContracts": [ - 7424, - 2436, - 1488, - 3756, - 3768, - 2566, - 2535, - 1571, - 3417 - ], - "name": "SciRegistrar", - "nameLocation": "752:12:33", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "functionSelector": "2a3fea62", - "id": 7358, - "mutability": "constant", - "name": "REGISTER_DOMAIN_ROLE", - "nameLocation": "873:20:33", - "nodeType": "VariableDeclaration", - "scope": 7424, - "src": "849:80:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7354, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "849:7:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "52454749535445525f444f4d41494e5f524f4c45", - "id": 7356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "906:22:33", - "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": 7355, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "896:9:33", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 7357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "896:33:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7b103999", - "id": 7361, - "mutability": "immutable", - "name": "registry", - "nameLocation": "966:8:33", - "nodeType": "VariableDeclaration", - "scope": 7424, - "src": "936:38:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - }, - "typeName": { - "id": 7360, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7359, - "name": "ISciRegistry", - "nameLocations": [ - "936:12:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7736, - "src": "936:12:33" - }, - "referencedDeclaration": 7736, - "src": "936:12:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 7380, - "nodeType": "Block", - "src": "1439:61:33", - "statements": [ - { - "expression": { - "id": 7378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7374, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7361, - "src": "1449:8:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7376, - "name": "_sciRegistryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7364, - "src": "1473:19:33", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7375, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "1460:12:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7736_$", - "typeString": "type(contract ISciRegistry)" - } - }, - "id": 7377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1460:33:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "src": "1449:44:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7379, - "nodeType": "ExpressionStatement", - "src": "1449:44:33" - } - ] - }, - "documentation": { - "id": 7362, - "nodeType": "StructuredDocumentation", - "src": "981:310:33", - "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": 7381, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 7369, - "name": "initialDelay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7366, - "src": "1411:12:33", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7370, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "1425:10:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1425:12:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 7372, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 7368, - "name": "AccessControlDefaultAdminRules", - "nameLocations": [ - "1380:30:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2436, - "src": "1380:30:33" - }, - "nodeType": "ModifierInvocation", - "src": "1380:58:33" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7364, - "mutability": "mutable", - "name": "_sciRegistryAddress", - "nameLocation": "1325:19:33", - "nodeType": "VariableDeclaration", - "scope": 7381, - "src": "1317:27:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1317:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7366, - "mutability": "mutable", - "name": "initialDelay", - "nameLocation": "1361:12:33", - "nodeType": "VariableDeclaration", - "scope": 7381, - "src": "1354:19:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 7365, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "1354:6:33", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "1307:72:33" - }, - "returnParameters": { - "id": 7373, - "nodeType": "ParameterList", - "parameters": [], - "src": "1439:0:33" - }, - "scope": 7424, - "src": "1296:204:33", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 7399, - "nodeType": "Block", - "src": "1910:59:33", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7395, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7384, - "src": "1944:5:33", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7396, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7386, - "src": "1951:10:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7392, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7361, - "src": "1920:8:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1929:14:33", - "memberName": "registerDomain", - "nodeType": "MemberAccess", - "referencedDeclaration": 7680, - "src": "1920:23:33", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) external" - } - }, - "id": 7397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1920:42:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7398, - "nodeType": "ExpressionStatement", - "src": "1920:42:33" - } - ] - }, - "documentation": { - "id": 7382, - "nodeType": "StructuredDocumentation", - "src": "1506:278:33", - "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": 7400, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7389, - "name": "REGISTER_DOMAIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7358, - "src": "1888:20:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7390, - "kind": "modifierInvocation", - "modifierName": { - "id": 7388, - "name": "onlyRole", - "nameLocations": [ - "1879:8:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "1879:8:33" - }, - "nodeType": "ModifierInvocation", - "src": "1879:30:33" - } - ], - "name": "registerDomain", - "nameLocation": "1798:14:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7387, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7384, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1830:5:33", - "nodeType": "VariableDeclaration", - "scope": 7400, - "src": "1822:13:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1822:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7386, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1853:10:33", - "nodeType": "VariableDeclaration", - "scope": 7400, - "src": "1845:18:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7385, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1845:7:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1812:57:33" - }, - "returnParameters": { - "id": 7391, - "nodeType": "ParameterList", - "parameters": [], - "src": "1910:0:33" - }, - "scope": 7424, - "src": "1789:180:33", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7422, - "nodeType": "Block", - "src": "2614:81:33", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7417, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "2660:5:33", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7418, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7405, - "src": "2667:10:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7419, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7408, - "src": "2679:8:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "expression": { - "id": 7414, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7361, - "src": "2624:8:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2633:26:33", - "memberName": "registerDomainWithVerifier", - "nodeType": "MemberAccess", - "referencedDeclaration": 7691, - "src": "2624:35:33", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8101_$returns$__$", - "typeString": "function (address,bytes32,contract IVerifier) external" - } - }, - "id": 7420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2624:64:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7421, - "nodeType": "ExpressionStatement", - "src": "2624:64:33" - } - ] - }, - "documentation": { - "id": 7401, - "nodeType": "StructuredDocumentation", - "src": "1975:473:33", - "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": 7423, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7411, - "name": "REGISTER_DOMAIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7358, - "src": "2592:20:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7412, - "kind": "modifierInvocation", - "modifierName": { - "id": 7410, - "name": "onlyRole", - "nameLocations": [ - "2583:8:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "2583:8:33" - }, - "nodeType": "ModifierInvocation", - "src": "2583:30:33" - } - ], - "name": "registerDomainWithVerifier", - "nameLocation": "2462:26:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7409, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7403, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2506:5:33", - "nodeType": "VariableDeclaration", - "scope": 7423, - "src": "2498:13:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2498:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7405, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2529:10:33", - "nodeType": "VariableDeclaration", - "scope": 7423, - "src": "2521:18:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7404, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2521:7:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7408, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2559:8:33", - "nodeType": "VariableDeclaration", - "scope": 7423, - "src": "2549:18:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7407, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7406, - "name": "IVerifier", - "nameLocations": [ - "2549:9:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "2549:9:33" - }, - "referencedDeclaration": 8101, - "src": "2549:9:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "2488:85:33" - }, - "returnParameters": { - "id": 7413, - "nodeType": "ParameterList", - "parameters": [], - "src": "2614:0:33" - }, - "scope": 7424, - "src": "2453:242:33", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 7425, - "src": "743:1954:33", - "usedErrors": [ - 1498, - 1501, - 2448, - 2451, - 2456, - 5384 - ], - "usedEvents": [ - 1510, - 1519, - 1528, - 2463, - 2466, - 2473, - 2476 - ] - } - ], - "src": "37:2661:33" - }, - "id": 33 - }, - "contracts/SCI.sol": { - "ast": { - "absolutePath": "contracts/SCI.sol", - "exportedSymbols": { - "ISciRegistry": [ - 7736 - ], - "IVerifier": [ - 8101 - ], - "Initializable": [ - 1146 - ], - "Ownable2StepUpgradeable": [ - 697 - ], - "SCI": [ - 7619 - ] - }, - "id": 7620, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7426, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:34" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "./Verifiers/IVerifier.sol", - "id": 7428, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7620, - "sourceUnit": 8102, - "src": "62:52:34", - "symbolAliases": [ - { - "foreign": { - "id": 7427, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "70:9:34", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "file": "./SciRegistry/ISciRegistry.sol", - "id": 7430, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7620, - "sourceUnit": 7737, - "src": "115:60:34", - "symbolAliases": [ - { - "foreign": { - "id": 7429, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "123:12:34", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "id": 7432, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7620, - "sourceUnit": 1147, - "src": "176:96:34", - "symbolAliases": [ - { - "foreign": { - "id": 7431, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "184:13:34", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", - "id": 7434, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7620, - "sourceUnit": 698, - "src": "273:111:34", - "symbolAliases": [ - { - "foreign": { - "id": 7433, - "name": "Ownable2StepUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 697, - "src": "281:23:34", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 7436, - "name": "Initializable", - "nameLocations": [ - "724:13:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1146, - "src": "724:13:34" - }, - "id": 7437, - "nodeType": "InheritanceSpecifier", - "src": "724:13:34" - }, - { - "baseName": { - "id": 7438, - "name": "Ownable2StepUpgradeable", - "nameLocations": [ - "739:23:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 697, - "src": "739:23:34" - }, - "id": 7439, - "nodeType": "InheritanceSpecifier", - "src": "739:23:34" - } - ], - "canonicalName": "SCI", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7435, - "nodeType": "StructuredDocumentation", - "src": "386:321:34", - "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": 7619, - "linearizedBaseContracts": [ - 7619, - 697, - 892, - 1192, - 1146 - ], - "name": "SCI", - "nameLocation": "717:3:34", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "7b103999", - "id": 7442, - "mutability": "mutable", - "name": "registry", - "nameLocation": "789:8:34", - "nodeType": "VariableDeclaration", - "scope": 7619, - "src": "769:28:34", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - }, - "typeName": { - "id": 7441, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7440, - "name": "ISciRegistry", - "nameLocations": [ - "769:12:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7736, - "src": "769:12:34" - }, - "referencedDeclaration": 7736, - "src": "769:12:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": { - "id": 7443, - "nodeType": "StructuredDocumentation", - "src": "804:62:34", - "text": " @dev Emitted when the Registry is changed." - }, - "eventSelector": "363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f5", - "id": 7449, - "name": "RegistrySet", - "nameLocation": "877:11:34", - "nodeType": "EventDefinition", - "parameters": { - "id": 7448, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7445, - "indexed": true, - "mutability": "mutable", - "name": "oldRegistryAddress", - "nameLocation": "905:18:34", - "nodeType": "VariableDeclaration", - "scope": 7449, - "src": "889:34:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7444, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "889:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7447, - "indexed": true, - "mutability": "mutable", - "name": "newRegistryAddress", - "nameLocation": "941:18:34", - "nodeType": "VariableDeclaration", - "scope": 7449, - "src": "925:34:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7446, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "925:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "888:72:34" - }, - "src": "871:90:34" - }, - { - "body": { - "id": 7470, - "nodeType": "Block", - "src": "1342:107:34", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7459, - "name": "__Ownable2Step_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "1352:19:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 7460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1352:21:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7461, - "nodeType": "ExpressionStatement", - "src": "1352:21:34" - }, - { - "expression": { - "arguments": [ - { - "id": 7463, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7452, - "src": "1398:5:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7462, - "name": "__Ownable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "1383:14:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 7464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1383:21:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7465, - "nodeType": "ExpressionStatement", - "src": "1383:21:34" - }, - { - "expression": { - "arguments": [ - { - "id": 7467, - "name": "registryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7454, - "src": "1426:15:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7466, - "name": "setRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7618, - "src": "1414:11:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 7468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1414:28:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7469, - "nodeType": "ExpressionStatement", - "src": "1414:28:34" - } - ] - }, - "documentation": { - "id": 7450, - "nodeType": "StructuredDocumentation", - "src": "967:289:34", - "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": 7471, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 7457, - "kind": "modifierInvocation", - "modifierName": { - "id": 7456, - "name": "initializer", - "nameLocations": [ - "1330:11:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1000, - "src": "1330:11:34" - }, - "nodeType": "ModifierInvocation", - "src": "1330:11:34" - } - ], - "name": "initialize", - "nameLocation": "1270:10:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7455, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7452, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1289:5:34", - "nodeType": "VariableDeclaration", - "scope": 7471, - "src": "1281:13:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7451, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1281:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7454, - "mutability": "mutable", - "name": "registryAddress", - "nameLocation": "1304:15:34", - "nodeType": "VariableDeclaration", - "scope": 7471, - "src": "1296:23:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7453, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1296:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1280:40:34" - }, - "returnParameters": { - "id": 7458, - "nodeType": "ParameterList", - "parameters": [], - "src": "1342:0:34" - }, - "scope": 7619, - "src": "1261:188:34", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7491, - "nodeType": "Block", - "src": "1834:63:34", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7488, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7474, - "src": "1879:10:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7486, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7442, - "src": "1851:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1860:18:34", - "memberName": "domainHashToRecord", - "nodeType": "MemberAccess", - "referencedDeclaration": 7672, - "src": "1851:27:34", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$_t_contract$_IVerifier_$8101_$_t_uint256_$_t_uint256_$", - "typeString": "function (bytes32) view external returns (address,contract IVerifier,uint256,uint256)" - } - }, - "id": 7489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1851:39:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_contract$_IVerifier_$8101_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(address,contract IVerifier,uint256,uint256)" - } - }, - "functionReturnParameters": 7485, - "id": 7490, - "nodeType": "Return", - "src": "1844:46:34" - } - ] - }, - "documentation": { - "id": 7472, - "nodeType": "StructuredDocumentation", - "src": "1455:113:34", - "text": " @dev Returns info from the domain.\n @param domainHash The namehash of the domain." - }, - "functionSelector": "5b377fa2", - "id": 7492, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "domainHashToRecord", - "nameLocation": "1582:18:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7474, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1618:10:34", - "nodeType": "VariableDeclaration", - "scope": 7492, - "src": "1610:18:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7473, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1610:7:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1600:34:34" - }, - "returnParameters": { - "id": 7485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7477, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1703:5:34", - "nodeType": "VariableDeclaration", - "scope": 7492, - "src": "1695:13:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7476, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1695:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7480, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "1732:8:34", - "nodeType": "VariableDeclaration", - "scope": 7492, - "src": "1722:18:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7479, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7478, - "name": "IVerifier", - "nameLocations": [ - "1722:9:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "1722:9:34" - }, - "referencedDeclaration": 8101, - "src": "1722:9:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7482, - "mutability": "mutable", - "name": "lastOwnerSetTime", - "nameLocation": "1762:16:34", - "nodeType": "VariableDeclaration", - "scope": 7492, - "src": "1754:24:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7481, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1754:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7484, - "mutability": "mutable", - "name": "lastVerifierSetTime", - "nameLocation": "1800:19:34", - "nodeType": "VariableDeclaration", - "scope": 7492, - "src": "1792:27:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1792:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1681:148:34" - }, - "scope": 7619, - "src": "1573:324:34", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7549, - "nodeType": "Block", - "src": "2608:472:34", - "statements": [ - { - "assignments": [ - 7510 - ], - "declarations": [ - { - "constant": false, - "id": 7510, - "mutability": "mutable", - "name": "domainsVerification", - "nameLocation": "2635:19:34", - "nodeType": "VariableDeclaration", - "scope": 7549, - "src": "2618:36:34", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 7508, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2618:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7509, - "nodeType": "ArrayTypeName", - "src": "2618:9:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 7517, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 7514, - "name": "domainHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7496, - "src": "2671:12:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 7515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2684:6:34", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2671:19:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2657:13:34", - "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": 7511, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2661:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7512, - "nodeType": "ArrayTypeName", - "src": "2661:9:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 7516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2657:34:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2618:73:34" - }, - { - "assignments": [ - 7519 - ], - "declarations": [ - { - "constant": false, - "id": 7519, - "mutability": "mutable", - "name": "domainHashesLength", - "nameLocation": "2709:18:34", - "nodeType": "VariableDeclaration", - "scope": 7549, - "src": "2701:26:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2701:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7522, - "initialValue": { - "expression": { - "id": 7520, - "name": "domainHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7496, - "src": "2730:12:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 7521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2743:6:34", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2730:19:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2701:48:34" - }, - { - "body": { - "id": 7545, - "nodeType": "Block", - "src": "2801:237:34", - "statements": [ - { - "expression": { - "id": 7539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 7529, - "name": "domainsVerification", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "2815:19:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 7531, - "indexExpression": { - "id": 7530, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7524, - "src": "2835:1:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2815:22:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 7533, - "name": "domainHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7496, - "src": "2881:12:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 7535, - "indexExpression": { - "id": 7534, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7524, - "src": "2894:1:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2881:15:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7536, - "name": "contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7498, - "src": "2914:15:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7537, - "name": "chainId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7500, - "src": "2947:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7532, - "name": "isVerifiedForDomainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7591, - "src": "2840:23:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bytes32,address,uint256) view returns (uint256)" - } - }, - "id": 7538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2840:128:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2815:153:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7540, - "nodeType": "ExpressionStatement", - "src": "2815:153:34" - }, - { - "id": 7544, - "nodeType": "UncheckedBlock", - "src": "2982:46:34", - "statements": [ - { - "expression": { - "id": 7542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "3010:3:34", - "subExpression": { - "id": 7541, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7524, - "src": "3012:1:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7543, - "nodeType": "ExpressionStatement", - "src": "3010:3:34" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7526, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7524, - "src": "2775:1:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 7527, - "name": "domainHashesLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7519, - "src": "2779:18:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2775:22:34", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7546, - "initializationExpression": { - "assignments": [ - 7524 - ], - "declarations": [ - { - "constant": false, - "id": 7524, - "mutability": "mutable", - "name": "i", - "nameLocation": "2772:1:34", - "nodeType": "VariableDeclaration", - "scope": 7546, - "src": "2764:9:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2764:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7525, - "nodeType": "VariableDeclarationStatement", - "src": "2764:9:34" - }, - "isSimpleCounterLoop": false, - "nodeType": "ForStatement", - "src": "2759:279:34" - }, - { - "expression": { - "id": 7547, - "name": "domainsVerification", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "3054:19:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 7505, - "id": 7548, - "nodeType": "Return", - "src": "3047:26:34" - } - ] - }, - "documentation": { - "id": 7493, - "nodeType": "StructuredDocumentation", - "src": "1903:513:34", - "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": 7550, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isVerifiedForMultipleDomainHashes", - "nameLocation": "2430:33:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7496, - "mutability": "mutable", - "name": "domainHashes", - "nameLocation": "2490:12:34", - "nodeType": "VariableDeclaration", - "scope": 7550, - "src": "2473:29:34", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 7494, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2473:7:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 7495, - "nodeType": "ArrayTypeName", - "src": "2473:9:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7498, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "2520:15:34", - "nodeType": "VariableDeclaration", - "scope": 7550, - "src": "2512:23:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7497, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2512:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7500, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "2553:7:34", - "nodeType": "VariableDeclaration", - "scope": 7550, - "src": "2545:15:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7499, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2545:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2463:103:34" - }, - "returnParameters": { - "id": 7505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7504, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7550, - "src": "2590:16:34", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 7502, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2590:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7503, - "nodeType": "ArrayTypeName", - "src": "2590:9:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "2589:18:34" - }, - "scope": 7619, - "src": "2421:659:34", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7590, - "nodeType": "Block", - "src": "3851:240:34", - "statements": [ - { - "assignments": [ - null, - 7564, - null, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 7564, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "3874:8:34", - "nodeType": "VariableDeclaration", - "scope": 7590, - "src": "3864:18:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7563, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7562, - "name": "IVerifier", - "nameLocations": [ - "3864:9:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "3864:9:34" - }, - "referencedDeclaration": 8101, - "src": "3864:9:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - }, - null, - null - ], - "id": 7569, - "initialValue": { - "arguments": [ - { - "id": 7567, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7553, - "src": "3918:10:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7565, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7442, - "src": "3890:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3899:18:34", - "memberName": "domainHashToRecord", - "nodeType": "MemberAccess", - "referencedDeclaration": 7672, - "src": "3890:27:34", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$_t_contract$_IVerifier_$8101_$_t_uint256_$_t_uint256_$", - "typeString": "function (bytes32) view external returns (address,contract IVerifier,uint256,uint256)" - } - }, - "id": 7568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3890:39:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_contract$_IVerifier_$8101_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(address,contract IVerifier,uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3861:68:34" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7572, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7564, - "src": "3952:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "id": 7571, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3944:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7570, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3944:7:34", - "typeDescriptions": {} - } - }, - "id": 7573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3944:17:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 7576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3973:1:34", - "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": 7575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3965:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7574, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3965:7:34", - "typeDescriptions": {} - } - }, - "id": 7577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3965:10:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3944:31:34", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7582, - "nodeType": "IfStatement", - "src": "3940:70:34", - "trueBody": { - "id": 7581, - "nodeType": "Block", - "src": "3977:33:34", - "statements": [ - { - "expression": { - "hexValue": "30", - "id": 7579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3998:1:34", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 7561, - "id": 7580, - "nodeType": "Return", - "src": "3991:8:34" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 7585, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7553, - "src": "4047:10:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7586, - "name": "contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7555, - "src": "4059:15:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7587, - "name": "chainId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7557, - "src": "4076:7:34", - "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": 7583, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7564, - "src": "4027:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "id": 7584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4036:10:34", - "memberName": "isVerified", - "nodeType": "MemberAccess", - "referencedDeclaration": 8100, - "src": "4027:19:34", - "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": 7588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4027:57:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7561, - "id": 7589, - "nodeType": "Return", - "src": "4020:64:34" - } - ] - }, - "documentation": { - "id": 7551, - "nodeType": "StructuredDocumentation", - "src": "3086:605:34", - "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": 7591, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isVerifiedForDomainHash", - "nameLocation": "3705:23:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7553, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3746:10:34", - "nodeType": "VariableDeclaration", - "scope": 7591, - "src": "3738:18:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7552, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3738:7:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7555, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "3774:15:34", - "nodeType": "VariableDeclaration", - "scope": 7591, - "src": "3766:23:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3766:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7557, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "3807:7:34", - "nodeType": "VariableDeclaration", - "scope": 7591, - "src": "3799:15:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7556, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3799:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3728:92:34" - }, - "returnParameters": { - "id": 7561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7560, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7591, - "src": "3842:7:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7559, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3842:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3841:9:34" - }, - "scope": 7619, - "src": "3696:395:34", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 7617, - "nodeType": "Block", - "src": "4321:168:34", - "statements": [ - { - "assignments": [ - 7600 - ], - "declarations": [ - { - "constant": false, - "id": 7600, - "mutability": "mutable", - "name": "oldRegistryAddress", - "nameLocation": "4339:18:34", - "nodeType": "VariableDeclaration", - "scope": 7617, - "src": "4331:26:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7599, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4331:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 7605, - "initialValue": { - "arguments": [ - { - "id": 7603, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7442, - "src": "4368:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - ], - "id": 7602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4360:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7601, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4360:7:34", - "typeDescriptions": {} - } - }, - "id": 7604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4360:17:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4331:46:34" - }, - { - "expression": { - "id": 7610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7606, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7442, - "src": "4387:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7608, - "name": "newRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7594, - "src": "4411:11:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7607, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "4398:12:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7736_$", - "typeString": "type(contract ISciRegistry)" - } - }, - "id": 7609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4398:25:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "src": "4387:36:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7611, - "nodeType": "ExpressionStatement", - "src": "4387:36:34" - }, - { - "eventCall": { - "arguments": [ - { - "id": 7613, - "name": "oldRegistryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7600, - "src": "4450:18:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7614, - "name": "newRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7594, - "src": "4470:11:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7612, - "name": "RegistrySet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7449, - "src": "4438:11:34", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 7615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4438:44:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7616, - "nodeType": "EmitStatement", - "src": "4433:49:34" - } - ] - }, - "documentation": { - "id": 7592, - "nodeType": "StructuredDocumentation", - "src": "4097:160:34", - "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": 7618, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 7597, - "kind": "modifierInvocation", - "modifierName": { - "id": 7596, - "name": "onlyOwner", - "nameLocations": [ - "4311:9:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 787, - "src": "4311:9:34" - }, - "nodeType": "ModifierInvocation", - "src": "4311:9:34" - } - ], - "name": "setRegistry", - "nameLocation": "4271:11:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7595, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7594, - "mutability": "mutable", - "name": "newRegistry", - "nameLocation": "4291:11:34", - "nodeType": "VariableDeclaration", - "scope": 7618, - "src": "4283:19:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4283:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4282:21:34" - }, - "returnParameters": { - "id": 7598, - "nodeType": "ParameterList", - "parameters": [], - "src": "4321:0:34" - }, - "scope": 7619, - "src": "4262:227:34", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 7620, - "src": "708:3783:34", - "usedErrors": [ - 728, - 733, - 909, - 912 - ], - "usedEvents": [ - 592, - 739, - 917, - 7449 - ] - } - ], - "src": "37:4455:34" - }, - "id": 34 - }, - "contracts/SciRegistry/ISciRegistry.sol": { - "ast": { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "exportedSymbols": { - "ISciRegistry": [ - 7736 - ], - "IVerifier": [ - 8101 - ] - }, - "id": 7737, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7621, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:35" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "../Verifiers/IVerifier.sol", - "id": 7623, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7737, - "sourceUnit": 8102, - "src": "62:53:35", - "symbolAliases": [ - { - "foreign": { - "id": 7622, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "70:9:35", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ISciRegistry", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 7624, - "nodeType": "StructuredDocumentation", - "src": "117:368:35", - "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": 7736, - "linearizedBaseContracts": [ - 7736 - ], - "name": "ISciRegistry", - "nameLocation": "496:12:35", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 7625, - "nodeType": "StructuredDocumentation", - "src": "515:110:35", - "text": " @dev Emitted when a new `domain` with the `domainHash` is\n registered by the `owner`." - }, - "eventSelector": "fb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a63", - "id": 7633, - "name": "DomainRegistered", - "nameLocation": "636:16:35", - "nodeType": "EventDefinition", - "parameters": { - "id": 7632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7627, - "indexed": true, - "mutability": "mutable", - "name": "registrar", - "nameLocation": "678:9:35", - "nodeType": "VariableDeclaration", - "scope": 7633, - "src": "662:25:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7626, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "662:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7629, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "713:5:35", - "nodeType": "VariableDeclaration", - "scope": 7633, - "src": "697:21:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7628, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "697:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7631, - "indexed": true, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "744:10:35", - "nodeType": "VariableDeclaration", - "scope": 7633, - "src": "728:26:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7630, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "728:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "652:108:35" - }, - "src": "630:131:35" - }, - { - "anonymous": false, - "documentation": { - "id": 7634, - "nodeType": "StructuredDocumentation", - "src": "767:163:35", - "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": 7646, - "name": "VerifierSet", - "nameLocation": "941:11:35", - "nodeType": "EventDefinition", - "parameters": { - "id": 7645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7636, - "indexed": false, - "mutability": "mutable", - "name": "msgSender", - "nameLocation": "970:9:35", - "nodeType": "VariableDeclaration", - "scope": 7646, - "src": "962:17:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7635, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "962:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7638, - "indexed": true, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1005:10:35", - "nodeType": "VariableDeclaration", - "scope": 7646, - "src": "989:26:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7637, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "989:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7641, - "indexed": true, - "mutability": "mutable", - "name": "oldVerifier", - "nameLocation": "1043:11:35", - "nodeType": "VariableDeclaration", - "scope": 7646, - "src": "1025:29:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7640, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7639, - "name": "IVerifier", - "nameLocations": [ - "1025:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "1025:9:35" - }, - "referencedDeclaration": 8101, - "src": "1025:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7644, - "indexed": true, - "mutability": "mutable", - "name": "newVerifie", - "nameLocation": "1082:10:35", - "nodeType": "VariableDeclaration", - "scope": 7646, - "src": "1064:28:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7643, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7642, - "name": "IVerifier", - "nameLocations": [ - "1064:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "1064:9:35" - }, - "referencedDeclaration": 8101, - "src": "1064:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "952:146:35" - }, - "src": "935:164:35" - }, - { - "anonymous": false, - "documentation": { - "id": 7647, - "nodeType": "StructuredDocumentation", - "src": "1105:79:35", - "text": " @dev Emitted when the owner of a `domainHash` is set." - }, - "eventSelector": "c4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288", - "id": 7657, - "name": "OwnerSet", - "nameLocation": "1195:8:35", - "nodeType": "EventDefinition", - "parameters": { - "id": 7656, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7649, - "indexed": false, - "mutability": "mutable", - "name": "msgSender", - "nameLocation": "1221:9:35", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1213:17:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7648, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1213:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7651, - "indexed": true, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1256:10:35", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1240:26:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7650, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1240:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7653, - "indexed": true, - "mutability": "mutable", - "name": "oldOwner", - "nameLocation": "1292:8:35", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1276:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1276:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7655, - "indexed": true, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "1326:8:35", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1310:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7654, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1310:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1203:137:35" - }, - "src": "1189:152:35" - }, - { - "documentation": { - "id": 7658, - "nodeType": "StructuredDocumentation", - "src": "1347:183:35", - "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": 7672, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "domainHashToRecord", - "nameLocation": "1544:18:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7661, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7660, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1580:10:35", - "nodeType": "VariableDeclaration", - "scope": 7672, - "src": "1572:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7659, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1572:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1562:34:35" - }, - "returnParameters": { - "id": 7671, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7663, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1665:5:35", - "nodeType": "VariableDeclaration", - "scope": 7672, - "src": "1657:13:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7662, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1657:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7666, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "1694:8:35", - "nodeType": "VariableDeclaration", - "scope": 7672, - "src": "1684:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7665, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7664, - "name": "IVerifier", - "nameLocations": [ - "1684:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "1684:9:35" - }, - "referencedDeclaration": 8101, - "src": "1684:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7668, - "mutability": "mutable", - "name": "lastOwnerSetTime", - "nameLocation": "1724:16:35", - "nodeType": "VariableDeclaration", - "scope": 7672, - "src": "1716:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7667, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1716:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7670, - "mutability": "mutable", - "name": "lastIVerifierSetTime", - "nameLocation": "1762:20:35", - "nodeType": "VariableDeclaration", - "scope": 7672, - "src": "1754:28:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7669, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1754:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1643:149:35" - }, - "scope": 7736, - "src": "1535:258:35", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7673, - "nodeType": "StructuredDocumentation", - "src": "1799:317:35", - "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": 7680, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "registerDomain", - "nameLocation": "2130:14:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7675, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2153:5:35", - "nodeType": "VariableDeclaration", - "scope": 7680, - "src": "2145:13:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2145:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7677, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2168:10:35", - "nodeType": "VariableDeclaration", - "scope": 7680, - "src": "2160:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7676, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2160:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2144:35:35" - }, - "returnParameters": { - "id": 7679, - "nodeType": "ParameterList", - "parameters": [], - "src": "2188:0:35" - }, - "scope": 7736, - "src": "2121:68:35", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7681, - "nodeType": "StructuredDocumentation", - "src": "2195:655:35", - "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": 7691, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "registerDomainWithVerifier", - "nameLocation": "2864:26:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7683, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2908:5:35", - "nodeType": "VariableDeclaration", - "scope": 7691, - "src": "2900:13:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7682, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2900:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7685, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2931:10:35", - "nodeType": "VariableDeclaration", - "scope": 7691, - "src": "2923:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7684, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2923:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7688, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2961:8:35", - "nodeType": "VariableDeclaration", - "scope": 7691, - "src": "2951:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7687, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7686, - "name": "IVerifier", - "nameLocations": [ - "2951:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "2951:9:35" - }, - "referencedDeclaration": 8101, - "src": "2951:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "2890:85:35" - }, - "returnParameters": { - "id": 7690, - "nodeType": "ParameterList", - "parameters": [], - "src": "2984:0:35" - }, - "scope": 7736, - "src": "2855:130:35", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7692, - "nodeType": "StructuredDocumentation", - "src": "2991:83:35", - "text": " @dev Returns true if the account is the owner of the domainHash." - }, - "functionSelector": "8023597e", - "id": 7701, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isDomainOwner", - "nameLocation": "3088:13:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7697, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7694, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3110:10:35", - "nodeType": "VariableDeclaration", - "scope": 7701, - "src": "3102:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7693, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3102:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7696, - "mutability": "mutable", - "name": "account", - "nameLocation": "3130:7:35", - "nodeType": "VariableDeclaration", - "scope": 7701, - "src": "3122:15:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7695, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3122:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3101:37:35" - }, - "returnParameters": { - "id": 7700, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7699, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7701, - "src": "3162:4:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7698, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3162:4:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3161:6:35" - }, - "scope": 7736, - "src": "3079:89:35", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7702, - "nodeType": "StructuredDocumentation", - "src": "3174:206:35", - "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": 7709, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "domainOwner", - "nameLocation": "3394:11:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7705, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7704, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3414:10:35", - "nodeType": "VariableDeclaration", - "scope": 7709, - "src": "3406:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7703, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3406:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3405:20:35" - }, - "returnParameters": { - "id": 7708, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7707, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7709, - "src": "3449:7:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7706, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3449:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3448:9:35" - }, - "scope": 7736, - "src": "3385:73:35", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7710, - "nodeType": "StructuredDocumentation", - "src": "3464:239:35", - "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": 7718, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "domainVerifier", - "nameLocation": "3717:14:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7713, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7712, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3740:10:35", - "nodeType": "VariableDeclaration", - "scope": 7718, - "src": "3732:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7711, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3732:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3731:20:35" - }, - "returnParameters": { - "id": 7717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7716, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7718, - "src": "3775:9:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7715, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7714, - "name": "IVerifier", - "nameLocations": [ - "3775:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "3775:9:35" - }, - "referencedDeclaration": 8101, - "src": "3775:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "3774:11:35" - }, - "scope": 7736, - "src": "3708:78:35", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7719, - "nodeType": "StructuredDocumentation", - "src": "3792:236:35", - "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": 7726, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "domainVerifierSetTime", - "nameLocation": "4042:21:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7722, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7721, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "4072:10:35", - "nodeType": "VariableDeclaration", - "scope": 7726, - "src": "4064:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7720, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4064:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4063:20:35" - }, - "returnParameters": { - "id": 7725, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7724, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7726, - "src": "4107:7:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7723, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4107:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4106:9:35" - }, - "scope": 7736, - "src": "4033:83:35", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7727, - "nodeType": "StructuredDocumentation", - "src": "4122:402:35", - "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": 7735, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setVerifier", - "nameLocation": "4538:11:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7729, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "4558:10:35", - "nodeType": "VariableDeclaration", - "scope": 7735, - "src": "4550:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7728, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4550:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7732, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "4580:8:35", - "nodeType": "VariableDeclaration", - "scope": 7735, - "src": "4570:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7731, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7730, - "name": "IVerifier", - "nameLocations": [ - "4570:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "4570:9:35" - }, - "referencedDeclaration": 8101, - "src": "4570:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "4549:40:35" - }, - "returnParameters": { - "id": 7734, - "nodeType": "ParameterList", - "parameters": [], - "src": "4598:0:35" - }, - "scope": 7736, - "src": "4529:70:35", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 7737, - "src": "486:4115:35", - "usedErrors": [], - "usedEvents": [ - 7633, - 7646, - 7657 - ] - } - ], - "src": "37:4565:35" - }, - "id": 35 - }, - "contracts/SciRegistry/SciRegistry.sol": { - "ast": { - "absolutePath": "contracts/SciRegistry/SciRegistry.sol", - "exportedSymbols": { - "AccessControlDefaultAdminRules": [ - 2436 - ], - "Context": [ - 3417 - ], - "DomainManager": [ - 7204 - ], - "ISciRegistry": [ - 7736 - ], - "IVerifier": [ - 8101 - ], - "Pausable": [ - 3608 - ], - "SciRegistry": [ - 8085 - ] - }, - "id": 8086, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7738, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:36" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "@openzeppelin/contracts/utils/Context.sol", - "id": 7740, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 3418, - "src": "62:66:36", - "symbolAliases": [ - { - "foreign": { - "id": 7739, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "src": "70:7:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Pausable.sol", - "file": "@openzeppelin/contracts/utils/Pausable.sol", - "id": 7742, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 3609, - "src": "129:68:36", - "symbolAliases": [ - { - "foreign": { - "id": 7741, - "name": "Pausable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3608, - "src": "137:8:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", - "file": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", - "id": 7744, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 2437, - "src": "198:124:36", - "symbolAliases": [ - { - "foreign": { - "id": 7743, - "name": "AccessControlDefaultAdminRules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2436, - "src": "206:30:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "../Verifiers/IVerifier.sol", - "id": 7746, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 8102, - "src": "323:53:36", - "symbolAliases": [ - { - "foreign": { - "id": 7745, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "331:9:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "file": "./ISciRegistry.sol", - "id": 7748, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 7737, - "src": "377:48:36", - "symbolAliases": [ - { - "foreign": { - "id": 7747, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "385:12:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/DomainMangager/DomainManager.sol", - "file": "../DomainMangager/DomainManager.sol", - "id": 7750, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 7205, - "src": "426:66:36", - "symbolAliases": [ - { - "foreign": { - "id": 7749, - "name": "DomainManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7204, - "src": "434:13:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 7752, - "name": "ISciRegistry", - "nameLocations": [ - "626:12:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7736, - "src": "626:12:36" - }, - "id": 7753, - "nodeType": "InheritanceSpecifier", - "src": "626:12:36" - }, - { - "baseName": { - "id": 7754, - "name": "Context", - "nameLocations": [ - "644:7:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3417, - "src": "644:7:36" - }, - "id": 7755, - "nodeType": "InheritanceSpecifier", - "src": "644:7:36" - }, - { - "baseName": { - "id": 7756, - "name": "AccessControlDefaultAdminRules", - "nameLocations": [ - "657:30:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2436, - "src": "657:30:36" - }, - "id": 7757, - "nodeType": "InheritanceSpecifier", - "src": "657:30:36" - }, - { - "baseName": { - "id": 7758, - "name": "DomainManager", - "nameLocations": [ - "693:13:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7204, - "src": "693:13:36" - }, - "id": 7759, - "nodeType": "InheritanceSpecifier", - "src": "693:13:36" - }, - { - "baseName": { - "id": 7760, - "name": "Pausable", - "nameLocations": [ - "712:8:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3608, - "src": "712:8:36" - }, - "id": 7761, - "nodeType": "InheritanceSpecifier", - "src": "712:8:36" - } - ], - "canonicalName": "SciRegistry", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7751, - "nodeType": "StructuredDocumentation", - "src": "494:103:36", - "text": " @title Registry\n @dev See {ISciRegistry}.\n @custom:security-contact security@sci.domains" - }, - "fullyImplemented": true, - "id": 8085, - "linearizedBaseContracts": [ - 8085, - 3608, - 7204, - 2436, - 1488, - 3756, - 3768, - 2566, - 2535, - 1571, - 3417, - 7736 - ], - "name": "SciRegistry", - "nameLocation": "607:11:36", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "SciRegistry.Record", - "documentation": { - "id": 7762, - "nodeType": "StructuredDocumentation", - "src": "727:343:36", - "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": 7772, - "members": [ - { - "constant": false, - "id": 7764, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1107:5:36", - "nodeType": "VariableDeclaration", - "scope": 7772, - "src": "1099:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7763, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1099:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7767, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "1132:8:36", - "nodeType": "VariableDeclaration", - "scope": 7772, - "src": "1122:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7766, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7765, - "name": "IVerifier", - "nameLocations": [ - "1122:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "1122:9:36" - }, - "referencedDeclaration": 8101, - "src": "1122:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7769, - "mutability": "mutable", - "name": "ownerSetTime", - "nameLocation": "1158:12:36", - "nodeType": "VariableDeclaration", - "scope": 7772, - "src": "1150:20:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7768, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1150:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7771, - "mutability": "mutable", - "name": "verifierSetTime", - "nameLocation": "1188:15:36", - "nodeType": "VariableDeclaration", - "scope": 7772, - "src": "1180:23:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7770, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1180:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Record", - "nameLocation": "1082:6:36", - "nodeType": "StructDefinition", - "scope": 8085, - "src": "1075:135:36", - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "be8cd266", - "id": 7777, - "mutability": "constant", - "name": "REGISTRAR_MANAGER_ROLE", - "nameLocation": "1290:22:36", - "nodeType": "VariableDeclaration", - "scope": 8085, - "src": "1266:84:36", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7773, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1266:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "5245474953545241525f4d414e414745525f524f4c45", - "id": 7775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1325:24:36", - "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": 7774, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1315:9:36", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 7776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1315:35:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "f68e9553", - "id": 7782, - "mutability": "constant", - "name": "REGISTRAR_ROLE", - "nameLocation": "1425:14:36", - "nodeType": "VariableDeclaration", - "scope": 8085, - "src": "1401:68:36", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7778, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1401:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "5245474953545241525f524f4c45", - "id": 7780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1452:16:36", - "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": 7779, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1442:9:36", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 7781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1442:27:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "e63ab1e9", - "id": 7787, - "mutability": "constant", - "name": "PAUSER_ROLE", - "nameLocation": "1546:11:36", - "nodeType": "VariableDeclaration", - "scope": 8085, - "src": "1522:62:36", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7783, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1522:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "5041555345525f524f4c45", - "id": 7785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1570:13:36", - "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": 7784, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1560:9:36", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 7786, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1560:24:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "baseFunctions": [ - 7672 - ], - "constant": false, - "documentation": { - "id": 7788, - "nodeType": "StructuredDocumentation", - "src": "1591:66:36", - "text": " @dev Maps the namehash of a domain to a Record." - }, - "functionSelector": "5b377fa2", - "id": 7793, - "mutability": "mutable", - "name": "domainHashToRecord", - "nameLocation": "1712:18:36", - "nodeType": "VariableDeclaration", - "scope": 8085, - "src": "1662:68:36", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record)" - }, - "typeName": { - "id": 7792, - "keyName": "nameHash", - "keyNameLocation": "1678:8:36", - "keyType": { - "id": 7789, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1670:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1662:42:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record)" - }, - "valueName": "domain", - "valueNameLocation": "1697:6:36", - "valueType": { - "id": 7791, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7790, - "name": "Record", - "nameLocations": [ - "1690:6:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7772, - "src": "1690:6:36" - }, - "referencedDeclaration": 7772, - "src": "1690:6:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage_ptr", - "typeString": "struct SciRegistry.Record" - } - } - }, - "visibility": "public" - }, - { - "body": { - "id": 7815, - "nodeType": "Block", - "src": "2134:70:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7811, - "name": "REGISTRAR_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7782, - "src": "2158:14:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7812, - "name": "REGISTRAR_MANAGER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7777, - "src": "2174:22:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7810, - "name": "_setRoleAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2026 - ], - "referencedDeclaration": 2026, - "src": "2144:13:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (bytes32,bytes32)" - } - }, - "id": 7813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2144:53:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7814, - "nodeType": "ExpressionStatement", - "src": "2144:53:36" - } - ] - }, - "documentation": { - "id": 7794, - "nodeType": "StructuredDocumentation", - "src": "1737:257:36", - "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": 7816, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 7799, - "name": "initialDelay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "2077:12:36", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7800, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2091:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2091:12:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 7802, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 7798, - "name": "AccessControlDefaultAdminRules", - "nameLocations": [ - "2046:30:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2436, - "src": "2046:30:36" - }, - "nodeType": "ModifierInvocation", - "src": "2046:58:36" - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 7806, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "2127:4:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SciRegistry_$8085", - "typeString": "contract SciRegistry" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SciRegistry_$8085", - "typeString": "contract SciRegistry" - } - ], - "id": 7805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2119:7:36", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7804, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2119:7:36", - "typeDescriptions": {} - } - }, - "id": 7807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2119:13:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 7808, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 7803, - "name": "DomainManager", - "nameLocations": [ - "2105:13:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7204, - "src": "2105:13:36" - }, - "nodeType": "ModifierInvocation", - "src": "2105:28:36" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7796, - "mutability": "mutable", - "name": "initialDelay", - "nameLocation": "2027:12:36", - "nodeType": "VariableDeclaration", - "scope": 7816, - "src": "2020:19:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 7795, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "2020:6:36", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "2010:35:36" - }, - "returnParameters": { - "id": 7809, - "nodeType": "ParameterList", - "parameters": [], - "src": "2134:0:36" - }, - "scope": 8085, - "src": "1999:205:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 7680 - ], - "body": { - "id": 7829, - "nodeType": "Block", - "src": "2341:51:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7825, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7819, - "src": "2367:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7826, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7821, - "src": "2374:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7824, - "name": "_registerDomain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8002, - "src": "2351:15:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32)" - } - }, - "id": 7827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2351:34:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7828, - "nodeType": "ExpressionStatement", - "src": "2351:34:36" - } - ] - }, - "documentation": { - "id": 7817, - "nodeType": "StructuredDocumentation", - "src": "2210:58:36", - "text": " @dev See {ISciRegistry-registerDomain}." - }, - "functionSelector": "a8c00861", - "id": 7830, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "registerDomain", - "nameLocation": "2282:14:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7822, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7819, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2305:5:36", - "nodeType": "VariableDeclaration", - "scope": 7830, - "src": "2297:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7818, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2297:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7821, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2320:10:36", - "nodeType": "VariableDeclaration", - "scope": 7830, - "src": "2312:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7820, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2312:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2296:35:36" - }, - "returnParameters": { - "id": 7823, - "nodeType": "ParameterList", - "parameters": [], - "src": "2341:0:36" - }, - "scope": 8085, - "src": "2273:119:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 7691 - ], - "body": { - "id": 7851, - "nodeType": "Block", - "src": "2603:95:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7842, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7833, - "src": "2629:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7843, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7835, - "src": "2636:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7841, - "name": "_registerDomain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8002, - "src": "2613:15:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32)" - } - }, - "id": 7844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2613:34:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7845, - "nodeType": "ExpressionStatement", - "src": "2613:34:36" - }, - { - "expression": { - "arguments": [ - { - "id": 7847, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7835, - "src": "2670:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7848, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7838, - "src": "2682:8:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "id": 7846, - "name": "_setVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8045, - "src": "2657:12:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IVerifier_$8101_$returns$__$", - "typeString": "function (bytes32,contract IVerifier)" - } - }, - "id": 7849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2657:34:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7850, - "nodeType": "ExpressionStatement", - "src": "2657:34:36" - } - ] - }, - "documentation": { - "id": 7831, - "nodeType": "StructuredDocumentation", - "src": "2398:70:36", - "text": " @dev See {ISciRegistry-registerDomainWithVerifier}." - }, - "functionSelector": "dd738e6c", - "id": 7852, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "registerDomainWithVerifier", - "nameLocation": "2482:26:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7839, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7833, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2526:5:36", - "nodeType": "VariableDeclaration", - "scope": 7852, - "src": "2518:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7832, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2518:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7835, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2549:10:36", - "nodeType": "VariableDeclaration", - "scope": 7852, - "src": "2541:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7834, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2541:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7838, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2579:8:36", - "nodeType": "VariableDeclaration", - "scope": 7852, - "src": "2569:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7837, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7836, - "name": "IVerifier", - "nameLocations": [ - "2569:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "2569:9:36" - }, - "referencedDeclaration": 8101, - "src": "2569:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "2508:85:36" - }, - "returnParameters": { - "id": 7840, - "nodeType": "ParameterList", - "parameters": [], - "src": "2603:0:36" - }, - "scope": 8085, - "src": "2473:225:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7862, - "nodeType": "Block", - "src": "2832:25:36", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7859, - "name": "_pause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "2842:6:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 7860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2842:8:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7861, - "nodeType": "ExpressionStatement", - "src": "2842:8:36" - } - ] - }, - "documentation": { - "id": 7853, - "nodeType": "StructuredDocumentation", - "src": "2704:75:36", - "text": " @dev Pauses registering a domain and setting a verifier." - }, - "functionSelector": "8456cb59", - "id": 7863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7856, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7787, - "src": "2819:11:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7857, - "kind": "modifierInvocation", - "modifierName": { - "id": 7855, - "name": "onlyRole", - "nameLocations": [ - "2810:8:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "2810:8:36" - }, - "nodeType": "ModifierInvocation", - "src": "2810:21:36" - } - ], - "name": "pause", - "nameLocation": "2793:5:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7854, - "nodeType": "ParameterList", - "parameters": [], - "src": "2798:2:36" - }, - "returnParameters": { - "id": 7858, - "nodeType": "ParameterList", - "parameters": [], - "src": "2832:0:36" - }, - "scope": 8085, - "src": "2784:73:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7873, - "nodeType": "Block", - "src": "2995:27:36", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7870, - "name": "_unpause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3607, - "src": "3005:8:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 7871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3005:10:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7872, - "nodeType": "ExpressionStatement", - "src": "3005:10:36" - } - ] - }, - "documentation": { - "id": 7864, - "nodeType": "StructuredDocumentation", - "src": "2863:77:36", - "text": " @dev Unpauses registering a domain and setting a verifier." - }, - "functionSelector": "3f4ba83a", - "id": 7874, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7867, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7787, - "src": "2982:11:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7868, - "kind": "modifierInvocation", - "modifierName": { - "id": 7866, - "name": "onlyRole", - "nameLocations": [ - "2973:8:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "2973:8:36" - }, - "nodeType": "ModifierInvocation", - "src": "2973:21:36" - } - ], - "name": "unpause", - "nameLocation": "2954:7:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7865, - "nodeType": "ParameterList", - "parameters": [], - "src": "2961:2:36" - }, - "returnParameters": { - "id": 7869, - "nodeType": "ParameterList", - "parameters": [], - "src": "2995:0:36" - }, - "scope": 8085, - "src": "2945:77:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 7701 - ], - "body": { - "id": 7891, - "nodeType": "Block", - "src": "3218:58:36", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7886, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7877, - "src": "3247:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7885, - "name": "domainOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7976, - "src": "3235:11:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 7887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3235:23:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 7888, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7879, - "src": "3262:7:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3235:34:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7884, - "id": 7890, - "nodeType": "Return", - "src": "3228:41:36" - } - ] - }, - "documentation": { - "id": 7875, - "nodeType": "StructuredDocumentation", - "src": "3028:57:36", - "text": " @dev See {ISciRegistry-isDomainOwner}." - }, - "functionSelector": "8023597e", - "id": 7892, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDomainOwner", - "nameLocation": "3099:13:36", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7881, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "3194:8:36" - }, - "parameters": { - "id": 7880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7877, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3130:10:36", - "nodeType": "VariableDeclaration", - "scope": 7892, - "src": "3122:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7876, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3122:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7879, - "mutability": "mutable", - "name": "account", - "nameLocation": "3158:7:36", - "nodeType": "VariableDeclaration", - "scope": 7892, - "src": "3150:15:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7878, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3150:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3112:59:36" - }, - "returnParameters": { - "id": 7884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7883, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7892, - "src": "3212:4:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7882, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3212:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3211:6:36" - }, - "scope": 8085, - "src": "3090:186:36", - "stateMutability": "view", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 7735 - ], - "body": { - "id": 7911, - "nodeType": "Block", - "src": "3476:51:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7907, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7895, - "src": "3499:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7908, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7898, - "src": "3511:8:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "id": 7906, - "name": "_setVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8045, - "src": "3486:12:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IVerifier_$8101_$returns$__$", - "typeString": "function (bytes32,contract IVerifier)" - } - }, - "id": 7909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3486:34:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7910, - "nodeType": "ExpressionStatement", - "src": "3486:34:36" - } - ] - }, - "documentation": { - "id": 7893, - "nodeType": "StructuredDocumentation", - "src": "3282:55:36", - "text": " @dev See {ISciRegistry-setVerifier}." - }, - "functionSelector": "a692b9ef", - "id": 7912, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7901, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "3450:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3450:12:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7903, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7895, - "src": "3464:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7904, - "kind": "modifierInvocation", - "modifierName": { - "id": 7900, - "name": "onlyDomainOwner", - "nameLocations": [ - "3434:15:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7168, - "src": "3434:15:36" - }, - "nodeType": "ModifierInvocation", - "src": "3434:41:36" - } - ], - "name": "setVerifier", - "nameLocation": "3351:11:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7895, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3380:10:36", - "nodeType": "VariableDeclaration", - "scope": 7912, - "src": "3372:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7894, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3372:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7898, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "3410:8:36", - "nodeType": "VariableDeclaration", - "scope": 7912, - "src": "3400:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7897, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7896, - "name": "IVerifier", - "nameLocations": [ - "3400:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "3400:9:36" - }, - "referencedDeclaration": 8101, - "src": "3400:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "3362:62:36" - }, - "returnParameters": { - "id": 7905, - "nodeType": "ParameterList", - "parameters": [], - "src": "3476:0:36" - }, - "scope": 8085, - "src": "3342:185:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 7718 - ], - "body": { - "id": 7926, - "nodeType": "Block", - "src": "3682:63:36", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 7921, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "3699:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 7923, - "indexExpression": { - "id": 7922, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7915, - "src": "3718:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3699:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 7924, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3730:8:36", - "memberName": "verifier", - "nodeType": "MemberAccess", - "referencedDeclaration": 7767, - "src": "3699:39:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "functionReturnParameters": 7920, - "id": 7925, - "nodeType": "Return", - "src": "3692:46:36" - } - ] - }, - "documentation": { - "id": 7913, - "nodeType": "StructuredDocumentation", - "src": "3533:58:36", - "text": " @dev See {ISciRegistry-domainVerifier}." - }, - "functionSelector": "5a75199a", - "id": 7927, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "domainVerifier", - "nameLocation": "3605:14:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7916, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7915, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3628:10:36", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "3620:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7914, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3620:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3619:20:36" - }, - "returnParameters": { - "id": 7920, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7919, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "3671:9:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7918, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7917, - "name": "IVerifier", - "nameLocations": [ - "3671:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "3671:9:36" - }, - "referencedDeclaration": 8101, - "src": "3671:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "3670:11:36" - }, - "scope": 8085, - "src": "3596:149:36", - "stateMutability": "view", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 7726 - ], - "body": { - "id": 7940, - "nodeType": "Block", - "src": "3912:70:36", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 7935, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "3929:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 7937, - "indexExpression": { - "id": 7936, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7930, - "src": "3948:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3929:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 7938, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3960:15:36", - "memberName": "verifierSetTime", - "nodeType": "MemberAccess", - "referencedDeclaration": 7771, - "src": "3929:46:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7934, - "id": 7939, - "nodeType": "Return", - "src": "3922:53:36" - } - ] - }, - "documentation": { - "id": 7928, - "nodeType": "StructuredDocumentation", - "src": "3751:65:36", - "text": " @dev See {ISciRegistry-domainVerifierSetTime}." - }, - "functionSelector": "a2a6c0eb", - "id": 7941, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "domainVerifierSetTime", - "nameLocation": "3830:21:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7931, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7930, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3860:10:36", - "nodeType": "VariableDeclaration", - "scope": 7941, - "src": "3852:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7929, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3852:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3851:20:36" - }, - "returnParameters": { - "id": 7934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7933, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7941, - "src": "3903:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3903:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3902:9:36" - }, - "scope": 8085, - "src": "3821:161:36", - "stateMutability": "view", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 1843 - ], - "body": { - "id": 7960, - "nodeType": "Block", - "src": "4368:42:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7956, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7944, - "src": "4389:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7957, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7946, - "src": "4395:7:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7955, - "name": "_grantRole", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1970 - ], - "referencedDeclaration": 1970, - "src": "4378:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) returns (bool)" - } - }, - "id": 7958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4378:25:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7959, - "nodeType": "ExpressionStatement", - "src": "4378:25:36" - } - ] - }, - "documentation": { - "id": 7942, - "nodeType": "StructuredDocumentation", - "src": "3988:280:36", - "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": 7961, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 7951, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7944, - "src": "4361:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7950, - "name": "getRoleAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1321, - "src": "4348:12:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - } - }, - "id": 7952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4348:18:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7953, - "kind": "modifierInvocation", - "modifierName": { - "id": 7949, - "name": "onlyRole", - "nameLocations": [ - "4339:8:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "4339:8:36" - }, - "nodeType": "ModifierInvocation", - "src": "4339:28:36" - } - ], - "name": "grantRole", - "nameLocation": "4282:9:36", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7948, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4330:8:36" - }, - "parameters": { - "id": 7947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7944, - "mutability": "mutable", - "name": "role", - "nameLocation": "4300:4:36", - "nodeType": "VariableDeclaration", - "scope": 7961, - "src": "4292:12:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7943, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4292:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7946, - "mutability": "mutable", - "name": "account", - "nameLocation": "4314:7:36", - "nodeType": "VariableDeclaration", - "scope": 7961, - "src": "4306:15:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7945, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4306:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4291:31:36" - }, - "returnParameters": { - "id": 7954, - "nodeType": "ParameterList", - "parameters": [], - "src": "4368:0:36" - }, - "scope": 8085, - "src": "4273:137:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 7709 - ], - "body": { - "id": 7975, - "nodeType": "Block", - "src": "4564:60:36", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 7970, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "4581:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 7972, - "indexExpression": { - "id": 7971, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7964, - "src": "4600:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4581:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 7973, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4612:5:36", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 7764, - "src": "4581:36:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 7969, - "id": 7974, - "nodeType": "Return", - "src": "4574:43:36" - } - ] - }, - "documentation": { - "id": 7962, - "nodeType": "StructuredDocumentation", - "src": "4416:55:36", - "text": " @dev See {ISciRegistry-domainOwner}." - }, - "functionSelector": "d26cdd20", - "id": 7976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "domainOwner", - "nameLocation": "4485:11:36", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7966, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4537:8:36" - }, - "parameters": { - "id": 7965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7964, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "4505:10:36", - "nodeType": "VariableDeclaration", - "scope": 7976, - "src": "4497:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7963, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4497:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4496:20:36" - }, - "returnParameters": { - "id": 7969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7968, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7976, - "src": "4555:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7967, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4555:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4554:9:36" - }, - "scope": 8085, - "src": "4476:148:36", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 8001, - "nodeType": "Block", - "src": "5130:115:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7990, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "5156:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7991, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7979, - "src": "5168:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7989, - "name": "_setDomainOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8084, - "src": "5140:15:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 7992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5140:34:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7993, - "nodeType": "ExpressionStatement", - "src": "5140:34:36" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7995, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "5206:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5206:12:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7997, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7979, - "src": "5220:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7998, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "5227:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7994, - "name": "DomainRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7633, - "src": "5189:16:36", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,bytes32)" - } - }, - "id": 7999, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5189:49:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8000, - "nodeType": "EmitStatement", - "src": "5184:54:36" - } - ] - }, - "documentation": { - "id": 7977, - "nodeType": "StructuredDocumentation", - "src": "4630:366:36", - "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": 8002, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7984, - "name": "REGISTRAR_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7782, - "src": "5100:14:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7985, - "kind": "modifierInvocation", - "modifierName": { - "id": 7983, - "name": "onlyRole", - "nameLocations": [ - "5091:8:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "5091:8:36" - }, - "nodeType": "ModifierInvocation", - "src": "5091:24:36" - }, - { - "id": 7987, - "kind": "modifierInvocation", - "modifierName": { - "id": 7986, - "name": "whenNotPaused", - "nameLocations": [ - "5116:13:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3533, - "src": "5116:13:36" - }, - "nodeType": "ModifierInvocation", - "src": "5116:13:36" - } - ], - "name": "_registerDomain", - "nameLocation": "5010:15:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7979, - "mutability": "mutable", - "name": "owner", - "nameLocation": "5043:5:36", - "nodeType": "VariableDeclaration", - "scope": 8002, - "src": "5035:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5035:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7981, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "5066:10:36", - "nodeType": "VariableDeclaration", - "scope": 8002, - "src": "5058:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7980, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5058:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5025:57:36" - }, - "returnParameters": { - "id": 7988, - "nodeType": "ParameterList", - "parameters": [], - "src": "5130:0:36" - }, - "scope": 8085, - "src": "5001:244:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 8044, - "nodeType": "Block", - "src": "5593:289:36", - "statements": [ - { - "assignments": [ - 8015 - ], - "declarations": [ - { - "constant": false, - "id": 8015, - "mutability": "mutable", - "name": "oldVerifier", - "nameLocation": "5613:11:36", - "nodeType": "VariableDeclaration", - "scope": 8044, - "src": "5603:21:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 8014, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8013, - "name": "IVerifier", - "nameLocations": [ - "5603:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "5603:9:36" - }, - "referencedDeclaration": 8101, - "src": "5603:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "id": 8020, - "initialValue": { - "expression": { - "baseExpression": { - "id": 8016, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "5627:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8018, - "indexExpression": { - "id": 8017, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8005, - "src": "5646:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5627:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8019, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5658:8:36", - "memberName": "verifier", - "nodeType": "MemberAccess", - "referencedDeclaration": 7767, - "src": "5627:39:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5603:63:36" - }, - { - "expression": { - "id": 8026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 8021, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "5676:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8023, - "indexExpression": { - "id": 8022, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8005, - "src": "5695:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5676:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8024, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "5707:8:36", - "memberName": "verifier", - "nodeType": "MemberAccess", - "referencedDeclaration": 7767, - "src": "5676:39:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 8025, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8008, - "src": "5718:8:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "src": "5676:50:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "id": 8027, - "nodeType": "ExpressionStatement", - "src": "5676:50:36" - }, - { - "expression": { - "id": 8034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 8028, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "5736:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8030, - "indexExpression": { - "id": 8029, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8005, - "src": "5755:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5736:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8031, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "5767:15:36", - "memberName": "verifierSetTime", - "nodeType": "MemberAccess", - "referencedDeclaration": 7771, - "src": "5736:46:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 8032, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "5785:5:36", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5791:9:36", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "5785:15:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5736:64:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8035, - "nodeType": "ExpressionStatement", - "src": "5736:64:36" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8037, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "5827:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5827:12:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8039, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8005, - "src": "5841:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 8040, - "name": "oldVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8015, - "src": "5853:11:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - { - "id": 8041, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8008, - "src": "5866:8:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "id": 8036, - "name": "VerifierSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "5815:11:36", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8101_$_t_contract$_IVerifier_$8101_$returns$__$", - "typeString": "function (address,bytes32,contract IVerifier,contract IVerifier)" - } - }, - "id": 8042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5815:60:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8043, - "nodeType": "EmitStatement", - "src": "5810:65:36" - } - ] - }, - "documentation": { - "id": 8003, - "nodeType": "StructuredDocumentation", - "src": "5251:253:36", - "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": 8045, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8011, - "kind": "modifierInvocation", - "modifierName": { - "id": 8010, - "name": "whenNotPaused", - "nameLocations": [ - "5579:13:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3533, - "src": "5579:13:36" - }, - "nodeType": "ModifierInvocation", - "src": "5579:13:36" - } - ], - "name": "_setVerifier", - "nameLocation": "5518:12:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8005, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "5539:10:36", - "nodeType": "VariableDeclaration", - "scope": 8045, - "src": "5531:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8004, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5531:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8008, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "5561:8:36", - "nodeType": "VariableDeclaration", - "scope": 8045, - "src": "5551:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 8007, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8006, - "name": "IVerifier", - "nameLocations": [ - "5551:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "5551:9:36" - }, - "referencedDeclaration": 8101, - "src": "5551:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "5530:40:36" - }, - "returnParameters": { - "id": 8012, - "nodeType": "ParameterList", - "parameters": [], - "src": "5593:0:36" - }, - "scope": 8085, - "src": "5509:373:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 8083, - "nodeType": "Block", - "src": "6076:263:36", - "statements": [ - { - "assignments": [ - 8054 - ], - "declarations": [ - { - "constant": false, - "id": 8054, - "mutability": "mutable", - "name": "oldOwner", - "nameLocation": "6094:8:36", - "nodeType": "VariableDeclaration", - "scope": 8083, - "src": "6086:16:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8053, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6086:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 8059, - "initialValue": { - "expression": { - "baseExpression": { - "id": 8055, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "6105:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8057, - "indexExpression": { - "id": 8056, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "6124:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6105:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8058, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6136:5:36", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 7764, - "src": "6105:36:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6086:55:36" - }, - { - "expression": { - "id": 8065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 8060, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "6151:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8062, - "indexExpression": { - "id": 8061, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "6170:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6151:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8063, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6182:5:36", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 7764, - "src": "6151:36:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 8064, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8050, - "src": "6190:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6151:44:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8066, - "nodeType": "ExpressionStatement", - "src": "6151:44:36" - }, - { - "expression": { - "id": 8073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 8067, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "6205:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8069, - "indexExpression": { - "id": 8068, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "6224:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6205:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8070, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6236:12:36", - "memberName": "ownerSetTime", - "nodeType": "MemberAccess", - "referencedDeclaration": 7769, - "src": "6205:43:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 8071, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "6251:5:36", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6257:9:36", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "6251:15:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6205:61:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8074, - "nodeType": "ExpressionStatement", - "src": "6205:61:36" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8076, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "6290:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6290:12:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8078, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "6304:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 8079, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8054, - "src": "6316:8:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8080, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8050, - "src": "6326:5:36", - "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": 8075, - "name": "OwnerSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7657, - "src": "6281:8:36", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,bytes32,address,address)" - } - }, - "id": 8081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6281:51:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8082, - "nodeType": "EmitStatement", - "src": "6276:56:36" - } - ] - }, - "documentation": { - "id": 8046, - "nodeType": "StructuredDocumentation", - "src": "5888:115:36", - "text": " @dev Sets the owner of a domain,\n All updates to an owner should be through this function." - }, - "id": 8084, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setDomainOwner", - "nameLocation": "6017:15:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8051, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8048, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "6041:10:36", - "nodeType": "VariableDeclaration", - "scope": 8084, - "src": "6033:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8047, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6033:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8050, - "mutability": "mutable", - "name": "owner", - "nameLocation": "6061:5:36", - "nodeType": "VariableDeclaration", - "scope": 8084, - "src": "6053:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8049, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6053:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6032:35:36" - }, - "returnParameters": { - "id": 8052, - "nodeType": "ParameterList", - "parameters": [], - "src": "6076:0:36" - }, - "scope": 8085, - "src": "6008:331:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - } - ], - "scope": 8086, - "src": "598:5743:36", - "usedErrors": [ - 1498, - 1501, - 2448, - 2451, - 2456, - 3513, - 3516, - 5384, - 7154 - ], - "usedEvents": [ - 1510, - 1519, - 1528, - 2463, - 2466, - 2473, - 2476, - 3505, - 3510, - 7633, - 7646, - 7657 - ] - } - ], - "src": "37:6305:36" - }, - "id": 36 - }, - "contracts/Verifiers/IVerifier.sol": { - "ast": { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "exportedSymbols": { - "IVerifier": [ - 8101 - ] - }, - "id": 8102, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8087, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:37" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IVerifier", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 8088, - "nodeType": "StructuredDocumentation", - "src": "62:158:37", - "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": 8101, - "linearizedBaseContracts": [ - 8101 - ], - "name": "IVerifier", - "nameLocation": "231:9:37", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 8089, - "nodeType": "StructuredDocumentation", - "src": "247:685:37", - "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": 8100, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isVerified", - "nameLocation": "946:10:37", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8096, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8091, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "974:10:37", - "nodeType": "VariableDeclaration", - "scope": 8100, - "src": "966:18:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8090, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "966:7:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8093, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "1002:15:37", - "nodeType": "VariableDeclaration", - "scope": 8100, - "src": "994:23:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8092, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "994:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8095, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "1035:7:37", - "nodeType": "VariableDeclaration", - "scope": 8100, - "src": "1027:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8094, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1027:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "956:92:37" - }, - "returnParameters": { - "id": 8099, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8098, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8100, - "src": "1072:7:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8097, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1072:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1071:9:37" - }, - "scope": 8101, - "src": "937:144:37", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 8102, - "src": "221:862:37", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "37:1047:37" - }, - "id": 37 - }, - "contracts/Verifiers/PublicListVerifier.sol": { - "ast": { - "absolutePath": "contracts/Verifiers/PublicListVerifier.sol", - "exportedSymbols": { - "Context": [ - 3417 - ], - "DomainManager": [ - 7204 - ], - "IVerifier": [ - 8101 - ], - "PublicListVerifier": [ - 8370 - ] - }, - "id": 8371, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8103, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:38" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "./IVerifier.sol", - "id": 8105, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8371, - "sourceUnit": 8102, - "src": "62:42:38", - "symbolAliases": [ - { - "foreign": { - "id": 8104, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "70:9:38", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/DomainMangager/DomainManager.sol", - "file": "../DomainMangager/DomainManager.sol", - "id": 8107, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8371, - "sourceUnit": 7205, - "src": "105:66:38", - "symbolAliases": [ - { - "foreign": { - "id": 8106, - "name": "DomainManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7204, - "src": "113:13:38", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "@openzeppelin/contracts/utils/Context.sol", - "id": 8109, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8371, - "sourceUnit": 3418, - "src": "172:66:38", - "symbolAliases": [ - { - "foreign": { - "id": 8108, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "src": "180:7:38", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 8111, - "name": "IVerifier", - "nameLocations": [ - "657:9:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "657:9:38" - }, - "id": 8112, - "nodeType": "InheritanceSpecifier", - "src": "657:9:38" - }, - { - "baseName": { - "id": 8113, - "name": "Context", - "nameLocations": [ - "668:7:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3417, - "src": "668:7:38" - }, - "id": 8114, - "nodeType": "InheritanceSpecifier", - "src": "668:7:38" - }, - { - "baseName": { - "id": 8115, - "name": "DomainManager", - "nameLocations": [ - "677:13:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7204, - "src": "677:13:38" - }, - "id": 8116, - "nodeType": "InheritanceSpecifier", - "src": "677:13:38" - } - ], - "canonicalName": "PublicListVerifier", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 8110, - "nodeType": "StructuredDocumentation", - "src": "240:385:38", - "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": 8370, - "linearizedBaseContracts": [ - 8370, - 7204, - 3417, - 8101 - ], - "name": "PublicListVerifier", - "nameLocation": "635:18:38", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 8123, - "mutability": "constant", - "name": "MAX_INT", - "nameLocation": "722:7:38", - "nodeType": "VariableDeclaration", - "scope": 8370, - "src": "697:47:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "697:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "commonType": { - "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", - "typeString": "int_const 1157...(70 digits omitted)...9935" - }, - "id": 8122, - "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": 8120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 8118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "732:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "323536", - "id": 8119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "737:3:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - }, - "value": "256" - }, - "src": "732:8:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", - "typeString": "int_const 1157...(70 digits omitted)...9936" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 8121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "743:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "732:12:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", - "typeString": "int_const 1157...(70 digits omitted)...9935" - } - }, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "79fb477a", - "id": 8131, - "mutability": "mutable", - "name": "verifiedContracts", - "nameLocation": "953:17:38", - "nodeType": "VariableDeclaration", - "scope": 8370, - "src": "817:153:38", - "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": 8130, - "keyName": "domainHash", - "keyNameLocation": "833:10:38", - "keyType": { - "id": 8124, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "825:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "817:120:38", - "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": 8129, - "keyName": "contractAddress", - "keyNameLocation": "863:15:38", - "keyType": { - "id": 8125, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "855:7:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "847:89:38", - "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": 8128, - "keyName": "chainId", - "keyNameLocation": "898:7:38", - "keyType": { - "id": 8126, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "890:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "882:53:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueName": "registerTimestamp", - "valueNameLocation": "917:17:38", - "valueType": { - "id": 8127, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "909:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - } - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": { - "id": 8132, - "nodeType": "StructuredDocumentation", - "src": "977:107:38", - "text": " @dev Emitted when the `msgSender` removes an address to a `domainHash` for a `chainId`." - }, - "eventSelector": "36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75", - "id": 8142, - "name": "AddressRemoved", - "nameLocation": "1095:14:38", - "nodeType": "EventDefinition", - "parameters": { - "id": 8141, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8134, - "indexed": true, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1135:10:38", - "nodeType": "VariableDeclaration", - "scope": 8142, - "src": "1119:26:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8133, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1119:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8136, - "indexed": true, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "1171:7:38", - "nodeType": "VariableDeclaration", - "scope": 8142, - "src": "1155:23:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1155:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8138, - "indexed": true, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "1204:15:38", - "nodeType": "VariableDeclaration", - "scope": 8142, - "src": "1188:31:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1188:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8140, - "indexed": false, - "mutability": "mutable", - "name": "msgSender", - "nameLocation": "1237:9:38", - "nodeType": "VariableDeclaration", - "scope": 8142, - "src": "1229:17:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1229:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1109:143:38" - }, - "src": "1089:164:38" - }, - { - "anonymous": false, - "documentation": { - "id": 8143, - "nodeType": "StructuredDocumentation", - "src": "1259:104:38", - "text": " @dev Emitted when the `msgSender` adds an address to a `domainHash` for a `chainId`." - }, - "eventSelector": "c177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd0", - "id": 8153, - "name": "AddressAdded", - "nameLocation": "1374:12:38", - "nodeType": "EventDefinition", - "parameters": { - "id": 8152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8145, - "indexed": true, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1412:10:38", - "nodeType": "VariableDeclaration", - "scope": 8153, - "src": "1396:26:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8144, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1396:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8147, - "indexed": true, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "1448:7:38", - "nodeType": "VariableDeclaration", - "scope": 8153, - "src": "1432:23:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1432:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8149, - "indexed": true, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "1481:15:38", - "nodeType": "VariableDeclaration", - "scope": 8153, - "src": "1465:31:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8148, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1465:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8151, - "indexed": false, - "mutability": "mutable", - "name": "msgSender", - "nameLocation": "1514:9:38", - "nodeType": "VariableDeclaration", - "scope": 8153, - "src": "1506:17:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1506:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1386:143:38" - }, - "src": "1368:162:38" - }, - { - "body": { - "id": 8161, - "nodeType": "Block", - "src": "1592:2:38", - "statements": [] - }, - "id": 8162, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 8158, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "1581:9:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 8159, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 8157, - "name": "DomainManager", - "nameLocations": [ - "1567:13:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7204, - "src": "1567:13:38" - }, - "nodeType": "ModifierInvocation", - "src": "1567:24:38" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8155, - "mutability": "mutable", - "name": "_registry", - "nameLocation": "1556:9:38", - "nodeType": "VariableDeclaration", - "scope": 8162, - "src": "1548:17:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8154, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1548:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1547:19:38" - }, - "returnParameters": { - "id": 8160, - "nodeType": "ParameterList", - "parameters": [], - "src": "1592:0:38" - }, - "scope": 8370, - "src": "1536:58:38", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 8239, - "nodeType": "Block", - "src": "1966:498:38", - "statements": [ - { - "body": { - "id": 8237, - "nodeType": "Block", - "src": "2024:434:38", - "statements": [ - { - "body": { - "id": 8231, - "nodeType": "Block", - "src": "2080:309:38", - "statements": [ - { - "expression": { - "id": 8211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 8196, - "name": "verifiedContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8131, - "src": "2098:17:38", - "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": 8206, - "indexExpression": { - "id": 8197, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8165, - "src": "2116:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2098:29:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8207, - "indexExpression": { - "baseExpression": { - "id": 8198, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8168, - "src": "2128:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8200, - "indexExpression": { - "id": 8199, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2146:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2128:20:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2098:51:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8208, - "indexExpression": { - "baseExpression": { - "baseExpression": { - "id": 8201, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8172, - "src": "2150:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8203, - "indexExpression": { - "id": 8202, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2159:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2150:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8205, - "indexExpression": { - "id": 8204, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "2162:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2150:14:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2098:67:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 8209, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "2168:5:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2195:9:38", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "2168:36:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2098:106:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8212, - "nodeType": "ExpressionStatement", - "src": "2098:106:38" - }, - { - "eventCall": { - "arguments": [ - { - "id": 8214, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8165, - "src": "2240:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "baseExpression": { - "baseExpression": { - "id": 8215, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8172, - "src": "2252:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8217, - "indexExpression": { - "id": 8216, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2261:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2252:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8219, - "indexExpression": { - "id": 8218, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "2264:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2252:14:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 8220, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8168, - "src": "2268:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8222, - "indexExpression": { - "id": 8221, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2286:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2268:20:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8223, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2290:10:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2290:12:38", - "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": 8213, - "name": "AddressAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8153, - "src": "2227:12:38", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (bytes32,uint256,address,address)" - } - }, - "id": 8225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2227:76:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8226, - "nodeType": "EmitStatement", - "src": "2222:81:38" - }, - { - "id": 8230, - "nodeType": "UncheckedBlock", - "src": "2321:54:38", - "statements": [ - { - "expression": { - "id": 8228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "2353:3:38", - "subExpression": { - "id": 8227, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "2355:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8229, - "nodeType": "ExpressionStatement", - "src": "2353:3:38" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8190, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "2054:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "baseExpression": { - "id": 8191, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8172, - "src": "2058:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8193, - "indexExpression": { - "id": 8192, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2067:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2058:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2070:6:38", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2058:18:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2054:22:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8232, - "initializationExpression": { - "assignments": [ - 8188 - ], - "declarations": [ - { - "constant": false, - "id": 8188, - "mutability": "mutable", - "name": "j", - "nameLocation": "2051:1:38", - "nodeType": "VariableDeclaration", - "scope": 8232, - "src": "2043:9:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8187, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2043:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8189, - "nodeType": "VariableDeclarationStatement", - "src": "2043:9:38" - }, - "isSimpleCounterLoop": false, - "nodeType": "ForStatement", - "src": "2038:351:38" - }, - { - "id": 8236, - "nodeType": "UncheckedBlock", - "src": "2402:46:38", - "statements": [ - { - "expression": { - "id": 8234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "2430:3:38", - "subExpression": { - "id": 8233, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2432:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8235, - "nodeType": "ExpressionStatement", - "src": "2430:3:38" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8183, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "1992:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 8184, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8168, - "src": "1996:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2014:6:38", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1996:24:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1992:28:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8238, - "initializationExpression": { - "assignments": [ - 8181 - ], - "declarations": [ - { - "constant": false, - "id": 8181, - "mutability": "mutable", - "name": "i", - "nameLocation": "1989:1:38", - "nodeType": "VariableDeclaration", - "scope": 8238, - "src": "1981:9:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1981:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8182, - "nodeType": "VariableDeclarationStatement", - "src": "1981:9:38" - }, - "isSimpleCounterLoop": false, - "nodeType": "ForStatement", - "src": "1976:482:38" - } - ] - }, - "documentation": { - "id": 8163, - "nodeType": "StructuredDocumentation", - "src": "1600:169:38", - "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": 8240, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8175, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "1940:10:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1940:12:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8177, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8165, - "src": "1954:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 8178, - "kind": "modifierInvocation", - "modifierName": { - "id": 8174, - "name": "onlyDomainOwner", - "nameLocations": [ - "1924:15:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7168, - "src": "1924:15:38" - }, - "nodeType": "ModifierInvocation", - "src": "1924:41:38" - } - ], - "name": "addAddresses", - "nameLocation": "1783:12:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8165, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1813:10:38", - "nodeType": "VariableDeclaration", - "scope": 8240, - "src": "1805:18:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8164, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1805:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8168, - "mutability": "mutable", - "name": "contractAddresses", - "nameLocation": "1852:17:38", - "nodeType": "VariableDeclaration", - "scope": 8240, - "src": "1833:36:38", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1833:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8167, - "nodeType": "ArrayTypeName", - "src": "1833:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8172, - "mutability": "mutable", - "name": "chainIds", - "nameLocation": "1900:8:38", - "nodeType": "VariableDeclaration", - "scope": 8240, - "src": "1879:29:38", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 8169, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1879:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8170, - "nodeType": "ArrayTypeName", - "src": "1879:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "id": 8171, - "nodeType": "ArrayTypeName", - "src": "1879:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", - "typeString": "uint256[][]" - } - }, - "visibility": "internal" - } - ], - "src": "1795:119:38" - }, - "returnParameters": { - "id": 8179, - "nodeType": "ParameterList", - "parameters": [], - "src": "1966:0:38" - }, - "scope": 8370, - "src": "1774:690:38", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8319, - "nodeType": "Block", - "src": "2842:468:38", - "statements": [ - { - "body": { - "id": 8317, - "nodeType": "Block", - "src": "2900:404:38", - "statements": [ - { - "body": { - "id": 8311, - "nodeType": "Block", - "src": "2959:276:38", - "statements": [ - { - "expression": { - "id": 8291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 8277, - "name": "verifiedContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8131, - "src": "2977:17:38", - "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": 8287, - "indexExpression": { - "id": 8278, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8243, - "src": "2995:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2977:29:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8288, - "indexExpression": { - "baseExpression": { - "id": 8279, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8246, - "src": "3007:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8281, - "indexExpression": { - "id": 8280, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "3025:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3007:20:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2977:51:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8289, - "indexExpression": { - "baseExpression": { - "baseExpression": { - "id": 8282, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8250, - "src": "3029:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8284, - "indexExpression": { - "id": 8283, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "3038:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3029:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8286, - "indexExpression": { - "id": 8285, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "3041:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3029:14:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2977:67:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 8290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3047:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2977:71:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8292, - "nodeType": "ExpressionStatement", - "src": "2977:71:38" - }, - { - "eventCall": { - "arguments": [ - { - "id": 8294, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8243, - "src": "3086:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "baseExpression": { - "baseExpression": { - "id": 8295, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8250, - "src": "3098:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8297, - "indexExpression": { - "id": 8296, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "3107:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3098:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8299, - "indexExpression": { - "id": 8298, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "3110:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3098:14:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 8300, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8246, - "src": "3114:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8302, - "indexExpression": { - "id": 8301, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "3132:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3114:20:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8303, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "3136:10:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3136:12:38", - "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": 8293, - "name": "AddressRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8142, - "src": "3071:14:38", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (bytes32,uint256,address,address)" - } - }, - "id": 8305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3071:78:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8306, - "nodeType": "EmitStatement", - "src": "3066:83:38" - }, - { - "id": 8310, - "nodeType": "UncheckedBlock", - "src": "3167:54:38", - "statements": [ - { - "expression": { - "id": 8308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "3199:3:38", - "subExpression": { - "id": 8307, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "3201:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8309, - "nodeType": "ExpressionStatement", - "src": "3199:3:38" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8268, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "2930:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "baseExpression": { - "id": 8269, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8250, - "src": "2934:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8271, - "indexExpression": { - "id": 8270, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "2943:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2934:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2946:6:38", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2934:18:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2930:22:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8312, - "initializationExpression": { - "assignments": [ - 8266 - ], - "declarations": [ - { - "constant": false, - "id": 8266, - "mutability": "mutable", - "name": "j", - "nameLocation": "2927:1:38", - "nodeType": "VariableDeclaration", - "scope": 8312, - "src": "2919:9:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2919:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8267, - "nodeType": "VariableDeclarationStatement", - "src": "2919:9:38" - }, - "isSimpleCounterLoop": false, - "loopExpression": { - "expression": { - "id": 8275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "2954:3:38", - "subExpression": { - "id": 8274, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "2956:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8276, - "nodeType": "ExpressionStatement", - "src": "2954:3:38" - }, - "nodeType": "ForStatement", - "src": "2914:321:38" - }, - { - "id": 8316, - "nodeType": "UncheckedBlock", - "src": "3248:46:38", - "statements": [ - { - "expression": { - "id": 8314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "3276:3:38", - "subExpression": { - "id": 8313, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "3278:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8315, - "nodeType": "ExpressionStatement", - "src": "3276:3:38" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8261, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "2868:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 8262, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8246, - "src": "2872:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2890:6:38", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2872:24:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2868:28:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8318, - "initializationExpression": { - "assignments": [ - 8259 - ], - "declarations": [ - { - "constant": false, - "id": 8259, - "mutability": "mutable", - "name": "i", - "nameLocation": "2865:1:38", - "nodeType": "VariableDeclaration", - "scope": 8318, - "src": "2857:9:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8258, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2857:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8260, - "nodeType": "VariableDeclarationStatement", - "src": "2857:9:38" - }, - "isSimpleCounterLoop": false, - "nodeType": "ForStatement", - "src": "2852:452:38" - } - ] - }, - "documentation": { - "id": 8241, - "nodeType": "StructuredDocumentation", - "src": "2470:172:38", - "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": 8320, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8253, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2816:10:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2816:12:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8255, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8243, - "src": "2830:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 8256, - "kind": "modifierInvocation", - "modifierName": { - "id": 8252, - "name": "onlyDomainOwner", - "nameLocations": [ - "2800:15:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7168, - "src": "2800:15:38" - }, - "nodeType": "ModifierInvocation", - "src": "2800:41:38" - } - ], - "name": "removeAddresses", - "nameLocation": "2656:15:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8251, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8243, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2689:10:38", - "nodeType": "VariableDeclaration", - "scope": 8320, - "src": "2681:18:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8242, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2681:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8246, - "mutability": "mutable", - "name": "contractAddresses", - "nameLocation": "2728:17:38", - "nodeType": "VariableDeclaration", - "scope": 8320, - "src": "2709:36:38", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2709:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8245, - "nodeType": "ArrayTypeName", - "src": "2709:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8250, - "mutability": "mutable", - "name": "chainIds", - "nameLocation": "2776:8:38", - "nodeType": "VariableDeclaration", - "scope": 8320, - "src": "2755:29:38", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 8247, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2755:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8248, - "nodeType": "ArrayTypeName", - "src": "2755:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "id": 8249, - "nodeType": "ArrayTypeName", - "src": "2755:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", - "typeString": "uint256[][]" - } - }, - "visibility": "internal" - } - ], - "src": "2671:119:38" - }, - "returnParameters": { - "id": 8257, - "nodeType": "ParameterList", - "parameters": [], - "src": "2842:0:38" - }, - "scope": 8370, - "src": "2647:663:38", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 8100 - ], - "body": { - "id": 8368, - "nodeType": "Block", - "src": "3516:413:38", - "statements": [ - { - "assignments": [ - 8333 - ], - "declarations": [ - { - "constant": false, - "id": 8333, - "mutability": "mutable", - "name": "verifiedContract", - "nameLocation": "3534:16:38", - "nodeType": "VariableDeclaration", - "scope": 8368, - "src": "3526:24:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8332, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3526:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8341, - "initialValue": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 8334, - "name": "verifiedContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8131, - "src": "3553:17:38", - "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": 8336, - "indexExpression": { - "id": 8335, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8323, - "src": "3571:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3553:29:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8338, - "indexExpression": { - "id": 8337, - "name": "contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8325, - "src": "3583:15:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3553:46:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8340, - "indexExpression": { - "id": 8339, - "name": "chainId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8327, - "src": "3600:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3553:55:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3526:82:38" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8342, - "name": "verifiedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3623:16:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 8343, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3643:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3623:21:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8348, - "nodeType": "IfStatement", - "src": "3619:75:38", - "trueBody": { - "id": 8347, - "nodeType": "Block", - "src": "3646:48:38", - "statements": [ - { - "expression": { - "id": 8345, - "name": "verifiedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3667:16:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8331, - "id": 8346, - "nodeType": "Return", - "src": "3660:23:38" - } - ] - } - }, - { - "expression": { - "id": 8357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 8349, - "name": "verifiedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3704:16:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 8350, - "name": "verifiedContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8131, - "src": "3723:17:38", - "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": 8352, - "indexExpression": { - "id": 8351, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8323, - "src": "3741:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3723:29:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8354, - "indexExpression": { - "id": 8353, - "name": "contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8325, - "src": "3753:15:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3723:46:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8356, - "indexExpression": { - "id": 8355, - "name": "MAX_INT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8123, - "src": "3770:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3723:55:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3704:74:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8358, - "nodeType": "ExpressionStatement", - "src": "3704:74:38" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8359, - "name": "verifiedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3792:16:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 8360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3812:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3792:21:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8365, - "nodeType": "IfStatement", - "src": "3788:75:38", - "trueBody": { - "id": 8364, - "nodeType": "Block", - "src": "3815:48:38", - "statements": [ - { - "expression": { - "id": 8362, - "name": "verifiedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3836:16:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8331, - "id": 8363, - "nodeType": "Return", - "src": "3829:23:38" - } - ] - } - }, - { - "expression": { - "hexValue": "30", - "id": 8366, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3921:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 8331, - "id": 8367, - "nodeType": "Return", - "src": "3914:8:38" - } - ] - }, - "documentation": { - "id": 8321, - "nodeType": "StructuredDocumentation", - "src": "3316:51:38", - "text": " @dev See {IVerifier-isVerified}." - }, - "functionSelector": "046852d0", - "id": 8369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isVerified", - "nameLocation": "3381:10:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8323, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3409:10:38", - "nodeType": "VariableDeclaration", - "scope": 8369, - "src": "3401:18:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8322, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3401:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8325, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "3437:15:38", - "nodeType": "VariableDeclaration", - "scope": 8369, - "src": "3429:23:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8324, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3429:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8327, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "3470:7:38", - "nodeType": "VariableDeclaration", - "scope": 8369, - "src": "3462:15:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8326, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3462:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3391:92:38" - }, - "returnParameters": { - "id": 8331, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8330, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8369, - "src": "3507:7:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8329, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3507:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3506:9:38" - }, - "scope": 8370, - "src": "3372:557:38", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 8371, - "src": "626:3305:38", - "usedErrors": [ - 7154 - ], - "usedEvents": [ - 8142, - 8153 - ] - } - ], - "src": "37:3895:38" - }, - "id": 38 - } - }, - "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\":\"0x8e208b44d5dbf22552fe72d79b45c640855b84fbc9ee21f4c3bb4bfe81cbe8db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcf03e1a9386d80ff6b8e31870063424454f69d2626c0efb2c8cf55e69151489\",\"dweb:/ipfs/QmVYgfMSc1ve5JWePqiAGSXEfD76emw3oLsCM1krstmJq5\"]}},\"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": "6080604052348015600f57600080fd5b50336000808060001b815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061123d806100766000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146101b15780635ef2c7f0146101cd578063a22cb465146101e9578063cf40882314610205578063e985e9c514610221578063f79fe53814610251576100b4565b80630178b8bf146100b957806302571be3146100e957806306ab59231461011957806314ab90381461014957806316a25cbd146101655780631896f70a14610195575b600080fd5b6100d360048036038101906100ce9190610dda565b610281565b6040516100e09190610e48565b60405180910390f35b61010360048036038101906100fe9190610dda565b6102c0565b6040516101109190610e48565b60405180910390f35b610133600480360381019061012e9190610e8f565b610342565b6040516101409190610ef1565b60405180910390f35b610163600480360381019061015e9190610f4c565b6104c5565b005b61017f600480360381019061017a9190610dda565b610643565b60405161018c9190610f9b565b60405180910390f35b6101af60048036038101906101aa9190610fb6565b610676565b005b6101cb60048036038101906101c69190610fb6565b61080c565b005b6101e760048036038101906101e29190610ff6565b610958565b005b61020360048036038101906101fe91906110a9565b61097a565b005b61021f600480360381019061021a91906110e9565b610a77565b005b61023b60048036038101906102369190611150565b610a92565b604051610248919061119f565b60405180910390f35b61026b60048036038101906102669190610dda565b610b26565b604051610278919061119f565b60405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361033857600091505061033d565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061043f5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61044857600080fd5b6000868660405160200161045d9291906111db565b60405160208183030381529060405280519060200120905061047f8186610b94565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82876040516104b09190610e48565b60405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806105c05750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6105c957600080fd5b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68846040516105f99190610f9b565b60405180910390a28260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806107715750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61077a57600080fd5b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0846040516107aa9190610e48565b60405180910390a28260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806109075750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61091057600080fd5b61091a8484610b94565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2668460405161094a9190610e48565b60405180910390a250505050565b6000610965868686610342565b9050610972818484610bec565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a6b919061119f565b60405180910390a35050565b610a81848461080c565b610a8c848383610bec565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b8060008084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ce1578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051610cd89190610e48565b60405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614610d9a578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051610d919190610f9b565b60405180910390a25b505050565b600080fd5b6000819050919050565b610db781610da4565b8114610dc257600080fd5b50565b600081359050610dd481610dae565b92915050565b600060208284031215610df057610def610d9f565b5b6000610dfe84828501610dc5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e3282610e07565b9050919050565b610e4281610e27565b82525050565b6000602082019050610e5d6000830184610e39565b92915050565b610e6c81610e27565b8114610e7757600080fd5b50565b600081359050610e8981610e63565b92915050565b600080600060608486031215610ea857610ea7610d9f565b5b6000610eb686828701610dc5565b9350506020610ec786828701610dc5565b9250506040610ed886828701610e7a565b9150509250925092565b610eeb81610da4565b82525050565b6000602082019050610f066000830184610ee2565b92915050565b600067ffffffffffffffff82169050919050565b610f2981610f0c565b8114610f3457600080fd5b50565b600081359050610f4681610f20565b92915050565b60008060408385031215610f6357610f62610d9f565b5b6000610f7185828601610dc5565b9250506020610f8285828601610f37565b9150509250929050565b610f9581610f0c565b82525050565b6000602082019050610fb06000830184610f8c565b92915050565b60008060408385031215610fcd57610fcc610d9f565b5b6000610fdb85828601610dc5565b9250506020610fec85828601610e7a565b9150509250929050565b600080600080600060a0868803121561101257611011610d9f565b5b600061102088828901610dc5565b955050602061103188828901610dc5565b945050604061104288828901610e7a565b935050606061105388828901610e7a565b925050608061106488828901610f37565b9150509295509295909350565b60008115159050919050565b61108681611071565b811461109157600080fd5b50565b6000813590506110a38161107d565b92915050565b600080604083850312156110c0576110bf610d9f565b5b60006110ce85828601610e7a565b92505060206110df85828601611094565b9150509250929050565b6000806000806080858703121561110357611102610d9f565b5b600061111187828801610dc5565b945050602061112287828801610e7a565b935050604061113387828801610e7a565b925050606061114487828801610f37565b91505092959194509250565b6000806040838503121561116757611166610d9f565b5b600061117585828601610e7a565b925050602061118685828601610e7a565b9150509250929050565b61119981611071565b82525050565b60006020820190506111b46000830184611190565b92915050565b6000819050919050565b6111d56111d082610da4565b6111ba565b82525050565b60006111e782856111c4565b6020820191506111f782846111c4565b602082019150819050939250505056fea26469706673582212200717631813312b249f96ab75b8093ffda54230dde478068a1618a6d1027d35db64736f6c634300081c0033", - "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 SMOD OR PUSH4 0x1813312B 0x24 SWAP16 SWAP7 0xAB PUSH22 0xB8093FFDA54230DDE478068A1618A6D1027D35DB6473 PUSH16 0x6C634300081C00330000000000000000 ", - "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:39", - "nodeType": "YulBlock", - "src": "0:8514:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:32:39", - "nodeType": "YulBlock", - "src": "379:32:39", - "statements": [ - { - "nativeSrc": "389:16:39", - "nodeType": "YulAssignment", - "src": "389:16:39", - "value": { - "name": "value", - "nativeSrc": "400:5:39", - "nodeType": "YulIdentifier", - "src": "400:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "334:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:77:39" - }, - { - "body": { - "nativeSrc": "460:79:39", - "nodeType": "YulBlock", - "src": "460:79:39", - "statements": [ - { - "body": { - "nativeSrc": "517:16:39", - "nodeType": "YulBlock", - "src": "517:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "526:1:39", - "nodeType": "YulLiteral", - "src": "526:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "529:1:39", - "nodeType": "YulLiteral", - "src": "529:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "519:6:39", - "nodeType": "YulIdentifier", - "src": "519:6:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulFunctionCall", - "src": "519:12:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulExpressionStatement", - "src": "519:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "483:5:39", - "nodeType": "YulIdentifier", - "src": "483:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "508:5:39", - "nodeType": "YulIdentifier", - "src": "508:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "490:17:39", - "nodeType": "YulIdentifier", - "src": "490:17:39" - }, - "nativeSrc": "490:24:39", - "nodeType": "YulFunctionCall", - "src": "490:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "480:2:39", - "nodeType": "YulIdentifier", - "src": "480:2:39" - }, - "nativeSrc": "480:35:39", - "nodeType": "YulFunctionCall", - "src": "480:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "473:6:39", - "nodeType": "YulIdentifier", - "src": "473:6:39" - }, - "nativeSrc": "473:43:39", - "nodeType": "YulFunctionCall", - "src": "473:43:39" - }, - "nativeSrc": "470:63:39", - "nodeType": "YulIf", - "src": "470:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "417:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "453:5:39", - "nodeType": "YulTypedName", - "src": "453:5:39", - "type": "" - } - ], - "src": "417:122:39" - }, - { - "body": { - "nativeSrc": "597:87:39", - "nodeType": "YulBlock", - "src": "597:87:39", - "statements": [ - { - "nativeSrc": "607:29:39", - "nodeType": "YulAssignment", - "src": "607:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "629:6:39", - "nodeType": "YulIdentifier", - "src": "629:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "616:12:39", - "nodeType": "YulIdentifier", - "src": "616:12:39" - }, - "nativeSrc": "616:20:39", - "nodeType": "YulFunctionCall", - "src": "616:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "607:5:39", - "nodeType": "YulIdentifier", - "src": "607:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "672:5:39", - "nodeType": "YulIdentifier", - "src": "672:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "645:26:39", - "nodeType": "YulIdentifier", - "src": "645:26:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulFunctionCall", - "src": "645:33:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulExpressionStatement", - "src": "645:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "545:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "575:6:39", - "nodeType": "YulTypedName", - "src": "575:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "583:3:39", - "nodeType": "YulTypedName", - "src": "583:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "591:5:39", - "nodeType": "YulTypedName", - "src": "591:5:39", - "type": "" - } - ], - "src": "545:139:39" - }, - { - "body": { - "nativeSrc": "756:263:39", - "nodeType": "YulBlock", - "src": "756:263:39", - "statements": [ - { - "body": { - "nativeSrc": "802:83:39", - "nodeType": "YulBlock", - "src": "802:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "804:77:39", - "nodeType": "YulIdentifier", - "src": "804:77:39" - }, - "nativeSrc": "804:79:39", - "nodeType": "YulFunctionCall", - "src": "804:79:39" - }, - "nativeSrc": "804:79:39", - "nodeType": "YulExpressionStatement", - "src": "804:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "777:7:39", - "nodeType": "YulIdentifier", - "src": "777:7:39" - }, - { - "name": "headStart", - "nativeSrc": "786:9:39", - "nodeType": "YulIdentifier", - "src": "786:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "773:3:39", - "nodeType": "YulIdentifier", - "src": "773:3:39" - }, - "nativeSrc": "773:23:39", - "nodeType": "YulFunctionCall", - "src": "773:23:39" - }, - { - "kind": "number", - "nativeSrc": "798:2:39", - "nodeType": "YulLiteral", - "src": "798:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "769:3:39", - "nodeType": "YulIdentifier", - "src": "769:3:39" - }, - "nativeSrc": "769:32:39", - "nodeType": "YulFunctionCall", - "src": "769:32:39" - }, - "nativeSrc": "766:119:39", - "nodeType": "YulIf", - "src": "766:119:39" - }, - { - "nativeSrc": "895:117:39", - "nodeType": "YulBlock", - "src": "895:117:39", - "statements": [ - { - "nativeSrc": "910:15:39", - "nodeType": "YulVariableDeclaration", - "src": "910:15:39", - "value": { - "kind": "number", - "nativeSrc": "924:1:39", - "nodeType": "YulLiteral", - "src": "924:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "914:6:39", - "nodeType": "YulTypedName", - "src": "914:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "939:63:39", - "nodeType": "YulAssignment", - "src": "939:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "974:9:39", - "nodeType": "YulIdentifier", - "src": "974:9:39" - }, - { - "name": "offset", - "nativeSrc": "985:6:39", - "nodeType": "YulIdentifier", - "src": "985:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "970:3:39", - "nodeType": "YulIdentifier", - "src": "970:3:39" - }, - "nativeSrc": "970:22:39", - "nodeType": "YulFunctionCall", - "src": "970:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "994:7:39", - "nodeType": "YulIdentifier", - "src": "994:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "949:20:39", - "nodeType": "YulIdentifier", - "src": "949:20:39" - }, - "nativeSrc": "949:53:39", - "nodeType": "YulFunctionCall", - "src": "949:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "939:6:39", - "nodeType": "YulIdentifier", - "src": "939:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "690:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "726:9:39", - "nodeType": "YulTypedName", - "src": "726:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "737:7:39", - "nodeType": "YulTypedName", - "src": "737:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "749:6:39", - "nodeType": "YulTypedName", - "src": "749:6:39", - "type": "" - } - ], - "src": "690:329:39" - }, - { - "body": { - "nativeSrc": "1070:81:39", - "nodeType": "YulBlock", - "src": "1070:81:39", - "statements": [ - { - "nativeSrc": "1080:65:39", - "nodeType": "YulAssignment", - "src": "1080:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1095:5:39", - "nodeType": "YulIdentifier", - "src": "1095:5:39" - }, - { - "kind": "number", - "nativeSrc": "1102:42:39", - "nodeType": "YulLiteral", - "src": "1102:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1091:3:39", - "nodeType": "YulIdentifier", - "src": "1091:3:39" - }, - "nativeSrc": "1091:54:39", - "nodeType": "YulFunctionCall", - "src": "1091:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1080:7:39", - "nodeType": "YulIdentifier", - "src": "1080:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "1025:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1052:5:39", - "nodeType": "YulTypedName", - "src": "1052:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1062:7:39", - "nodeType": "YulTypedName", - "src": "1062:7:39", - "type": "" - } - ], - "src": "1025:126:39" - }, - { - "body": { - "nativeSrc": "1202:51:39", - "nodeType": "YulBlock", - "src": "1202:51:39", - "statements": [ - { - "nativeSrc": "1212:35:39", - "nodeType": "YulAssignment", - "src": "1212:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1241:5:39", - "nodeType": "YulIdentifier", - "src": "1241:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "1223:17:39", - "nodeType": "YulIdentifier", - "src": "1223:17:39" - }, - "nativeSrc": "1223:24:39", - "nodeType": "YulFunctionCall", - "src": "1223:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1212:7:39", - "nodeType": "YulIdentifier", - "src": "1212:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "1157:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1184:5:39", - "nodeType": "YulTypedName", - "src": "1184:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1194:7:39", - "nodeType": "YulTypedName", - "src": "1194:7:39", - "type": "" - } - ], - "src": "1157:96:39" - }, - { - "body": { - "nativeSrc": "1324:53:39", - "nodeType": "YulBlock", - "src": "1324:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1341:3:39", - "nodeType": "YulIdentifier", - "src": "1341:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1364:5:39", - "nodeType": "YulIdentifier", - "src": "1364:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1346:17:39", - "nodeType": "YulIdentifier", - "src": "1346:17:39" - }, - "nativeSrc": "1346:24:39", - "nodeType": "YulFunctionCall", - "src": "1346:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1334:6:39", - "nodeType": "YulIdentifier", - "src": "1334:6:39" - }, - "nativeSrc": "1334:37:39", - "nodeType": "YulFunctionCall", - "src": "1334:37:39" - }, - "nativeSrc": "1334:37:39", - "nodeType": "YulExpressionStatement", - "src": "1334:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1259:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1312:5:39", - "nodeType": "YulTypedName", - "src": "1312:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1319:3:39", - "nodeType": "YulTypedName", - "src": "1319:3:39", - "type": "" - } - ], - "src": "1259:118:39" - }, - { - "body": { - "nativeSrc": "1481:124:39", - "nodeType": "YulBlock", - "src": "1481:124:39", - "statements": [ - { - "nativeSrc": "1491:26:39", - "nodeType": "YulAssignment", - "src": "1491:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1503:9:39", - "nodeType": "YulIdentifier", - "src": "1503:9:39" - }, - { - "kind": "number", - "nativeSrc": "1514:2:39", - "nodeType": "YulLiteral", - "src": "1514:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1499:3:39", - "nodeType": "YulIdentifier", - "src": "1499:3:39" - }, - "nativeSrc": "1499:18:39", - "nodeType": "YulFunctionCall", - "src": "1499:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1491:4:39", - "nodeType": "YulIdentifier", - "src": "1491:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1571:6:39", - "nodeType": "YulIdentifier", - "src": "1571:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1584:9:39", - "nodeType": "YulIdentifier", - "src": "1584:9:39" - }, - { - "kind": "number", - "nativeSrc": "1595:1:39", - "nodeType": "YulLiteral", - "src": "1595:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1580:3:39", - "nodeType": "YulIdentifier", - "src": "1580:3:39" - }, - "nativeSrc": "1580:17:39", - "nodeType": "YulFunctionCall", - "src": "1580:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1527:43:39", - "nodeType": "YulIdentifier", - "src": "1527:43:39" - }, - "nativeSrc": "1527:71:39", - "nodeType": "YulFunctionCall", - "src": "1527:71:39" - }, - "nativeSrc": "1527:71:39", - "nodeType": "YulExpressionStatement", - "src": "1527:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "1383:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1453:9:39", - "nodeType": "YulTypedName", - "src": "1453:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1465:6:39", - "nodeType": "YulTypedName", - "src": "1465:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1476:4:39", - "nodeType": "YulTypedName", - "src": "1476:4:39", - "type": "" - } - ], - "src": "1383:222:39" - }, - { - "body": { - "nativeSrc": "1654:79:39", - "nodeType": "YulBlock", - "src": "1654:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1711:16:39", - "nodeType": "YulBlock", - "src": "1711:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1720:1:39", - "nodeType": "YulLiteral", - "src": "1720:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1723:1:39", - "nodeType": "YulLiteral", - "src": "1723:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1713:6:39", - "nodeType": "YulIdentifier", - "src": "1713:6:39" - }, - "nativeSrc": "1713:12:39", - "nodeType": "YulFunctionCall", - "src": "1713:12:39" - }, - "nativeSrc": "1713:12:39", - "nodeType": "YulExpressionStatement", - "src": "1713:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1677:5:39", - "nodeType": "YulIdentifier", - "src": "1677:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1702:5:39", - "nodeType": "YulIdentifier", - "src": "1702:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1684:17:39", - "nodeType": "YulIdentifier", - "src": "1684:17:39" - }, - "nativeSrc": "1684:24:39", - "nodeType": "YulFunctionCall", - "src": "1684:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1674:2:39", - "nodeType": "YulIdentifier", - "src": "1674:2:39" - }, - "nativeSrc": "1674:35:39", - "nodeType": "YulFunctionCall", - "src": "1674:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1667:6:39", - "nodeType": "YulIdentifier", - "src": "1667:6:39" - }, - "nativeSrc": "1667:43:39", - "nodeType": "YulFunctionCall", - "src": "1667:43:39" - }, - "nativeSrc": "1664:63:39", - "nodeType": "YulIf", - "src": "1664:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "1611:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1647:5:39", - "nodeType": "YulTypedName", - "src": "1647:5:39", - "type": "" - } - ], - "src": "1611:122:39" - }, - { - "body": { - "nativeSrc": "1791:87:39", - "nodeType": "YulBlock", - "src": "1791:87:39", - "statements": [ - { - "nativeSrc": "1801:29:39", - "nodeType": "YulAssignment", - "src": "1801:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1823:6:39", - "nodeType": "YulIdentifier", - "src": "1823:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1810:12:39", - "nodeType": "YulIdentifier", - "src": "1810:12:39" - }, - "nativeSrc": "1810:20:39", - "nodeType": "YulFunctionCall", - "src": "1810:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1801:5:39", - "nodeType": "YulIdentifier", - "src": "1801:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1866:5:39", - "nodeType": "YulIdentifier", - "src": "1866:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "1839:26:39", - "nodeType": "YulIdentifier", - "src": "1839:26:39" - }, - "nativeSrc": "1839:33:39", - "nodeType": "YulFunctionCall", - "src": "1839:33:39" - }, - "nativeSrc": "1839:33:39", - "nodeType": "YulExpressionStatement", - "src": "1839:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "1739:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1769:6:39", - "nodeType": "YulTypedName", - "src": "1769:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1777:3:39", - "nodeType": "YulTypedName", - "src": "1777:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1785:5:39", - "nodeType": "YulTypedName", - "src": "1785:5:39", - "type": "" - } - ], - "src": "1739:139:39" - }, - { - "body": { - "nativeSrc": "1984:519:39", - "nodeType": "YulBlock", - "src": "1984:519:39", - "statements": [ - { - "body": { - "nativeSrc": "2030:83:39", - "nodeType": "YulBlock", - "src": "2030:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2032:77:39", - "nodeType": "YulIdentifier", - "src": "2032:77:39" - }, - "nativeSrc": "2032:79:39", - "nodeType": "YulFunctionCall", - "src": "2032:79:39" - }, - "nativeSrc": "2032:79:39", - "nodeType": "YulExpressionStatement", - "src": "2032:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2005:7:39", - "nodeType": "YulIdentifier", - "src": "2005:7:39" - }, - { - "name": "headStart", - "nativeSrc": "2014:9:39", - "nodeType": "YulIdentifier", - "src": "2014:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2001:3:39", - "nodeType": "YulIdentifier", - "src": "2001:3:39" - }, - "nativeSrc": "2001:23:39", - "nodeType": "YulFunctionCall", - "src": "2001:23:39" - }, - { - "kind": "number", - "nativeSrc": "2026:2:39", - "nodeType": "YulLiteral", - "src": "2026:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1997:3:39", - "nodeType": "YulIdentifier", - "src": "1997:3:39" - }, - "nativeSrc": "1997:32:39", - "nodeType": "YulFunctionCall", - "src": "1997:32:39" - }, - "nativeSrc": "1994:119:39", - "nodeType": "YulIf", - "src": "1994:119:39" - }, - { - "nativeSrc": "2123:117:39", - "nodeType": "YulBlock", - "src": "2123:117:39", - "statements": [ - { - "nativeSrc": "2138:15:39", - "nodeType": "YulVariableDeclaration", - "src": "2138:15:39", - "value": { - "kind": "number", - "nativeSrc": "2152:1:39", - "nodeType": "YulLiteral", - "src": "2152:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2142:6:39", - "nodeType": "YulTypedName", - "src": "2142:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2167:63:39", - "nodeType": "YulAssignment", - "src": "2167:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2202:9:39", - "nodeType": "YulIdentifier", - "src": "2202:9:39" - }, - { - "name": "offset", - "nativeSrc": "2213:6:39", - "nodeType": "YulIdentifier", - "src": "2213:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2198:3:39", - "nodeType": "YulIdentifier", - "src": "2198:3:39" - }, - "nativeSrc": "2198:22:39", - "nodeType": "YulFunctionCall", - "src": "2198:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2222:7:39", - "nodeType": "YulIdentifier", - "src": "2222:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "2177:20:39", - "nodeType": "YulIdentifier", - "src": "2177:20:39" - }, - "nativeSrc": "2177:53:39", - "nodeType": "YulFunctionCall", - "src": "2177:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2167:6:39", - "nodeType": "YulIdentifier", - "src": "2167:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "2250:118:39", - "nodeType": "YulBlock", - "src": "2250:118:39", - "statements": [ - { - "nativeSrc": "2265:16:39", - "nodeType": "YulVariableDeclaration", - "src": "2265:16:39", - "value": { - "kind": "number", - "nativeSrc": "2279:2:39", - "nodeType": "YulLiteral", - "src": "2279:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2269:6:39", - "nodeType": "YulTypedName", - "src": "2269:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2295:63:39", - "nodeType": "YulAssignment", - "src": "2295:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2330:9:39", - "nodeType": "YulIdentifier", - "src": "2330:9:39" - }, - { - "name": "offset", - "nativeSrc": "2341:6:39", - "nodeType": "YulIdentifier", - "src": "2341:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2326:3:39", - "nodeType": "YulIdentifier", - "src": "2326:3:39" - }, - "nativeSrc": "2326:22:39", - "nodeType": "YulFunctionCall", - "src": "2326:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2350:7:39", - "nodeType": "YulIdentifier", - "src": "2350:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "2305:20:39", - "nodeType": "YulIdentifier", - "src": "2305:20:39" - }, - "nativeSrc": "2305:53:39", - "nodeType": "YulFunctionCall", - "src": "2305:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "2295:6:39", - "nodeType": "YulIdentifier", - "src": "2295:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "2378:118:39", - "nodeType": "YulBlock", - "src": "2378:118:39", - "statements": [ - { - "nativeSrc": "2393:16:39", - "nodeType": "YulVariableDeclaration", - "src": "2393:16:39", - "value": { - "kind": "number", - "nativeSrc": "2407:2:39", - "nodeType": "YulLiteral", - "src": "2407:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2397:6:39", - "nodeType": "YulTypedName", - "src": "2397:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2423:63:39", - "nodeType": "YulAssignment", - "src": "2423:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2458:9:39", - "nodeType": "YulIdentifier", - "src": "2458:9:39" - }, - { - "name": "offset", - "nativeSrc": "2469:6:39", - "nodeType": "YulIdentifier", - "src": "2469:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2454:3:39", - "nodeType": "YulIdentifier", - "src": "2454:3:39" - }, - "nativeSrc": "2454:22:39", - "nodeType": "YulFunctionCall", - "src": "2454:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2478:7:39", - "nodeType": "YulIdentifier", - "src": "2478:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "2433:20:39", - "nodeType": "YulIdentifier", - "src": "2433:20:39" - }, - "nativeSrc": "2433:53:39", - "nodeType": "YulFunctionCall", - "src": "2433:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "2423:6:39", - "nodeType": "YulIdentifier", - "src": "2423:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_bytes32t_address", - "nativeSrc": "1884:619:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1938:9:39", - "nodeType": "YulTypedName", - "src": "1938:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1949:7:39", - "nodeType": "YulTypedName", - "src": "1949:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1961:6:39", - "nodeType": "YulTypedName", - "src": "1961:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1969:6:39", - "nodeType": "YulTypedName", - "src": "1969:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1977:6:39", - "nodeType": "YulTypedName", - "src": "1977:6:39", - "type": "" - } - ], - "src": "1884:619:39" - }, - { - "body": { - "nativeSrc": "2574:53:39", - "nodeType": "YulBlock", - "src": "2574:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2591:3:39", - "nodeType": "YulIdentifier", - "src": "2591:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2614:5:39", - "nodeType": "YulIdentifier", - "src": "2614:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "2596:17:39", - "nodeType": "YulIdentifier", - "src": "2596:17:39" - }, - "nativeSrc": "2596:24:39", - "nodeType": "YulFunctionCall", - "src": "2596:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2584:6:39", - "nodeType": "YulIdentifier", - "src": "2584:6:39" - }, - "nativeSrc": "2584:37:39", - "nodeType": "YulFunctionCall", - "src": "2584:37:39" - }, - "nativeSrc": "2584:37:39", - "nodeType": "YulExpressionStatement", - "src": "2584:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2509:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2562:5:39", - "nodeType": "YulTypedName", - "src": "2562:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2569:3:39", - "nodeType": "YulTypedName", - "src": "2569:3:39", - "type": "" - } - ], - "src": "2509:118:39" - }, - { - "body": { - "nativeSrc": "2731:124:39", - "nodeType": "YulBlock", - "src": "2731:124:39", - "statements": [ - { - "nativeSrc": "2741:26:39", - "nodeType": "YulAssignment", - "src": "2741:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2753:9:39", - "nodeType": "YulIdentifier", - "src": "2753:9:39" - }, - { - "kind": "number", - "nativeSrc": "2764:2:39", - "nodeType": "YulLiteral", - "src": "2764:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2749:3:39", - "nodeType": "YulIdentifier", - "src": "2749:3:39" - }, - "nativeSrc": "2749:18:39", - "nodeType": "YulFunctionCall", - "src": "2749:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2741:4:39", - "nodeType": "YulIdentifier", - "src": "2741:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2821:6:39", - "nodeType": "YulIdentifier", - "src": "2821:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2834:9:39", - "nodeType": "YulIdentifier", - "src": "2834:9:39" - }, - { - "kind": "number", - "nativeSrc": "2845:1:39", - "nodeType": "YulLiteral", - "src": "2845:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2830:3:39", - "nodeType": "YulIdentifier", - "src": "2830:3:39" - }, - "nativeSrc": "2830:17:39", - "nodeType": "YulFunctionCall", - "src": "2830:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2777:43:39", - "nodeType": "YulIdentifier", - "src": "2777:43:39" - }, - "nativeSrc": "2777:71:39", - "nodeType": "YulFunctionCall", - "src": "2777:71:39" - }, - "nativeSrc": "2777:71:39", - "nodeType": "YulExpressionStatement", - "src": "2777:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "2633:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2703:9:39", - "nodeType": "YulTypedName", - "src": "2703:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2715:6:39", - "nodeType": "YulTypedName", - "src": "2715:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2726:4:39", - "nodeType": "YulTypedName", - "src": "2726:4:39", - "type": "" - } - ], - "src": "2633:222:39" - }, - { - "body": { - "nativeSrc": "2905:57:39", - "nodeType": "YulBlock", - "src": "2905:57:39", - "statements": [ - { - "nativeSrc": "2915:41:39", - "nodeType": "YulAssignment", - "src": "2915:41:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2930:5:39", - "nodeType": "YulIdentifier", - "src": "2930:5:39" - }, - { - "kind": "number", - "nativeSrc": "2937:18:39", - "nodeType": "YulLiteral", - "src": "2937:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2926:3:39", - "nodeType": "YulIdentifier", - "src": "2926:3:39" - }, - "nativeSrc": "2926:30:39", - "nodeType": "YulFunctionCall", - "src": "2926:30:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "2915:7:39", - "nodeType": "YulIdentifier", - "src": "2915:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint64", - "nativeSrc": "2861:101:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2887:5:39", - "nodeType": "YulTypedName", - "src": "2887:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "2897:7:39", - "nodeType": "YulTypedName", - "src": "2897:7:39", - "type": "" - } - ], - "src": "2861:101:39" - }, - { - "body": { - "nativeSrc": "3010:78:39", - "nodeType": "YulBlock", - "src": "3010:78:39", - "statements": [ - { - "body": { - "nativeSrc": "3066:16:39", - "nodeType": "YulBlock", - "src": "3066:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3075:1:39", - "nodeType": "YulLiteral", - "src": "3075:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3078:1:39", - "nodeType": "YulLiteral", - "src": "3078:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3068:6:39", - "nodeType": "YulIdentifier", - "src": "3068:6:39" - }, - "nativeSrc": "3068:12:39", - "nodeType": "YulFunctionCall", - "src": "3068:12:39" - }, - "nativeSrc": "3068:12:39", - "nodeType": "YulExpressionStatement", - "src": "3068:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3033:5:39", - "nodeType": "YulIdentifier", - "src": "3033:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3057:5:39", - "nodeType": "YulIdentifier", - "src": "3057:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint64", - "nativeSrc": "3040:16:39", - "nodeType": "YulIdentifier", - "src": "3040:16:39" - }, - "nativeSrc": "3040:23:39", - "nodeType": "YulFunctionCall", - "src": "3040:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3030:2:39", - "nodeType": "YulIdentifier", - "src": "3030:2:39" - }, - "nativeSrc": "3030:34:39", - "nodeType": "YulFunctionCall", - "src": "3030:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3023:6:39", - "nodeType": "YulIdentifier", - "src": "3023:6:39" - }, - "nativeSrc": "3023:42:39", - "nodeType": "YulFunctionCall", - "src": "3023:42:39" - }, - "nativeSrc": "3020:62:39", - "nodeType": "YulIf", - "src": "3020:62:39" - } - ] - }, - "name": "validator_revert_t_uint64", - "nativeSrc": "2968:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3003:5:39", - "nodeType": "YulTypedName", - "src": "3003:5:39", - "type": "" - } - ], - "src": "2968:120:39" - }, - { - "body": { - "nativeSrc": "3145:86:39", - "nodeType": "YulBlock", - "src": "3145:86:39", - "statements": [ - { - "nativeSrc": "3155:29:39", - "nodeType": "YulAssignment", - "src": "3155:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3177:6:39", - "nodeType": "YulIdentifier", - "src": "3177:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3164:12:39", - "nodeType": "YulIdentifier", - "src": "3164:12:39" - }, - "nativeSrc": "3164:20:39", - "nodeType": "YulFunctionCall", - "src": "3164:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "3155:5:39", - "nodeType": "YulIdentifier", - "src": "3155:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3219:5:39", - "nodeType": "YulIdentifier", - "src": "3219:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint64", - "nativeSrc": "3193:25:39", - "nodeType": "YulIdentifier", - "src": "3193:25:39" - }, - "nativeSrc": "3193:32:39", - "nodeType": "YulFunctionCall", - "src": "3193:32:39" - }, - "nativeSrc": "3193:32:39", - "nodeType": "YulExpressionStatement", - "src": "3193:32:39" - } - ] - }, - "name": "abi_decode_t_uint64", - "nativeSrc": "3094:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3123:6:39", - "nodeType": "YulTypedName", - "src": "3123:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3131:3:39", - "nodeType": "YulTypedName", - "src": "3131:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "3139:5:39", - "nodeType": "YulTypedName", - "src": "3139:5:39", - "type": "" - } - ], - "src": "3094:137:39" - }, - { - "body": { - "nativeSrc": "3319:390:39", - "nodeType": "YulBlock", - "src": "3319:390:39", - "statements": [ - { - "body": { - "nativeSrc": "3365:83:39", - "nodeType": "YulBlock", - "src": "3365:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3367:77:39", - "nodeType": "YulIdentifier", - "src": "3367:77:39" - }, - "nativeSrc": "3367:79:39", - "nodeType": "YulFunctionCall", - "src": "3367:79:39" - }, - "nativeSrc": "3367:79:39", - "nodeType": "YulExpressionStatement", - "src": "3367:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3340:7:39", - "nodeType": "YulIdentifier", - "src": "3340:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3349:9:39", - "nodeType": "YulIdentifier", - "src": "3349:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3336:3:39", - "nodeType": "YulIdentifier", - "src": "3336:3:39" - }, - "nativeSrc": "3336:23:39", - "nodeType": "YulFunctionCall", - "src": "3336:23:39" - }, - { - "kind": "number", - "nativeSrc": "3361:2:39", - "nodeType": "YulLiteral", - "src": "3361:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3332:3:39", - "nodeType": "YulIdentifier", - "src": "3332:3:39" - }, - "nativeSrc": "3332:32:39", - "nodeType": "YulFunctionCall", - "src": "3332:32:39" - }, - "nativeSrc": "3329:119:39", - "nodeType": "YulIf", - "src": "3329:119:39" - }, - { - "nativeSrc": "3458:117:39", - "nodeType": "YulBlock", - "src": "3458:117:39", - "statements": [ - { - "nativeSrc": "3473:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3473:15:39", - "value": { - "kind": "number", - "nativeSrc": "3487:1:39", - "nodeType": "YulLiteral", - "src": "3487:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3477:6:39", - "nodeType": "YulTypedName", - "src": "3477:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3502:63:39", - "nodeType": "YulAssignment", - "src": "3502:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3537:9:39", - "nodeType": "YulIdentifier", - "src": "3537:9:39" - }, - { - "name": "offset", - "nativeSrc": "3548:6:39", - "nodeType": "YulIdentifier", - "src": "3548:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3533:3:39", - "nodeType": "YulIdentifier", - "src": "3533:3:39" - }, - "nativeSrc": "3533:22:39", - "nodeType": "YulFunctionCall", - "src": "3533:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3557:7:39", - "nodeType": "YulIdentifier", - "src": "3557:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "3512:20:39", - "nodeType": "YulIdentifier", - "src": "3512:20:39" - }, - "nativeSrc": "3512:53:39", - "nodeType": "YulFunctionCall", - "src": "3512:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3502:6:39", - "nodeType": "YulIdentifier", - "src": "3502:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3585:117:39", - "nodeType": "YulBlock", - "src": "3585:117:39", - "statements": [ - { - "nativeSrc": "3600:16:39", - "nodeType": "YulVariableDeclaration", - "src": "3600:16:39", - "value": { - "kind": "number", - "nativeSrc": "3614:2:39", - "nodeType": "YulLiteral", - "src": "3614:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3604:6:39", - "nodeType": "YulTypedName", - "src": "3604:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3630:62:39", - "nodeType": "YulAssignment", - "src": "3630:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3664:9:39", - "nodeType": "YulIdentifier", - "src": "3664:9:39" - }, - { - "name": "offset", - "nativeSrc": "3675:6:39", - "nodeType": "YulIdentifier", - "src": "3675:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3660:3:39", - "nodeType": "YulIdentifier", - "src": "3660:3:39" - }, - "nativeSrc": "3660:22:39", - "nodeType": "YulFunctionCall", - "src": "3660:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3684:7:39", - "nodeType": "YulIdentifier", - "src": "3684:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint64", - "nativeSrc": "3640:19:39", - "nodeType": "YulIdentifier", - "src": "3640:19:39" - }, - "nativeSrc": "3640:52:39", - "nodeType": "YulFunctionCall", - "src": "3640:52:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3630:6:39", - "nodeType": "YulIdentifier", - "src": "3630:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_uint64", - "nativeSrc": "3237:472:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3281:9:39", - "nodeType": "YulTypedName", - "src": "3281:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3292:7:39", - "nodeType": "YulTypedName", - "src": "3292:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3304:6:39", - "nodeType": "YulTypedName", - "src": "3304:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3312:6:39", - "nodeType": "YulTypedName", - "src": "3312:6:39", - "type": "" - } - ], - "src": "3237:472:39" - }, - { - "body": { - "nativeSrc": "3778:52:39", - "nodeType": "YulBlock", - "src": "3778:52:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3795:3:39", - "nodeType": "YulIdentifier", - "src": "3795:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3817:5:39", - "nodeType": "YulIdentifier", - "src": "3817:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint64", - "nativeSrc": "3800:16:39", - "nodeType": "YulIdentifier", - "src": "3800:16:39" - }, - "nativeSrc": "3800:23:39", - "nodeType": "YulFunctionCall", - "src": "3800:23:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3788:6:39", - "nodeType": "YulIdentifier", - "src": "3788:6:39" - }, - "nativeSrc": "3788:36:39", - "nodeType": "YulFunctionCall", - "src": "3788:36:39" - }, - "nativeSrc": "3788:36:39", - "nodeType": "YulExpressionStatement", - "src": "3788:36:39" - } - ] - }, - "name": "abi_encode_t_uint64_to_t_uint64_fromStack", - "nativeSrc": "3715:115:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3766:5:39", - "nodeType": "YulTypedName", - "src": "3766:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "3773:3:39", - "nodeType": "YulTypedName", - "src": "3773:3:39", - "type": "" - } - ], - "src": "3715:115:39" - }, - { - "body": { - "nativeSrc": "3932:122:39", - "nodeType": "YulBlock", - "src": "3932:122:39", - "statements": [ - { - "nativeSrc": "3942:26:39", - "nodeType": "YulAssignment", - "src": "3942:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3954:9:39", - "nodeType": "YulIdentifier", - "src": "3954:9:39" - }, - { - "kind": "number", - "nativeSrc": "3965:2:39", - "nodeType": "YulLiteral", - "src": "3965:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3950:3:39", - "nodeType": "YulIdentifier", - "src": "3950:3:39" - }, - "nativeSrc": "3950:18:39", - "nodeType": "YulFunctionCall", - "src": "3950:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3942:4:39", - "nodeType": "YulIdentifier", - "src": "3942:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4020:6:39", - "nodeType": "YulIdentifier", - "src": "4020:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4033:9:39", - "nodeType": "YulIdentifier", - "src": "4033:9:39" - }, - { - "kind": "number", - "nativeSrc": "4044:1:39", - "nodeType": "YulLiteral", - "src": "4044:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4029:3:39", - "nodeType": "YulIdentifier", - "src": "4029:3:39" - }, - "nativeSrc": "4029:17:39", - "nodeType": "YulFunctionCall", - "src": "4029:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint64_to_t_uint64_fromStack", - "nativeSrc": "3978:41:39", - "nodeType": "YulIdentifier", - "src": "3978:41:39" - }, - "nativeSrc": "3978:69:39", - "nodeType": "YulFunctionCall", - "src": "3978:69:39" - }, - "nativeSrc": "3978:69:39", - "nodeType": "YulExpressionStatement", - "src": "3978:69:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", - "nativeSrc": "3836:218:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3904:9:39", - "nodeType": "YulTypedName", - "src": "3904:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "3916:6:39", - "nodeType": "YulTypedName", - "src": "3916:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "3927:4:39", - "nodeType": "YulTypedName", - "src": "3927:4:39", - "type": "" - } - ], - "src": "3836:218:39" - }, - { - "body": { - "nativeSrc": "4143:391:39", - "nodeType": "YulBlock", - "src": "4143:391:39", - "statements": [ - { - "body": { - "nativeSrc": "4189:83:39", - "nodeType": "YulBlock", - "src": "4189:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4191:77:39", - "nodeType": "YulIdentifier", - "src": "4191:77:39" - }, - "nativeSrc": "4191:79:39", - "nodeType": "YulFunctionCall", - "src": "4191:79:39" - }, - "nativeSrc": "4191:79:39", - "nodeType": "YulExpressionStatement", - "src": "4191:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4164:7:39", - "nodeType": "YulIdentifier", - "src": "4164:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4173:9:39", - "nodeType": "YulIdentifier", - "src": "4173:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4160:3:39", - "nodeType": "YulIdentifier", - "src": "4160:3:39" - }, - "nativeSrc": "4160:23:39", - "nodeType": "YulFunctionCall", - "src": "4160:23:39" - }, - { - "kind": "number", - "nativeSrc": "4185:2:39", - "nodeType": "YulLiteral", - "src": "4185:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4156:3:39", - "nodeType": "YulIdentifier", - "src": "4156:3:39" - }, - "nativeSrc": "4156:32:39", - "nodeType": "YulFunctionCall", - "src": "4156:32:39" - }, - "nativeSrc": "4153:119:39", - "nodeType": "YulIf", - "src": "4153:119:39" - }, - { - "nativeSrc": "4282:117:39", - "nodeType": "YulBlock", - "src": "4282:117:39", - "statements": [ - { - "nativeSrc": "4297:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4297:15:39", - "value": { - "kind": "number", - "nativeSrc": "4311:1:39", - "nodeType": "YulLiteral", - "src": "4311:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4301:6:39", - "nodeType": "YulTypedName", - "src": "4301:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4326:63:39", - "nodeType": "YulAssignment", - "src": "4326:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4361:9:39", - "nodeType": "YulIdentifier", - "src": "4361:9:39" - }, - { - "name": "offset", - "nativeSrc": "4372:6:39", - "nodeType": "YulIdentifier", - "src": "4372:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4357:3:39", - "nodeType": "YulIdentifier", - "src": "4357:3:39" - }, - "nativeSrc": "4357:22:39", - "nodeType": "YulFunctionCall", - "src": "4357:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4381:7:39", - "nodeType": "YulIdentifier", - "src": "4381:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "4336:20:39", - "nodeType": "YulIdentifier", - "src": "4336:20:39" - }, - "nativeSrc": "4336:53:39", - "nodeType": "YulFunctionCall", - "src": "4336:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4326:6:39", - "nodeType": "YulIdentifier", - "src": "4326:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4409:118:39", - "nodeType": "YulBlock", - "src": "4409:118:39", - "statements": [ - { - "nativeSrc": "4424:16:39", - "nodeType": "YulVariableDeclaration", - "src": "4424:16:39", - "value": { - "kind": "number", - "nativeSrc": "4438:2:39", - "nodeType": "YulLiteral", - "src": "4438:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4428:6:39", - "nodeType": "YulTypedName", - "src": "4428:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4454:63:39", - "nodeType": "YulAssignment", - "src": "4454:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4489:9:39", - "nodeType": "YulIdentifier", - "src": "4489:9:39" - }, - { - "name": "offset", - "nativeSrc": "4500:6:39", - "nodeType": "YulIdentifier", - "src": "4500:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4485:3:39", - "nodeType": "YulIdentifier", - "src": "4485:3:39" - }, - "nativeSrc": "4485:22:39", - "nodeType": "YulFunctionCall", - "src": "4485:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4509:7:39", - "nodeType": "YulIdentifier", - "src": "4509:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "4464:20:39", - "nodeType": "YulIdentifier", - "src": "4464:20:39" - }, - "nativeSrc": "4464:53:39", - "nodeType": "YulFunctionCall", - "src": "4464:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4454:6:39", - "nodeType": "YulIdentifier", - "src": "4454:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_address", - "nativeSrc": "4060:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4105:9:39", - "nodeType": "YulTypedName", - "src": "4105:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4116:7:39", - "nodeType": "YulTypedName", - "src": "4116:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4128:6:39", - "nodeType": "YulTypedName", - "src": "4128:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4136:6:39", - "nodeType": "YulTypedName", - "src": "4136:6:39", - "type": "" - } - ], - "src": "4060:474:39" - }, - { - "body": { - "nativeSrc": "4673:776:39", - "nodeType": "YulBlock", - "src": "4673:776:39", - "statements": [ - { - "body": { - "nativeSrc": "4720:83:39", - "nodeType": "YulBlock", - "src": "4720:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4722:77:39", - "nodeType": "YulIdentifier", - "src": "4722:77:39" - }, - "nativeSrc": "4722:79:39", - "nodeType": "YulFunctionCall", - "src": "4722:79:39" - }, - "nativeSrc": "4722:79:39", - "nodeType": "YulExpressionStatement", - "src": "4722:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4694:7:39", - "nodeType": "YulIdentifier", - "src": "4694:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4703:9:39", - "nodeType": "YulIdentifier", - "src": "4703:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4690:3:39", - "nodeType": "YulIdentifier", - "src": "4690:3:39" - }, - "nativeSrc": "4690:23:39", - "nodeType": "YulFunctionCall", - "src": "4690:23:39" - }, - { - "kind": "number", - "nativeSrc": "4715:3:39", - "nodeType": "YulLiteral", - "src": "4715:3:39", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4686:3:39", - "nodeType": "YulIdentifier", - "src": "4686:3:39" - }, - "nativeSrc": "4686:33:39", - "nodeType": "YulFunctionCall", - "src": "4686:33:39" - }, - "nativeSrc": "4683:120:39", - "nodeType": "YulIf", - "src": "4683:120:39" - }, - { - "nativeSrc": "4813:117:39", - "nodeType": "YulBlock", - "src": "4813:117:39", - "statements": [ - { - "nativeSrc": "4828:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4828:15:39", - "value": { - "kind": "number", - "nativeSrc": "4842:1:39", - "nodeType": "YulLiteral", - "src": "4842:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4832:6:39", - "nodeType": "YulTypedName", - "src": "4832:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4857:63:39", - "nodeType": "YulAssignment", - "src": "4857:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4892:9:39", - "nodeType": "YulIdentifier", - "src": "4892:9:39" - }, - { - "name": "offset", - "nativeSrc": "4903:6:39", - "nodeType": "YulIdentifier", - "src": "4903:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4888:3:39", - "nodeType": "YulIdentifier", - "src": "4888:3:39" - }, - "nativeSrc": "4888:22:39", - "nodeType": "YulFunctionCall", - "src": "4888:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4912:7:39", - "nodeType": "YulIdentifier", - "src": "4912:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "4867:20:39", - "nodeType": "YulIdentifier", - "src": "4867:20:39" - }, - "nativeSrc": "4867:53:39", - "nodeType": "YulFunctionCall", - "src": "4867:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4857:6:39", - "nodeType": "YulIdentifier", - "src": "4857:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4940:118:39", - "nodeType": "YulBlock", - "src": "4940:118:39", - "statements": [ - { - "nativeSrc": "4955:16:39", - "nodeType": "YulVariableDeclaration", - "src": "4955:16:39", - "value": { - "kind": "number", - "nativeSrc": "4969:2:39", - "nodeType": "YulLiteral", - "src": "4969:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4959:6:39", - "nodeType": "YulTypedName", - "src": "4959:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4985:63:39", - "nodeType": "YulAssignment", - "src": "4985:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5020:9:39", - "nodeType": "YulIdentifier", - "src": "5020:9:39" - }, - { - "name": "offset", - "nativeSrc": "5031:6:39", - "nodeType": "YulIdentifier", - "src": "5031:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5016:3:39", - "nodeType": "YulIdentifier", - "src": "5016:3:39" - }, - "nativeSrc": "5016:22:39", - "nodeType": "YulFunctionCall", - "src": "5016:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "5040:7:39", - "nodeType": "YulIdentifier", - "src": "5040:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "4995:20:39", - "nodeType": "YulIdentifier", - "src": "4995:20:39" - }, - "nativeSrc": "4995:53:39", - "nodeType": "YulFunctionCall", - "src": "4995:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4985:6:39", - "nodeType": "YulIdentifier", - "src": "4985:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "5068:118:39", - "nodeType": "YulBlock", - "src": "5068:118:39", - "statements": [ - { - "nativeSrc": "5083:16:39", - "nodeType": "YulVariableDeclaration", - "src": "5083:16:39", - "value": { - "kind": "number", - "nativeSrc": "5097:2:39", - "nodeType": "YulLiteral", - "src": "5097:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "5087:6:39", - "nodeType": "YulTypedName", - "src": "5087:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5113:63:39", - "nodeType": "YulAssignment", - "src": "5113:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5148:9:39", - "nodeType": "YulIdentifier", - "src": "5148:9:39" - }, - { - "name": "offset", - "nativeSrc": "5159:6:39", - "nodeType": "YulIdentifier", - "src": "5159:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5144:3:39", - "nodeType": "YulIdentifier", - "src": "5144:3:39" - }, - "nativeSrc": "5144:22:39", - "nodeType": "YulFunctionCall", - "src": "5144:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "5168:7:39", - "nodeType": "YulIdentifier", - "src": "5168:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "5123:20:39", - "nodeType": "YulIdentifier", - "src": "5123:20:39" - }, - "nativeSrc": "5123:53:39", - "nodeType": "YulFunctionCall", - "src": "5123:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "5113:6:39", - "nodeType": "YulIdentifier", - "src": "5113:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "5196:118:39", - "nodeType": "YulBlock", - "src": "5196:118:39", - "statements": [ - { - "nativeSrc": "5211:16:39", - "nodeType": "YulVariableDeclaration", - "src": "5211:16:39", - "value": { - "kind": "number", - "nativeSrc": "5225:2:39", - "nodeType": "YulLiteral", - "src": "5225:2:39", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "5215:6:39", - "nodeType": "YulTypedName", - "src": "5215:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5241:63:39", - "nodeType": "YulAssignment", - "src": "5241:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5276:9:39", - "nodeType": "YulIdentifier", - "src": "5276:9:39" - }, - { - "name": "offset", - "nativeSrc": "5287:6:39", - "nodeType": "YulIdentifier", - "src": "5287:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5272:3:39", - "nodeType": "YulIdentifier", - "src": "5272:3:39" - }, - "nativeSrc": "5272:22:39", - "nodeType": "YulFunctionCall", - "src": "5272:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "5296:7:39", - "nodeType": "YulIdentifier", - "src": "5296:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "5251:20:39", - "nodeType": "YulIdentifier", - "src": "5251:20:39" - }, - "nativeSrc": "5251:53:39", - "nodeType": "YulFunctionCall", - "src": "5251:53:39" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "5241:6:39", - "nodeType": "YulIdentifier", - "src": "5241:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "5324:118:39", - "nodeType": "YulBlock", - "src": "5324:118:39", - "statements": [ - { - "nativeSrc": "5339:17:39", - "nodeType": "YulVariableDeclaration", - "src": "5339:17:39", - "value": { - "kind": "number", - "nativeSrc": "5353:3:39", - "nodeType": "YulLiteral", - "src": "5353:3:39", - "type": "", - "value": "128" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "5343:6:39", - "nodeType": "YulTypedName", - "src": "5343:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5370:62:39", - "nodeType": "YulAssignment", - "src": "5370:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5404:9:39", - "nodeType": "YulIdentifier", - "src": "5404:9:39" - }, - { - "name": "offset", - "nativeSrc": "5415:6:39", - "nodeType": "YulIdentifier", - "src": "5415:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5400:3:39", - "nodeType": "YulIdentifier", - "src": "5400:3:39" - }, - "nativeSrc": "5400:22:39", - "nodeType": "YulFunctionCall", - "src": "5400:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "5424:7:39", - "nodeType": "YulIdentifier", - "src": "5424:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint64", - "nativeSrc": "5380:19:39", - "nodeType": "YulIdentifier", - "src": "5380:19:39" - }, - "nativeSrc": "5380:52:39", - "nodeType": "YulFunctionCall", - "src": "5380:52:39" - }, - "variableNames": [ - { - "name": "value4", - "nativeSrc": "5370:6:39", - "nodeType": "YulIdentifier", - "src": "5370:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_bytes32t_addresst_addresst_uint64", - "nativeSrc": "4540:909:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4611:9:39", - "nodeType": "YulTypedName", - "src": "4611:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4622:7:39", - "nodeType": "YulTypedName", - "src": "4622:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4634:6:39", - "nodeType": "YulTypedName", - "src": "4634:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4642:6:39", - "nodeType": "YulTypedName", - "src": "4642:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4650:6:39", - "nodeType": "YulTypedName", - "src": "4650:6:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "4658:6:39", - "nodeType": "YulTypedName", - "src": "4658:6:39", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "4666:6:39", - "nodeType": "YulTypedName", - "src": "4666:6:39", - "type": "" - } - ], - "src": "4540:909:39" - }, - { - "body": { - "nativeSrc": "5497:48:39", - "nodeType": "YulBlock", - "src": "5497:48:39", - "statements": [ - { - "nativeSrc": "5507:32:39", - "nodeType": "YulAssignment", - "src": "5507:32:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5532:5:39", - "nodeType": "YulIdentifier", - "src": "5532:5:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "5525:6:39", - "nodeType": "YulIdentifier", - "src": "5525:6:39" - }, - "nativeSrc": "5525:13:39", - "nodeType": "YulFunctionCall", - "src": "5525:13:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "5518:6:39", - "nodeType": "YulIdentifier", - "src": "5518:6:39" - }, - "nativeSrc": "5518:21:39", - "nodeType": "YulFunctionCall", - "src": "5518:21:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "5507:7:39", - "nodeType": "YulIdentifier", - "src": "5507:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bool", - "nativeSrc": "5455:90:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5479:5:39", - "nodeType": "YulTypedName", - "src": "5479:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "5489:7:39", - "nodeType": "YulTypedName", - "src": "5489:7:39", - "type": "" - } - ], - "src": "5455:90:39" - }, - { - "body": { - "nativeSrc": "5591:76:39", - "nodeType": "YulBlock", - "src": "5591:76:39", - "statements": [ - { - "body": { - "nativeSrc": "5645:16:39", - "nodeType": "YulBlock", - "src": "5645:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5654:1:39", - "nodeType": "YulLiteral", - "src": "5654:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5657:1:39", - "nodeType": "YulLiteral", - "src": "5657:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5647:6:39", - "nodeType": "YulIdentifier", - "src": "5647:6:39" - }, - "nativeSrc": "5647:12:39", - "nodeType": "YulFunctionCall", - "src": "5647:12:39" - }, - "nativeSrc": "5647:12:39", - "nodeType": "YulExpressionStatement", - "src": "5647:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5614:5:39", - "nodeType": "YulIdentifier", - "src": "5614:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5636:5:39", - "nodeType": "YulIdentifier", - "src": "5636:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "5621:14:39", - "nodeType": "YulIdentifier", - "src": "5621:14:39" - }, - "nativeSrc": "5621:21:39", - "nodeType": "YulFunctionCall", - "src": "5621:21:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "5611:2:39", - "nodeType": "YulIdentifier", - "src": "5611:2:39" - }, - "nativeSrc": "5611:32:39", - "nodeType": "YulFunctionCall", - "src": "5611:32:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "5604:6:39", - "nodeType": "YulIdentifier", - "src": "5604:6:39" - }, - "nativeSrc": "5604:40:39", - "nodeType": "YulFunctionCall", - "src": "5604:40:39" - }, - "nativeSrc": "5601:60:39", - "nodeType": "YulIf", - "src": "5601:60:39" - } - ] - }, - "name": "validator_revert_t_bool", - "nativeSrc": "5551:116:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5584:5:39", - "nodeType": "YulTypedName", - "src": "5584:5:39", - "type": "" - } - ], - "src": "5551:116:39" - }, - { - "body": { - "nativeSrc": "5722:84:39", - "nodeType": "YulBlock", - "src": "5722:84:39", - "statements": [ - { - "nativeSrc": "5732:29:39", - "nodeType": "YulAssignment", - "src": "5732:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "5754:6:39", - "nodeType": "YulIdentifier", - "src": "5754:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "5741:12:39", - "nodeType": "YulIdentifier", - "src": "5741:12:39" - }, - "nativeSrc": "5741:20:39", - "nodeType": "YulFunctionCall", - "src": "5741:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "5732:5:39", - "nodeType": "YulIdentifier", - "src": "5732:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5794:5:39", - "nodeType": "YulIdentifier", - "src": "5794:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bool", - "nativeSrc": "5770:23:39", - "nodeType": "YulIdentifier", - "src": "5770:23:39" - }, - "nativeSrc": "5770:30:39", - "nodeType": "YulFunctionCall", - "src": "5770:30:39" - }, - "nativeSrc": "5770:30:39", - "nodeType": "YulExpressionStatement", - "src": "5770:30:39" - } - ] - }, - "name": "abi_decode_t_bool", - "nativeSrc": "5673:133:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "5700:6:39", - "nodeType": "YulTypedName", - "src": "5700:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "5708:3:39", - "nodeType": "YulTypedName", - "src": "5708:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "5716:5:39", - "nodeType": "YulTypedName", - "src": "5716:5:39", - "type": "" - } - ], - "src": "5673:133:39" - }, - { - "body": { - "nativeSrc": "5892:388:39", - "nodeType": "YulBlock", - "src": "5892:388:39", - "statements": [ - { - "body": { - "nativeSrc": "5938:83:39", - "nodeType": "YulBlock", - "src": "5938:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "5940:77:39", - "nodeType": "YulIdentifier", - "src": "5940:77:39" - }, - "nativeSrc": "5940:79:39", - "nodeType": "YulFunctionCall", - "src": "5940:79:39" - }, - "nativeSrc": "5940:79:39", - "nodeType": "YulExpressionStatement", - "src": "5940:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "5913:7:39", - "nodeType": "YulIdentifier", - "src": "5913:7:39" - }, - { - "name": "headStart", - "nativeSrc": "5922:9:39", - "nodeType": "YulIdentifier", - "src": "5922:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5909:3:39", - "nodeType": "YulIdentifier", - "src": "5909:3:39" - }, - "nativeSrc": "5909:23:39", - "nodeType": "YulFunctionCall", - "src": "5909:23:39" - }, - { - "kind": "number", - "nativeSrc": "5934:2:39", - "nodeType": "YulLiteral", - "src": "5934:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "5905:3:39", - "nodeType": "YulIdentifier", - "src": "5905:3:39" - }, - "nativeSrc": "5905:32:39", - "nodeType": "YulFunctionCall", - "src": "5905:32:39" - }, - "nativeSrc": "5902:119:39", - "nodeType": "YulIf", - "src": "5902:119:39" - }, - { - "nativeSrc": "6031:117:39", - "nodeType": "YulBlock", - "src": "6031:117:39", - "statements": [ - { - "nativeSrc": "6046:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6046:15:39", - "value": { - "kind": "number", - "nativeSrc": "6060:1:39", - "nodeType": "YulLiteral", - "src": "6060:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6050:6:39", - "nodeType": "YulTypedName", - "src": "6050:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6075:63:39", - "nodeType": "YulAssignment", - "src": "6075:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6110:9:39", - "nodeType": "YulIdentifier", - "src": "6110:9:39" - }, - { - "name": "offset", - "nativeSrc": "6121:6:39", - "nodeType": "YulIdentifier", - "src": "6121:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6106:3:39", - "nodeType": "YulIdentifier", - "src": "6106:3:39" - }, - "nativeSrc": "6106:22:39", - "nodeType": "YulFunctionCall", - "src": "6106:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6130:7:39", - "nodeType": "YulIdentifier", - "src": "6130:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6085:20:39", - "nodeType": "YulIdentifier", - "src": "6085:20:39" - }, - "nativeSrc": "6085:53:39", - "nodeType": "YulFunctionCall", - "src": "6085:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6075:6:39", - "nodeType": "YulIdentifier", - "src": "6075:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "6158:115:39", - "nodeType": "YulBlock", - "src": "6158:115:39", - "statements": [ - { - "nativeSrc": "6173:16:39", - "nodeType": "YulVariableDeclaration", - "src": "6173:16:39", - "value": { - "kind": "number", - "nativeSrc": "6187:2:39", - "nodeType": "YulLiteral", - "src": "6187:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6177:6:39", - "nodeType": "YulTypedName", - "src": "6177:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6203:60:39", - "nodeType": "YulAssignment", - "src": "6203:60:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6235:9:39", - "nodeType": "YulIdentifier", - "src": "6235:9:39" - }, - { - "name": "offset", - "nativeSrc": "6246:6:39", - "nodeType": "YulIdentifier", - "src": "6246:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6231:3:39", - "nodeType": "YulIdentifier", - "src": "6231:3:39" - }, - "nativeSrc": "6231:22:39", - "nodeType": "YulFunctionCall", - "src": "6231:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6255:7:39", - "nodeType": "YulIdentifier", - "src": "6255:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bool", - "nativeSrc": "6213:17:39", - "nodeType": "YulIdentifier", - "src": "6213:17:39" - }, - "nativeSrc": "6213:50:39", - "nodeType": "YulFunctionCall", - "src": "6213:50:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "6203:6:39", - "nodeType": "YulIdentifier", - "src": "6203:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bool", - "nativeSrc": "5812:468:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5854:9:39", - "nodeType": "YulTypedName", - "src": "5854:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "5865:7:39", - "nodeType": "YulTypedName", - "src": "5865:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "5877:6:39", - "nodeType": "YulTypedName", - "src": "5877:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "5885:6:39", - "nodeType": "YulTypedName", - "src": "5885:6:39", - "type": "" - } - ], - "src": "5812:468:39" - }, - { - "body": { - "nativeSrc": "6402:647:39", - "nodeType": "YulBlock", - "src": "6402:647:39", - "statements": [ - { - "body": { - "nativeSrc": "6449:83:39", - "nodeType": "YulBlock", - "src": "6449:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "6451:77:39", - "nodeType": "YulIdentifier", - "src": "6451:77:39" - }, - "nativeSrc": "6451:79:39", - "nodeType": "YulFunctionCall", - "src": "6451:79:39" - }, - "nativeSrc": "6451:79:39", - "nodeType": "YulExpressionStatement", - "src": "6451:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6423:7:39", - "nodeType": "YulIdentifier", - "src": "6423:7:39" - }, - { - "name": "headStart", - "nativeSrc": "6432:9:39", - "nodeType": "YulIdentifier", - "src": "6432:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6419:3:39", - "nodeType": "YulIdentifier", - "src": "6419:3:39" - }, - "nativeSrc": "6419:23:39", - "nodeType": "YulFunctionCall", - "src": "6419:23:39" - }, - { - "kind": "number", - "nativeSrc": "6444:3:39", - "nodeType": "YulLiteral", - "src": "6444:3:39", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6415:3:39", - "nodeType": "YulIdentifier", - "src": "6415:3:39" - }, - "nativeSrc": "6415:33:39", - "nodeType": "YulFunctionCall", - "src": "6415:33:39" - }, - "nativeSrc": "6412:120:39", - "nodeType": "YulIf", - "src": "6412:120:39" - }, - { - "nativeSrc": "6542:117:39", - "nodeType": "YulBlock", - "src": "6542:117:39", - "statements": [ - { - "nativeSrc": "6557:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6557:15:39", - "value": { - "kind": "number", - "nativeSrc": "6571:1:39", - "nodeType": "YulLiteral", - "src": "6571:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6561:6:39", - "nodeType": "YulTypedName", - "src": "6561:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6586:63:39", - "nodeType": "YulAssignment", - "src": "6586:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6621:9:39", - "nodeType": "YulIdentifier", - "src": "6621:9:39" - }, - { - "name": "offset", - "nativeSrc": "6632:6:39", - "nodeType": "YulIdentifier", - "src": "6632:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6617:3:39", - "nodeType": "YulIdentifier", - "src": "6617:3:39" - }, - "nativeSrc": "6617:22:39", - "nodeType": "YulFunctionCall", - "src": "6617:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6641:7:39", - "nodeType": "YulIdentifier", - "src": "6641:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "6596:20:39", - "nodeType": "YulIdentifier", - "src": "6596:20:39" - }, - "nativeSrc": "6596:53:39", - "nodeType": "YulFunctionCall", - "src": "6596:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6586:6:39", - "nodeType": "YulIdentifier", - "src": "6586:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "6669:118:39", - "nodeType": "YulBlock", - "src": "6669:118:39", - "statements": [ - { - "nativeSrc": "6684:16:39", - "nodeType": "YulVariableDeclaration", - "src": "6684:16:39", - "value": { - "kind": "number", - "nativeSrc": "6698:2:39", - "nodeType": "YulLiteral", - "src": "6698:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6688:6:39", - "nodeType": "YulTypedName", - "src": "6688:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6714:63:39", - "nodeType": "YulAssignment", - "src": "6714:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6749:9:39", - "nodeType": "YulIdentifier", - "src": "6749:9:39" - }, - { - "name": "offset", - "nativeSrc": "6760:6:39", - "nodeType": "YulIdentifier", - "src": "6760:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6745:3:39", - "nodeType": "YulIdentifier", - "src": "6745:3:39" - }, - "nativeSrc": "6745:22:39", - "nodeType": "YulFunctionCall", - "src": "6745:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6769:7:39", - "nodeType": "YulIdentifier", - "src": "6769:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6724:20:39", - "nodeType": "YulIdentifier", - "src": "6724:20:39" - }, - "nativeSrc": "6724:53:39", - "nodeType": "YulFunctionCall", - "src": "6724:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "6714:6:39", - "nodeType": "YulIdentifier", - "src": "6714:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "6797:118:39", - "nodeType": "YulBlock", - "src": "6797:118:39", - "statements": [ - { - "nativeSrc": "6812:16:39", - "nodeType": "YulVariableDeclaration", - "src": "6812:16:39", - "value": { - "kind": "number", - "nativeSrc": "6826:2:39", - "nodeType": "YulLiteral", - "src": "6826:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6816:6:39", - "nodeType": "YulTypedName", - "src": "6816:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6842:63:39", - "nodeType": "YulAssignment", - "src": "6842:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6877:9:39", - "nodeType": "YulIdentifier", - "src": "6877:9:39" - }, - { - "name": "offset", - "nativeSrc": "6888:6:39", - "nodeType": "YulIdentifier", - "src": "6888:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6873:3:39", - "nodeType": "YulIdentifier", - "src": "6873:3:39" - }, - "nativeSrc": "6873:22:39", - "nodeType": "YulFunctionCall", - "src": "6873:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6897:7:39", - "nodeType": "YulIdentifier", - "src": "6897:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6852:20:39", - "nodeType": "YulIdentifier", - "src": "6852:20:39" - }, - "nativeSrc": "6852:53:39", - "nodeType": "YulFunctionCall", - "src": "6852:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "6842:6:39", - "nodeType": "YulIdentifier", - "src": "6842:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "6925:117:39", - "nodeType": "YulBlock", - "src": "6925:117:39", - "statements": [ - { - "nativeSrc": "6940:16:39", - "nodeType": "YulVariableDeclaration", - "src": "6940:16:39", - "value": { - "kind": "number", - "nativeSrc": "6954:2:39", - "nodeType": "YulLiteral", - "src": "6954:2:39", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6944:6:39", - "nodeType": "YulTypedName", - "src": "6944:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6970:62:39", - "nodeType": "YulAssignment", - "src": "6970:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7004:9:39", - "nodeType": "YulIdentifier", - "src": "7004:9:39" - }, - { - "name": "offset", - "nativeSrc": "7015:6:39", - "nodeType": "YulIdentifier", - "src": "7015:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7000:3:39", - "nodeType": "YulIdentifier", - "src": "7000:3:39" - }, - "nativeSrc": "7000:22:39", - "nodeType": "YulFunctionCall", - "src": "7000:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "7024:7:39", - "nodeType": "YulIdentifier", - "src": "7024:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint64", - "nativeSrc": "6980:19:39", - "nodeType": "YulIdentifier", - "src": "6980:19:39" - }, - "nativeSrc": "6980:52:39", - "nodeType": "YulFunctionCall", - "src": "6980:52:39" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "6970:6:39", - "nodeType": "YulIdentifier", - "src": "6970:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_addresst_addresst_uint64", - "nativeSrc": "6286:763:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6348:9:39", - "nodeType": "YulTypedName", - "src": "6348:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "6359:7:39", - "nodeType": "YulTypedName", - "src": "6359:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "6371:6:39", - "nodeType": "YulTypedName", - "src": "6371:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "6379:6:39", - "nodeType": "YulTypedName", - "src": "6379:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "6387:6:39", - "nodeType": "YulTypedName", - "src": "6387:6:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "6395:6:39", - "nodeType": "YulTypedName", - "src": "6395:6:39", - "type": "" - } - ], - "src": "6286:763:39" - }, - { - "body": { - "nativeSrc": "7138:391:39", - "nodeType": "YulBlock", - "src": "7138:391:39", - "statements": [ - { - "body": { - "nativeSrc": "7184:83:39", - "nodeType": "YulBlock", - "src": "7184:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "7186:77:39", - "nodeType": "YulIdentifier", - "src": "7186:77:39" - }, - "nativeSrc": "7186:79:39", - "nodeType": "YulFunctionCall", - "src": "7186:79:39" - }, - "nativeSrc": "7186:79:39", - "nodeType": "YulExpressionStatement", - "src": "7186:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "7159:7:39", - "nodeType": "YulIdentifier", - "src": "7159:7:39" - }, - { - "name": "headStart", - "nativeSrc": "7168:9:39", - "nodeType": "YulIdentifier", - "src": "7168:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7155:3:39", - "nodeType": "YulIdentifier", - "src": "7155:3:39" - }, - "nativeSrc": "7155:23:39", - "nodeType": "YulFunctionCall", - "src": "7155:23:39" - }, - { - "kind": "number", - "nativeSrc": "7180:2:39", - "nodeType": "YulLiteral", - "src": "7180:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "7151:3:39", - "nodeType": "YulIdentifier", - "src": "7151:3:39" - }, - "nativeSrc": "7151:32:39", - "nodeType": "YulFunctionCall", - "src": "7151:32:39" - }, - "nativeSrc": "7148:119:39", - "nodeType": "YulIf", - "src": "7148:119:39" - }, - { - "nativeSrc": "7277:117:39", - "nodeType": "YulBlock", - "src": "7277:117:39", - "statements": [ - { - "nativeSrc": "7292:15:39", - "nodeType": "YulVariableDeclaration", - "src": "7292:15:39", - "value": { - "kind": "number", - "nativeSrc": "7306:1:39", - "nodeType": "YulLiteral", - "src": "7306:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "7296:6:39", - "nodeType": "YulTypedName", - "src": "7296:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "7321:63:39", - "nodeType": "YulAssignment", - "src": "7321:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7356:9:39", - "nodeType": "YulIdentifier", - "src": "7356:9:39" - }, - { - "name": "offset", - "nativeSrc": "7367:6:39", - "nodeType": "YulIdentifier", - "src": "7367:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7352:3:39", - "nodeType": "YulIdentifier", - "src": "7352:3:39" - }, - "nativeSrc": "7352:22:39", - "nodeType": "YulFunctionCall", - "src": "7352:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "7376:7:39", - "nodeType": "YulIdentifier", - "src": "7376:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "7331:20:39", - "nodeType": "YulIdentifier", - "src": "7331:20:39" - }, - "nativeSrc": "7331:53:39", - "nodeType": "YulFunctionCall", - "src": "7331:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "7321:6:39", - "nodeType": "YulIdentifier", - "src": "7321:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "7404:118:39", - "nodeType": "YulBlock", - "src": "7404:118:39", - "statements": [ - { - "nativeSrc": "7419:16:39", - "nodeType": "YulVariableDeclaration", - "src": "7419:16:39", - "value": { - "kind": "number", - "nativeSrc": "7433:2:39", - "nodeType": "YulLiteral", - "src": "7433:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "7423:6:39", - "nodeType": "YulTypedName", - "src": "7423:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "7449:63:39", - "nodeType": "YulAssignment", - "src": "7449:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7484:9:39", - "nodeType": "YulIdentifier", - "src": "7484:9:39" - }, - { - "name": "offset", - "nativeSrc": "7495:6:39", - "nodeType": "YulIdentifier", - "src": "7495:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7480:3:39", - "nodeType": "YulIdentifier", - "src": "7480:3:39" - }, - "nativeSrc": "7480:22:39", - "nodeType": "YulFunctionCall", - "src": "7480:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "7504:7:39", - "nodeType": "YulIdentifier", - "src": "7504:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "7459:20:39", - "nodeType": "YulIdentifier", - "src": "7459:20:39" - }, - "nativeSrc": "7459:53:39", - "nodeType": "YulFunctionCall", - "src": "7459:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "7449:6:39", - "nodeType": "YulIdentifier", - "src": "7449:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_address", - "nativeSrc": "7055:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7100:9:39", - "nodeType": "YulTypedName", - "src": "7100:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "7111:7:39", - "nodeType": "YulTypedName", - "src": "7111:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "7123:6:39", - "nodeType": "YulTypedName", - "src": "7123:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7131:6:39", - "nodeType": "YulTypedName", - "src": "7131:6:39", - "type": "" - } - ], - "src": "7055:474:39" - }, - { - "body": { - "nativeSrc": "7594:50:39", - "nodeType": "YulBlock", - "src": "7594:50:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7611:3:39", - "nodeType": "YulIdentifier", - "src": "7611:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "7631:5:39", - "nodeType": "YulIdentifier", - "src": "7631:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "7616:14:39", - "nodeType": "YulIdentifier", - "src": "7616:14:39" - }, - "nativeSrc": "7616:21:39", - "nodeType": "YulFunctionCall", - "src": "7616:21:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7604:6:39", - "nodeType": "YulIdentifier", - "src": "7604:6:39" - }, - "nativeSrc": "7604:34:39", - "nodeType": "YulFunctionCall", - "src": "7604:34:39" - }, - "nativeSrc": "7604:34:39", - "nodeType": "YulExpressionStatement", - "src": "7604:34:39" - } - ] - }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "7535:109:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7582:5:39", - "nodeType": "YulTypedName", - "src": "7582:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "7589:3:39", - "nodeType": "YulTypedName", - "src": "7589:3:39", - "type": "" - } - ], - "src": "7535:109:39" - }, - { - "body": { - "nativeSrc": "7742:118:39", - "nodeType": "YulBlock", - "src": "7742:118:39", - "statements": [ - { - "nativeSrc": "7752:26:39", - "nodeType": "YulAssignment", - "src": "7752:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7764:9:39", - "nodeType": "YulIdentifier", - "src": "7764:9:39" - }, - { - "kind": "number", - "nativeSrc": "7775:2:39", - "nodeType": "YulLiteral", - "src": "7775:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7760:3:39", - "nodeType": "YulIdentifier", - "src": "7760:3:39" - }, - "nativeSrc": "7760:18:39", - "nodeType": "YulFunctionCall", - "src": "7760:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7752:4:39", - "nodeType": "YulIdentifier", - "src": "7752:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7826:6:39", - "nodeType": "YulIdentifier", - "src": "7826:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7839:9:39", - "nodeType": "YulIdentifier", - "src": "7839:9:39" - }, - { - "kind": "number", - "nativeSrc": "7850:1:39", - "nodeType": "YulLiteral", - "src": "7850:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7835:3:39", - "nodeType": "YulIdentifier", - "src": "7835:3:39" - }, - "nativeSrc": "7835:17:39", - "nodeType": "YulFunctionCall", - "src": "7835:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "7788:37:39", - "nodeType": "YulIdentifier", - "src": "7788:37:39" - }, - "nativeSrc": "7788:65:39", - "nodeType": "YulFunctionCall", - "src": "7788:65:39" - }, - "nativeSrc": "7788:65:39", - "nodeType": "YulExpressionStatement", - "src": "7788:65:39" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "7650:210:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7714:9:39", - "nodeType": "YulTypedName", - "src": "7714:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7726:6:39", - "nodeType": "YulTypedName", - "src": "7726:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7737:4:39", - "nodeType": "YulTypedName", - "src": "7737:4:39", - "type": "" - } - ], - "src": "7650:210:39" - }, - { - "body": { - "nativeSrc": "7913:32:39", - "nodeType": "YulBlock", - "src": "7913:32:39", - "statements": [ - { - "nativeSrc": "7923:16:39", - "nodeType": "YulAssignment", - "src": "7923:16:39", - "value": { - "name": "value", - "nativeSrc": "7934:5:39", - "nodeType": "YulIdentifier", - "src": "7934:5:39" - }, - "variableNames": [ - { - "name": "aligned", - "nativeSrc": "7923:7:39", - "nodeType": "YulIdentifier", - "src": "7923:7:39" - } - ] - } - ] - }, - "name": "leftAlign_t_bytes32", - "nativeSrc": "7866:79:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7895:5:39", - "nodeType": "YulTypedName", - "src": "7895:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "aligned", - "nativeSrc": "7905:7:39", - "nodeType": "YulTypedName", - "src": "7905:7:39", - "type": "" - } - ], - "src": "7866:79:39" - }, - { - "body": { - "nativeSrc": "8034:74:39", - "nodeType": "YulBlock", - "src": "8034:74:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8051:3:39", - "nodeType": "YulIdentifier", - "src": "8051:3:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "8094:5:39", - "nodeType": "YulIdentifier", - "src": "8094:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "8076:17:39", - "nodeType": "YulIdentifier", - "src": "8076:17:39" - }, - "nativeSrc": "8076:24:39", - "nodeType": "YulFunctionCall", - "src": "8076:24:39" - } - ], - "functionName": { - "name": "leftAlign_t_bytes32", - "nativeSrc": "8056:19:39", - "nodeType": "YulIdentifier", - "src": "8056:19:39" - }, - "nativeSrc": "8056:45:39", - "nodeType": "YulFunctionCall", - "src": "8056:45:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8044:6:39", - "nodeType": "YulIdentifier", - "src": "8044:6:39" - }, - "nativeSrc": "8044:58:39", - "nodeType": "YulFunctionCall", - "src": "8044:58:39" - }, - "nativeSrc": "8044:58:39", - "nodeType": "YulExpressionStatement", - "src": "8044:58:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nativeSrc": "7951:157:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8022:5:39", - "nodeType": "YulTypedName", - "src": "8022:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "8029:3:39", - "nodeType": "YulTypedName", - "src": "8029:3:39", - "type": "" - } - ], - "src": "7951:157:39" - }, - { - "body": { - "nativeSrc": "8258:253:39", - "nodeType": "YulBlock", - "src": "8258:253:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8331:6:39", - "nodeType": "YulIdentifier", - "src": "8331:6:39" - }, - { - "name": "pos", - "nativeSrc": "8340:3:39", - "nodeType": "YulIdentifier", - "src": "8340:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nativeSrc": "8269:61:39", - "nodeType": "YulIdentifier", - "src": "8269:61:39" - }, - "nativeSrc": "8269:75:39", - "nodeType": "YulFunctionCall", - "src": "8269:75:39" - }, - "nativeSrc": "8269:75:39", - "nodeType": "YulExpressionStatement", - "src": "8269:75:39" - }, - { - "nativeSrc": "8353:19:39", - "nodeType": "YulAssignment", - "src": "8353:19:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8364:3:39", - "nodeType": "YulIdentifier", - "src": "8364:3:39" - }, - { - "kind": "number", - "nativeSrc": "8369:2:39", - "nodeType": "YulLiteral", - "src": "8369:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8360:3:39", - "nodeType": "YulIdentifier", - "src": "8360:3:39" - }, - "nativeSrc": "8360:12:39", - "nodeType": "YulFunctionCall", - "src": "8360:12:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "8353:3:39", - "nodeType": "YulIdentifier", - "src": "8353:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "8444:6:39", - "nodeType": "YulIdentifier", - "src": "8444:6:39" - }, - { - "name": "pos", - "nativeSrc": "8453:3:39", - "nodeType": "YulIdentifier", - "src": "8453:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nativeSrc": "8382:61:39", - "nodeType": "YulIdentifier", - "src": "8382:61:39" - }, - "nativeSrc": "8382:75:39", - "nodeType": "YulFunctionCall", - "src": "8382:75:39" - }, - "nativeSrc": "8382:75:39", - "nodeType": "YulExpressionStatement", - "src": "8382:75:39" - }, - { - "nativeSrc": "8466:19:39", - "nodeType": "YulAssignment", - "src": "8466:19:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8477:3:39", - "nodeType": "YulIdentifier", - "src": "8477:3:39" - }, - { - "kind": "number", - "nativeSrc": "8482:2:39", - "nodeType": "YulLiteral", - "src": "8482:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8473:3:39", - "nodeType": "YulIdentifier", - "src": "8473:3:39" - }, - "nativeSrc": "8473:12:39", - "nodeType": "YulFunctionCall", - "src": "8473:12:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "8466:3:39", - "nodeType": "YulIdentifier", - "src": "8466:3:39" - } - ] - }, - { - "nativeSrc": "8495:10:39", - "nodeType": "YulAssignment", - "src": "8495:10:39", - "value": { - "name": "pos", - "nativeSrc": "8502:3:39", - "nodeType": "YulIdentifier", - "src": "8502:3:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "8495:3:39", - "nodeType": "YulIdentifier", - "src": "8495:3:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "8114:397:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "8229:3:39", - "nodeType": "YulTypedName", - "src": "8229:3:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8235:6:39", - "nodeType": "YulTypedName", - "src": "8235:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8243:6:39", - "nodeType": "YulTypedName", - "src": "8243:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "8254:3:39", - "nodeType": "YulTypedName", - "src": "8254:3:39", - "type": "" - } - ], - "src": "8114:397:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146101b15780635ef2c7f0146101cd578063a22cb465146101e9578063cf40882314610205578063e985e9c514610221578063f79fe53814610251576100b4565b80630178b8bf146100b957806302571be3146100e957806306ab59231461011957806314ab90381461014957806316a25cbd146101655780631896f70a14610195575b600080fd5b6100d360048036038101906100ce9190610dda565b610281565b6040516100e09190610e48565b60405180910390f35b61010360048036038101906100fe9190610dda565b6102c0565b6040516101109190610e48565b60405180910390f35b610133600480360381019061012e9190610e8f565b610342565b6040516101409190610ef1565b60405180910390f35b610163600480360381019061015e9190610f4c565b6104c5565b005b61017f600480360381019061017a9190610dda565b610643565b60405161018c9190610f9b565b60405180910390f35b6101af60048036038101906101aa9190610fb6565b610676565b005b6101cb60048036038101906101c69190610fb6565b61080c565b005b6101e760048036038101906101e29190610ff6565b610958565b005b61020360048036038101906101fe91906110a9565b61097a565b005b61021f600480360381019061021a91906110e9565b610a77565b005b61023b60048036038101906102369190611150565b610a92565b604051610248919061119f565b60405180910390f35b61026b60048036038101906102669190610dda565b610b26565b604051610278919061119f565b60405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361033857600091505061033d565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061043f5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61044857600080fd5b6000868660405160200161045d9291906111db565b60405160208183030381529060405280519060200120905061047f8186610b94565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82876040516104b09190610e48565b60405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806105c05750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6105c957600080fd5b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68846040516105f99190610f9b565b60405180910390a28260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806107715750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61077a57600080fd5b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0846040516107aa9190610e48565b60405180910390a28260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806109075750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61091057600080fd5b61091a8484610b94565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2668460405161094a9190610e48565b60405180910390a250505050565b6000610965868686610342565b9050610972818484610bec565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a6b919061119f565b60405180910390a35050565b610a81848461080c565b610a8c848383610bec565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b8060008084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ce1578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051610cd89190610e48565b60405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614610d9a578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051610d919190610f9b565b60405180910390a25b505050565b600080fd5b6000819050919050565b610db781610da4565b8114610dc257600080fd5b50565b600081359050610dd481610dae565b92915050565b600060208284031215610df057610def610d9f565b5b6000610dfe84828501610dc5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e3282610e07565b9050919050565b610e4281610e27565b82525050565b6000602082019050610e5d6000830184610e39565b92915050565b610e6c81610e27565b8114610e7757600080fd5b50565b600081359050610e8981610e63565b92915050565b600080600060608486031215610ea857610ea7610d9f565b5b6000610eb686828701610dc5565b9350506020610ec786828701610dc5565b9250506040610ed886828701610e7a565b9150509250925092565b610eeb81610da4565b82525050565b6000602082019050610f066000830184610ee2565b92915050565b600067ffffffffffffffff82169050919050565b610f2981610f0c565b8114610f3457600080fd5b50565b600081359050610f4681610f20565b92915050565b60008060408385031215610f6357610f62610d9f565b5b6000610f7185828601610dc5565b9250506020610f8285828601610f37565b9150509250929050565b610f9581610f0c565b82525050565b6000602082019050610fb06000830184610f8c565b92915050565b60008060408385031215610fcd57610fcc610d9f565b5b6000610fdb85828601610dc5565b9250506020610fec85828601610e7a565b9150509250929050565b600080600080600060a0868803121561101257611011610d9f565b5b600061102088828901610dc5565b955050602061103188828901610dc5565b945050604061104288828901610e7a565b935050606061105388828901610e7a565b925050608061106488828901610f37565b9150509295509295909350565b60008115159050919050565b61108681611071565b811461109157600080fd5b50565b6000813590506110a38161107d565b92915050565b600080604083850312156110c0576110bf610d9f565b5b60006110ce85828601610e7a565b92505060206110df85828601611094565b9150509250929050565b6000806000806080858703121561110357611102610d9f565b5b600061111187828801610dc5565b945050602061112287828801610e7a565b935050604061113387828801610e7a565b925050606061114487828801610f37565b91505092959194509250565b6000806040838503121561116757611166610d9f565b5b600061117585828601610e7a565b925050602061118685828601610e7a565b9150509250929050565b61119981611071565b82525050565b60006020820190506111b46000830184611190565b92915050565b6000819050919050565b6111d56111d082610da4565b6111ba565b82525050565b60006111e782856111c4565b6020820191506111f782846111c4565b602082019150819050939250505056fea26469706673582212200717631813312b249f96ab75b8093ffda54230dde478068a1618a6d1027d35db64736f6c634300081c0033", - "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 SMOD OR PUSH4 0x1813312B 0x24 SWAP16 SWAP7 0xAB PUSH22 0xB8093FFDA54230DDE478068A1618A6D1027D35DB6473 PUSH16 0x6C634300081C00330000000000000000 ", - "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:39:-;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\":\"0x8e208b44d5dbf22552fe72d79b45c640855b84fbc9ee21f4c3bb4bfe81cbe8db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcf03e1a9386d80ff6b8e31870063424454f69d2626c0efb2c8cf55e69151489\",\"dweb:/ipfs/QmVYgfMSc1ve5JWePqiAGSXEfD76emw3oLsCM1krstmJq5\"]},\"@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. This extension of the {Ownable} contract includes a two-step mechanism to transfer ownership, where the new owner must call {acceptOwnership} in order to replace the old one. This can help prevent common mistakes, such as transfers of ownership to incorrect accounts, or to contracts that are unable to interact with the permission system. 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. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"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\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"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 ERC-165 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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]}},\"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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@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/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"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 ERC-165 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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]}},\"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": "FailedCall", - "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_2897": { - "entryPoint": 542, - "id": 2897, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_revert_3386": { - "entryPoint": 762, - "id": 3386, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setImplementation_2677": { - "entryPoint": 193, - "id": 2677, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@functionDelegateCall_3304": { - "entryPoint": 404, - "id": 3304, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@getAddressSlot_3643": { - "entryPoint": 603, - "id": 3643, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@upgradeToAndCall_2713": { - "entryPoint": 60, - "id": 2713, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@verifyCallResultFromTarget_3344": { - "entryPoint": 613, - "id": 3344, - "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:39", - "nodeType": "YulBlock", - "src": "0:5143:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "934:28:39", - "nodeType": "YulBlock", - "src": "934:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "951:1:39", - "nodeType": "YulLiteral", - "src": "951:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "954:1:39", - "nodeType": "YulLiteral", - "src": "954:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "944:6:39", - "nodeType": "YulIdentifier", - "src": "944:6:39" - }, - "nativeSrc": "944:12:39", - "nodeType": "YulFunctionCall", - "src": "944:12:39" - }, - "nativeSrc": "944:12:39", - "nodeType": "YulExpressionStatement", - "src": "944:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "845:117:39", - "nodeType": "YulFunctionDefinition", - "src": "845:117:39" - }, - { - "body": { - "nativeSrc": "1057:28:39", - "nodeType": "YulBlock", - "src": "1057:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1074:1:39", - "nodeType": "YulLiteral", - "src": "1074:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1077:1:39", - "nodeType": "YulLiteral", - "src": "1077:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1067:6:39", - "nodeType": "YulIdentifier", - "src": "1067:6:39" - }, - "nativeSrc": "1067:12:39", - "nodeType": "YulFunctionCall", - "src": "1067:12:39" - }, - "nativeSrc": "1067:12:39", - "nodeType": "YulExpressionStatement", - "src": "1067:12:39" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "968:117:39", - "nodeType": "YulFunctionDefinition", - "src": "968:117:39" - }, - { - "body": { - "nativeSrc": "1139:54:39", - "nodeType": "YulBlock", - "src": "1139:54:39", - "statements": [ - { - "nativeSrc": "1149:38:39", - "nodeType": "YulAssignment", - "src": "1149:38:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1167:5:39", - "nodeType": "YulIdentifier", - "src": "1167:5:39" - }, - { - "kind": "number", - "nativeSrc": "1174:2:39", - "nodeType": "YulLiteral", - "src": "1174:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1163:3:39", - "nodeType": "YulIdentifier", - "src": "1163:3:39" - }, - "nativeSrc": "1163:14:39", - "nodeType": "YulFunctionCall", - "src": "1163:14:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1183:2:39", - "nodeType": "YulLiteral", - "src": "1183:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "1179:3:39", - "nodeType": "YulIdentifier", - "src": "1179:3:39" - }, - "nativeSrc": "1179:7:39", - "nodeType": "YulFunctionCall", - "src": "1179:7:39" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1159:3:39", - "nodeType": "YulIdentifier", - "src": "1159:3:39" - }, - "nativeSrc": "1159:28:39", - "nodeType": "YulFunctionCall", - "src": "1159:28:39" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "1149:6:39", - "nodeType": "YulIdentifier", - "src": "1149:6:39" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "1091:102:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1122:5:39", - "nodeType": "YulTypedName", - "src": "1122:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "1132:6:39", - "nodeType": "YulTypedName", - "src": "1132:6:39", - "type": "" - } - ], - "src": "1091:102:39" - }, - { - "body": { - "nativeSrc": "1227:152:39", - "nodeType": "YulBlock", - "src": "1227:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1244:1:39", - "nodeType": "YulLiteral", - "src": "1244:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1247:77:39", - "nodeType": "YulLiteral", - "src": "1247:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1237:6:39", - "nodeType": "YulIdentifier", - "src": "1237:6:39" - }, - "nativeSrc": "1237:88:39", - "nodeType": "YulFunctionCall", - "src": "1237:88:39" - }, - "nativeSrc": "1237:88:39", - "nodeType": "YulExpressionStatement", - "src": "1237:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1341:1:39", - "nodeType": "YulLiteral", - "src": "1341:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "1344:4:39", - "nodeType": "YulLiteral", - "src": "1344:4:39", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1334:6:39", - "nodeType": "YulIdentifier", - "src": "1334:6:39" - }, - "nativeSrc": "1334:15:39", - "nodeType": "YulFunctionCall", - "src": "1334:15:39" - }, - "nativeSrc": "1334:15:39", - "nodeType": "YulExpressionStatement", - "src": "1334:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1365:1:39", - "nodeType": "YulLiteral", - "src": "1365:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1368:4:39", - "nodeType": "YulLiteral", - "src": "1368:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1358:6:39", - "nodeType": "YulIdentifier", - "src": "1358:6:39" - }, - "nativeSrc": "1358:15:39", - "nodeType": "YulFunctionCall", - "src": "1358:15:39" - }, - "nativeSrc": "1358:15:39", - "nodeType": "YulExpressionStatement", - "src": "1358:15:39" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "1199:180:39", - "nodeType": "YulFunctionDefinition", - "src": "1199:180:39" - }, - { - "body": { - "nativeSrc": "1428:238:39", - "nodeType": "YulBlock", - "src": "1428:238:39", - "statements": [ - { - "nativeSrc": "1438:58:39", - "nodeType": "YulVariableDeclaration", - "src": "1438:58:39", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1460:6:39", - "nodeType": "YulIdentifier", - "src": "1460:6:39" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "1490:4:39", - "nodeType": "YulIdentifier", - "src": "1490:4:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "1468:21:39", - "nodeType": "YulIdentifier", - "src": "1468:21:39" - }, - "nativeSrc": "1468:27:39", - "nodeType": "YulFunctionCall", - "src": "1468:27:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1456:3:39", - "nodeType": "YulIdentifier", - "src": "1456:3:39" - }, - "nativeSrc": "1456:40:39", - "nodeType": "YulFunctionCall", - "src": "1456:40:39" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "1442:10:39", - "nodeType": "YulTypedName", - "src": "1442:10:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "1607:22:39", - "nodeType": "YulBlock", - "src": "1607:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "1609:16:39", - "nodeType": "YulIdentifier", - "src": "1609:16:39" - }, - "nativeSrc": "1609:18:39", - "nodeType": "YulFunctionCall", - "src": "1609:18:39" - }, - "nativeSrc": "1609:18:39", - "nodeType": "YulExpressionStatement", - "src": "1609:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "1550:10:39", - "nodeType": "YulIdentifier", - "src": "1550:10:39" - }, - { - "kind": "number", - "nativeSrc": "1562:18:39", - "nodeType": "YulLiteral", - "src": "1562:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "1547:2:39", - "nodeType": "YulIdentifier", - "src": "1547:2:39" - }, - "nativeSrc": "1547:34:39", - "nodeType": "YulFunctionCall", - "src": "1547:34:39" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "1586:10:39", - "nodeType": "YulIdentifier", - "src": "1586:10:39" - }, - { - "name": "memPtr", - "nativeSrc": "1598:6:39", - "nodeType": "YulIdentifier", - "src": "1598:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "1583:2:39", - "nodeType": "YulIdentifier", - "src": "1583:2:39" - }, - "nativeSrc": "1583:22:39", - "nodeType": "YulFunctionCall", - "src": "1583:22:39" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "1544:2:39", - "nodeType": "YulIdentifier", - "src": "1544:2:39" - }, - "nativeSrc": "1544:62:39", - "nodeType": "YulFunctionCall", - "src": "1544:62:39" - }, - "nativeSrc": "1541:88:39", - "nodeType": "YulIf", - "src": "1541:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1645:2:39", - "nodeType": "YulLiteral", - "src": "1645:2:39", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "1649:10:39", - "nodeType": "YulIdentifier", - "src": "1649:10:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1638:6:39", - "nodeType": "YulIdentifier", - "src": "1638:6:39" - }, - "nativeSrc": "1638:22:39", - "nodeType": "YulFunctionCall", - "src": "1638:22:39" - }, - "nativeSrc": "1638:22:39", - "nodeType": "YulExpressionStatement", - "src": "1638:22:39" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "1385:281:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "1414:6:39", - "nodeType": "YulTypedName", - "src": "1414:6:39", - "type": "" - }, - { - "name": "size", - "nativeSrc": "1422:4:39", - "nodeType": "YulTypedName", - "src": "1422:4:39", - "type": "" - } - ], - "src": "1385:281:39" - }, - { - "body": { - "nativeSrc": "1713:88:39", - "nodeType": "YulBlock", - "src": "1713:88:39", - "statements": [ - { - "nativeSrc": "1723:30:39", - "nodeType": "YulAssignment", - "src": "1723:30:39", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "1733:18:39", - "nodeType": "YulIdentifier", - "src": "1733:18:39" - }, - "nativeSrc": "1733:20:39", - "nodeType": "YulFunctionCall", - "src": "1733:20:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "1723:6:39", - "nodeType": "YulIdentifier", - "src": "1723:6:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1782:6:39", - "nodeType": "YulIdentifier", - "src": "1782:6:39" - }, - { - "name": "size", - "nativeSrc": "1790:4:39", - "nodeType": "YulIdentifier", - "src": "1790:4:39" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "1762:19:39", - "nodeType": "YulIdentifier", - "src": "1762:19:39" - }, - "nativeSrc": "1762:33:39", - "nodeType": "YulFunctionCall", - "src": "1762:33:39" - }, - "nativeSrc": "1762:33:39", - "nodeType": "YulExpressionStatement", - "src": "1762:33:39" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "1672:129:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "1697:4:39", - "nodeType": "YulTypedName", - "src": "1697:4:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "1706:6:39", - "nodeType": "YulTypedName", - "src": "1706:6:39", - "type": "" - } - ], - "src": "1672:129:39" - }, - { - "body": { - "nativeSrc": "1873:241:39", - "nodeType": "YulBlock", - "src": "1873:241:39", - "statements": [ - { - "body": { - "nativeSrc": "1978:22:39", - "nodeType": "YulBlock", - "src": "1978:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "1980:16:39", - "nodeType": "YulIdentifier", - "src": "1980:16:39" - }, - "nativeSrc": "1980:18:39", - "nodeType": "YulFunctionCall", - "src": "1980:18:39" - }, - "nativeSrc": "1980:18:39", - "nodeType": "YulExpressionStatement", - "src": "1980:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "1950:6:39", - "nodeType": "YulIdentifier", - "src": "1950:6:39" - }, - { - "kind": "number", - "nativeSrc": "1958:18:39", - "nodeType": "YulLiteral", - "src": "1958:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "1947:2:39", - "nodeType": "YulIdentifier", - "src": "1947:2:39" - }, - "nativeSrc": "1947:30:39", - "nodeType": "YulFunctionCall", - "src": "1947:30:39" - }, - "nativeSrc": "1944:56:39", - "nodeType": "YulIf", - "src": "1944:56:39" - }, - { - "nativeSrc": "2010:37:39", - "nodeType": "YulAssignment", - "src": "2010:37:39", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2040:6:39", - "nodeType": "YulIdentifier", - "src": "2040:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2018:21:39", - "nodeType": "YulIdentifier", - "src": "2018:21:39" - }, - "nativeSrc": "2018:29:39", - "nodeType": "YulFunctionCall", - "src": "2018:29:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2010:4:39", - "nodeType": "YulIdentifier", - "src": "2010:4:39" - } - ] - }, - { - "nativeSrc": "2084:23:39", - "nodeType": "YulAssignment", - "src": "2084:23:39", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "2096:4:39", - "nodeType": "YulIdentifier", - "src": "2096:4:39" - }, - { - "kind": "number", - "nativeSrc": "2102:4:39", - "nodeType": "YulLiteral", - "src": "2102:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2092:3:39", - "nodeType": "YulIdentifier", - "src": "2092:3:39" - }, - "nativeSrc": "2092:15:39", - "nodeType": "YulFunctionCall", - "src": "2092:15:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2084:4:39", - "nodeType": "YulIdentifier", - "src": "2084:4:39" - } - ] - } - ] - }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "1807:307:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "1857:6:39", - "nodeType": "YulTypedName", - "src": "1857:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "1868:4:39", - "nodeType": "YulTypedName", - "src": "1868:4:39", - "type": "" - } - ], - "src": "1807:307:39" - }, - { - "body": { - "nativeSrc": "2182:186:39", - "nodeType": "YulBlock", - "src": "2182:186:39", - "statements": [ - { - "nativeSrc": "2193:10:39", - "nodeType": "YulVariableDeclaration", - "src": "2193:10:39", - "value": { - "kind": "number", - "nativeSrc": "2202:1:39", - "nodeType": "YulLiteral", - "src": "2202:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "2197:1:39", - "nodeType": "YulTypedName", - "src": "2197:1:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2262:63:39", - "nodeType": "YulBlock", - "src": "2262:63:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2287:3:39", - "nodeType": "YulIdentifier", - "src": "2287:3:39" - }, - { - "name": "i", - "nativeSrc": "2292:1:39", - "nodeType": "YulIdentifier", - "src": "2292:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2283:3:39", - "nodeType": "YulIdentifier", - "src": "2283:3:39" - }, - "nativeSrc": "2283:11:39", - "nodeType": "YulFunctionCall", - "src": "2283:11:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "2306:3:39", - "nodeType": "YulIdentifier", - "src": "2306:3:39" - }, - { - "name": "i", - "nativeSrc": "2311:1:39", - "nodeType": "YulIdentifier", - "src": "2311:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2302:3:39", - "nodeType": "YulIdentifier", - "src": "2302:3:39" - }, - "nativeSrc": "2302:11:39", - "nodeType": "YulFunctionCall", - "src": "2302:11:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "2296:5:39", - "nodeType": "YulIdentifier", - "src": "2296:5:39" - }, - "nativeSrc": "2296:18:39", - "nodeType": "YulFunctionCall", - "src": "2296:18:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2276:6:39", - "nodeType": "YulIdentifier", - "src": "2276:6:39" - }, - "nativeSrc": "2276:39:39", - "nodeType": "YulFunctionCall", - "src": "2276:39:39" - }, - "nativeSrc": "2276:39:39", - "nodeType": "YulExpressionStatement", - "src": "2276:39:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "2223:1:39", - "nodeType": "YulIdentifier", - "src": "2223:1:39" - }, - { - "name": "length", - "nativeSrc": "2226:6:39", - "nodeType": "YulIdentifier", - "src": "2226:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "2220:2:39", - "nodeType": "YulIdentifier", - "src": "2220:2:39" - }, - "nativeSrc": "2220:13:39", - "nodeType": "YulFunctionCall", - "src": "2220:13:39" - }, - "nativeSrc": "2212:113:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "2234:19:39", - "nodeType": "YulBlock", - "src": "2234:19:39", - "statements": [ - { - "nativeSrc": "2236:15:39", - "nodeType": "YulAssignment", - "src": "2236:15:39", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "2245:1:39", - "nodeType": "YulIdentifier", - "src": "2245:1:39" - }, - { - "kind": "number", - "nativeSrc": "2248:2:39", - "nodeType": "YulLiteral", - "src": "2248:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2241:3:39", - "nodeType": "YulIdentifier", - "src": "2241:3:39" - }, - "nativeSrc": "2241:10:39", - "nodeType": "YulFunctionCall", - "src": "2241:10:39" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "2236:1:39", - "nodeType": "YulIdentifier", - "src": "2236:1:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "2216:3:39", - "nodeType": "YulBlock", - "src": "2216:3:39", - "statements": [] - }, - "src": "2212:113:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2345:3:39", - "nodeType": "YulIdentifier", - "src": "2345:3:39" - }, - { - "name": "length", - "nativeSrc": "2350:6:39", - "nodeType": "YulIdentifier", - "src": "2350:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2341:3:39", - "nodeType": "YulIdentifier", - "src": "2341:3:39" - }, - "nativeSrc": "2341:16:39", - "nodeType": "YulFunctionCall", - "src": "2341:16:39" - }, - { - "kind": "number", - "nativeSrc": "2359:1:39", - "nodeType": "YulLiteral", - "src": "2359:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2334:6:39", - "nodeType": "YulIdentifier", - "src": "2334:6:39" - }, - "nativeSrc": "2334:27:39", - "nodeType": "YulFunctionCall", - "src": "2334:27:39" - }, - "nativeSrc": "2334:27:39", - "nodeType": "YulExpressionStatement", - "src": "2334:27:39" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "2120:248:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "2164:3:39", - "nodeType": "YulTypedName", - "src": "2164:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "2169:3:39", - "nodeType": "YulTypedName", - "src": "2169:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2174:6:39", - "nodeType": "YulTypedName", - "src": "2174:6:39", - "type": "" - } - ], - "src": "2120:248:39" - }, - { - "body": { - "nativeSrc": "2468:338:39", - "nodeType": "YulBlock", - "src": "2468:338:39", - "statements": [ - { - "nativeSrc": "2478:74:39", - "nodeType": "YulAssignment", - "src": "2478:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "2544:6:39", - "nodeType": "YulIdentifier", - "src": "2544:6:39" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "2503:40:39", - "nodeType": "YulIdentifier", - "src": "2503:40:39" - }, - "nativeSrc": "2503:48:39", - "nodeType": "YulFunctionCall", - "src": "2503:48:39" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "2487:15:39", - "nodeType": "YulIdentifier", - "src": "2487:15:39" - }, - "nativeSrc": "2487:65:39", - "nodeType": "YulFunctionCall", - "src": "2487:65:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "2478:5:39", - "nodeType": "YulIdentifier", - "src": "2478:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2568:5:39", - "nodeType": "YulIdentifier", - "src": "2568:5:39" - }, - { - "name": "length", - "nativeSrc": "2575:6:39", - "nodeType": "YulIdentifier", - "src": "2575:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2561:6:39", - "nodeType": "YulIdentifier", - "src": "2561:6:39" - }, - "nativeSrc": "2561:21:39", - "nodeType": "YulFunctionCall", - "src": "2561:21:39" - }, - "nativeSrc": "2561:21:39", - "nodeType": "YulExpressionStatement", - "src": "2561:21:39" - }, - { - "nativeSrc": "2591:27:39", - "nodeType": "YulVariableDeclaration", - "src": "2591:27:39", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2606:5:39", - "nodeType": "YulIdentifier", - "src": "2606:5:39" - }, - { - "kind": "number", - "nativeSrc": "2613:4:39", - "nodeType": "YulLiteral", - "src": "2613:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2602:3:39", - "nodeType": "YulIdentifier", - "src": "2602:3:39" - }, - "nativeSrc": "2602:16:39", - "nodeType": "YulFunctionCall", - "src": "2602:16:39" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "2595:3:39", - "nodeType": "YulTypedName", - "src": "2595:3:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2656:83:39", - "nodeType": "YulBlock", - "src": "2656:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "2658:77:39", - "nodeType": "YulIdentifier", - "src": "2658:77:39" - }, - "nativeSrc": "2658:79:39", - "nodeType": "YulFunctionCall", - "src": "2658:79:39" - }, - "nativeSrc": "2658:79:39", - "nodeType": "YulExpressionStatement", - "src": "2658:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "2637:3:39", - "nodeType": "YulIdentifier", - "src": "2637:3:39" - }, - { - "name": "length", - "nativeSrc": "2642:6:39", - "nodeType": "YulIdentifier", - "src": "2642:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2633:3:39", - "nodeType": "YulIdentifier", - "src": "2633:3:39" - }, - "nativeSrc": "2633:16:39", - "nodeType": "YulFunctionCall", - "src": "2633:16:39" - }, - { - "name": "end", - "nativeSrc": "2651:3:39", - "nodeType": "YulIdentifier", - "src": "2651:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2630:2:39", - "nodeType": "YulIdentifier", - "src": "2630:2:39" - }, - "nativeSrc": "2630:25:39", - "nodeType": "YulFunctionCall", - "src": "2630:25:39" - }, - "nativeSrc": "2627:112:39", - "nodeType": "YulIf", - "src": "2627:112:39" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "2783:3:39", - "nodeType": "YulIdentifier", - "src": "2783:3:39" - }, - { - "name": "dst", - "nativeSrc": "2788:3:39", - "nodeType": "YulIdentifier", - "src": "2788:3:39" - }, - { - "name": "length", - "nativeSrc": "2793:6:39", - "nodeType": "YulIdentifier", - "src": "2793:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "2748:34:39", - "nodeType": "YulIdentifier", - "src": "2748:34:39" - }, - "nativeSrc": "2748:52:39", - "nodeType": "YulFunctionCall", - "src": "2748:52:39" - }, - "nativeSrc": "2748:52:39", - "nodeType": "YulExpressionStatement", - "src": "2748:52:39" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "2374:432:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "2441:3:39", - "nodeType": "YulTypedName", - "src": "2441:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2446:6:39", - "nodeType": "YulTypedName", - "src": "2446:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2454:3:39", - "nodeType": "YulTypedName", - "src": "2454:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "2462:5:39", - "nodeType": "YulTypedName", - "src": "2462:5:39", - "type": "" - } - ], - "src": "2374:432:39" - }, - { - "body": { - "nativeSrc": "2897:281:39", - "nodeType": "YulBlock", - "src": "2897:281:39", - "statements": [ - { - "body": { - "nativeSrc": "2946:83:39", - "nodeType": "YulBlock", - "src": "2946:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "2948:77:39", - "nodeType": "YulIdentifier", - "src": "2948:77:39" - }, - "nativeSrc": "2948:79:39", - "nodeType": "YulFunctionCall", - "src": "2948:79:39" - }, - "nativeSrc": "2948:79:39", - "nodeType": "YulExpressionStatement", - "src": "2948:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2925:6:39", - "nodeType": "YulIdentifier", - "src": "2925:6:39" - }, - { - "kind": "number", - "nativeSrc": "2933:4:39", - "nodeType": "YulLiteral", - "src": "2933:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2921:3:39", - "nodeType": "YulIdentifier", - "src": "2921:3:39" - }, - "nativeSrc": "2921:17:39", - "nodeType": "YulFunctionCall", - "src": "2921:17:39" - }, - { - "name": "end", - "nativeSrc": "2940:3:39", - "nodeType": "YulIdentifier", - "src": "2940:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2917:3:39", - "nodeType": "YulIdentifier", - "src": "2917:3:39" - }, - "nativeSrc": "2917:27:39", - "nodeType": "YulFunctionCall", - "src": "2917:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2910:6:39", - "nodeType": "YulIdentifier", - "src": "2910:6:39" - }, - "nativeSrc": "2910:35:39", - "nodeType": "YulFunctionCall", - "src": "2910:35:39" - }, - "nativeSrc": "2907:122:39", - "nodeType": "YulIf", - "src": "2907:122:39" - }, - { - "nativeSrc": "3038:27:39", - "nodeType": "YulVariableDeclaration", - "src": "3038:27:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3058:6:39", - "nodeType": "YulIdentifier", - "src": "3058:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3052:5:39", - "nodeType": "YulIdentifier", - "src": "3052:5:39" - }, - "nativeSrc": "3052:13:39", - "nodeType": "YulFunctionCall", - "src": "3052:13:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "3042:6:39", - "nodeType": "YulTypedName", - "src": "3042:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3074:98:39", - "nodeType": "YulAssignment", - "src": "3074:98:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3145:6:39", - "nodeType": "YulIdentifier", - "src": "3145:6:39" - }, - { - "kind": "number", - "nativeSrc": "3153:4:39", - "nodeType": "YulLiteral", - "src": "3153:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3141:3:39", - "nodeType": "YulIdentifier", - "src": "3141:3:39" - }, - "nativeSrc": "3141:17:39", - "nodeType": "YulFunctionCall", - "src": "3141:17:39" - }, - { - "name": "length", - "nativeSrc": "3160:6:39", - "nodeType": "YulIdentifier", - "src": "3160:6:39" - }, - { - "name": "end", - "nativeSrc": "3168:3:39", - "nodeType": "YulIdentifier", - "src": "3168:3:39" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "3083:57:39", - "nodeType": "YulIdentifier", - "src": "3083:57:39" - }, - "nativeSrc": "3083:89:39", - "nodeType": "YulFunctionCall", - "src": "3083:89:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3074:5:39", - "nodeType": "YulIdentifier", - "src": "3074:5:39" - } - ] - } - ] - }, - "name": "abi_decode_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "2825:353:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2875:6:39", - "nodeType": "YulTypedName", - "src": "2875:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2883:3:39", - "nodeType": "YulTypedName", - "src": "2883:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "2891:5:39", - "nodeType": "YulTypedName", - "src": "2891:5:39", - "type": "" - } - ], - "src": "2825:353:39" - }, - { - "body": { - "nativeSrc": "3287:575:39", - "nodeType": "YulBlock", - "src": "3287:575:39", - "statements": [ - { - "body": { - "nativeSrc": "3333:83:39", - "nodeType": "YulBlock", - "src": "3333:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3335:77:39", - "nodeType": "YulIdentifier", - "src": "3335:77:39" - }, - "nativeSrc": "3335:79:39", - "nodeType": "YulFunctionCall", - "src": "3335:79:39" - }, - "nativeSrc": "3335:79:39", - "nodeType": "YulExpressionStatement", - "src": "3335:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3308:7:39", - "nodeType": "YulIdentifier", - "src": "3308:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3317:9:39", - "nodeType": "YulIdentifier", - "src": "3317:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3304:3:39", - "nodeType": "YulIdentifier", - "src": "3304:3:39" - }, - "nativeSrc": "3304:23:39", - "nodeType": "YulFunctionCall", - "src": "3304:23:39" - }, - { - "kind": "number", - "nativeSrc": "3329:2:39", - "nodeType": "YulLiteral", - "src": "3329:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3300:3:39", - "nodeType": "YulIdentifier", - "src": "3300:3:39" - }, - "nativeSrc": "3300:32:39", - "nodeType": "YulFunctionCall", - "src": "3300:32:39" - }, - "nativeSrc": "3297:119:39", - "nodeType": "YulIf", - "src": "3297:119:39" - }, - { - "nativeSrc": "3426:128:39", - "nodeType": "YulBlock", - "src": "3426:128:39", - "statements": [ - { - "nativeSrc": "3441:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3441:15:39", - "value": { - "kind": "number", - "nativeSrc": "3455:1:39", - "nodeType": "YulLiteral", - "src": "3455:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3445:6:39", - "nodeType": "YulTypedName", - "src": "3445:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3470:74:39", - "nodeType": "YulAssignment", - "src": "3470:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3516:9:39", - "nodeType": "YulIdentifier", - "src": "3516:9:39" - }, - { - "name": "offset", - "nativeSrc": "3527:6:39", - "nodeType": "YulIdentifier", - "src": "3527:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3512:3:39", - "nodeType": "YulIdentifier", - "src": "3512:3:39" - }, - "nativeSrc": "3512:22:39", - "nodeType": "YulFunctionCall", - "src": "3512:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3536:7:39", - "nodeType": "YulIdentifier", - "src": "3536:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "3480:31:39", - "nodeType": "YulIdentifier", - "src": "3480:31:39" - }, - "nativeSrc": "3480:64:39", - "nodeType": "YulFunctionCall", - "src": "3480:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3470:6:39", - "nodeType": "YulIdentifier", - "src": "3470:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3564:291:39", - "nodeType": "YulBlock", - "src": "3564:291:39", - "statements": [ - { - "nativeSrc": "3579:39:39", - "nodeType": "YulVariableDeclaration", - "src": "3579:39:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3603:9:39", - "nodeType": "YulIdentifier", - "src": "3603:9:39" - }, - { - "kind": "number", - "nativeSrc": "3614:2:39", - "nodeType": "YulLiteral", - "src": "3614:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3599:3:39", - "nodeType": "YulIdentifier", - "src": "3599:3:39" - }, - "nativeSrc": "3599:18:39", - "nodeType": "YulFunctionCall", - "src": "3599:18:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3593:5:39", - "nodeType": "YulIdentifier", - "src": "3593:5:39" - }, - "nativeSrc": "3593:25:39", - "nodeType": "YulFunctionCall", - "src": "3593:25:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3583:6:39", - "nodeType": "YulTypedName", - "src": "3583:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3665:83:39", - "nodeType": "YulBlock", - "src": "3665:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "3667:77:39", - "nodeType": "YulIdentifier", - "src": "3667:77:39" - }, - "nativeSrc": "3667:79:39", - "nodeType": "YulFunctionCall", - "src": "3667:79:39" - }, - "nativeSrc": "3667:79:39", - "nodeType": "YulExpressionStatement", - "src": "3667:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3637:6:39", - "nodeType": "YulIdentifier", - "src": "3637:6:39" - }, - { - "kind": "number", - "nativeSrc": "3645:18:39", - "nodeType": "YulLiteral", - "src": "3645:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3634:2:39", - "nodeType": "YulIdentifier", - "src": "3634:2:39" - }, - "nativeSrc": "3634:30:39", - "nodeType": "YulFunctionCall", - "src": "3634:30:39" - }, - "nativeSrc": "3631:117:39", - "nodeType": "YulIf", - "src": "3631:117:39" - }, - { - "nativeSrc": "3762:83:39", - "nodeType": "YulAssignment", - "src": "3762:83:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3817:9:39", - "nodeType": "YulIdentifier", - "src": "3817:9:39" - }, - { - "name": "offset", - "nativeSrc": "3828:6:39", - "nodeType": "YulIdentifier", - "src": "3828:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3813:3:39", - "nodeType": "YulIdentifier", - "src": "3813:3:39" - }, - "nativeSrc": "3813:22:39", - "nodeType": "YulFunctionCall", - "src": "3813:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3837:7:39", - "nodeType": "YulIdentifier", - "src": "3837:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "3772:40:39", - "nodeType": "YulIdentifier", - "src": "3772:40:39" - }, - "nativeSrc": "3772:73:39", - "nodeType": "YulFunctionCall", - "src": "3772:73:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3762:6:39", - "nodeType": "YulIdentifier", - "src": "3762:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory", - "nativeSrc": "3184:678:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3249:9:39", - "nodeType": "YulTypedName", - "src": "3249:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3260:7:39", - "nodeType": "YulTypedName", - "src": "3260:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3272:6:39", - "nodeType": "YulTypedName", - "src": "3272:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3280:6:39", - "nodeType": "YulTypedName", - "src": "3280:6:39", - "type": "" - } - ], - "src": "3184:678:39" - }, - { - "body": { - "nativeSrc": "3933:53:39", - "nodeType": "YulBlock", - "src": "3933:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3950:3:39", - "nodeType": "YulIdentifier", - "src": "3950:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3973:5:39", - "nodeType": "YulIdentifier", - "src": "3973:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "3955:17:39", - "nodeType": "YulIdentifier", - "src": "3955:17:39" - }, - "nativeSrc": "3955:24:39", - "nodeType": "YulFunctionCall", - "src": "3955:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3943:6:39", - "nodeType": "YulIdentifier", - "src": "3943:6:39" - }, - "nativeSrc": "3943:37:39", - "nodeType": "YulFunctionCall", - "src": "3943:37:39" - }, - "nativeSrc": "3943:37:39", - "nodeType": "YulExpressionStatement", - "src": "3943:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "3868:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3921:5:39", - "nodeType": "YulTypedName", - "src": "3921:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "3928:3:39", - "nodeType": "YulTypedName", - "src": "3928:3:39", - "type": "" - } - ], - "src": "3868:118:39" - }, - { - "body": { - "nativeSrc": "4090:124:39", - "nodeType": "YulBlock", - "src": "4090:124:39", - "statements": [ - { - "nativeSrc": "4100:26:39", - "nodeType": "YulAssignment", - "src": "4100:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4112:9:39", - "nodeType": "YulIdentifier", - "src": "4112:9:39" - }, - { - "kind": "number", - "nativeSrc": "4123:2:39", - "nodeType": "YulLiteral", - "src": "4123:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4108:3:39", - "nodeType": "YulIdentifier", - "src": "4108:3:39" - }, - "nativeSrc": "4108:18:39", - "nodeType": "YulFunctionCall", - "src": "4108:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4100:4:39", - "nodeType": "YulIdentifier", - "src": "4100:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4180:6:39", - "nodeType": "YulIdentifier", - "src": "4180:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4193:9:39", - "nodeType": "YulIdentifier", - "src": "4193:9:39" - }, - { - "kind": "number", - "nativeSrc": "4204:1:39", - "nodeType": "YulLiteral", - "src": "4204:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4189:3:39", - "nodeType": "YulIdentifier", - "src": "4189:3:39" - }, - "nativeSrc": "4189:17:39", - "nodeType": "YulFunctionCall", - "src": "4189:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4136:43:39", - "nodeType": "YulIdentifier", - "src": "4136:43:39" - }, - "nativeSrc": "4136:71:39", - "nodeType": "YulFunctionCall", - "src": "4136:71:39" - }, - "nativeSrc": "4136:71:39", - "nodeType": "YulExpressionStatement", - "src": "4136:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "3992:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4062:9:39", - "nodeType": "YulTypedName", - "src": "4062:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4074:6:39", - "nodeType": "YulTypedName", - "src": "4074:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4085:4:39", - "nodeType": "YulTypedName", - "src": "4085:4:39", - "type": "" - } - ], - "src": "3992:222:39" - }, - { - "body": { - "nativeSrc": "4278:40:39", - "nodeType": "YulBlock", - "src": "4278:40:39", - "statements": [ - { - "nativeSrc": "4289:22:39", - "nodeType": "YulAssignment", - "src": "4289:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4305:5:39", - "nodeType": "YulIdentifier", - "src": "4305:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4299:5:39", - "nodeType": "YulIdentifier", - "src": "4299:5:39" - }, - "nativeSrc": "4299:12:39", - "nodeType": "YulFunctionCall", - "src": "4299:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "4289:6:39", - "nodeType": "YulIdentifier", - "src": "4289:6:39" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "4220:98:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4261:5:39", - "nodeType": "YulTypedName", - "src": "4261:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "4271:6:39", - "nodeType": "YulTypedName", - "src": "4271:6:39", - "type": "" - } - ], - "src": "4220:98:39" - }, - { - "body": { - "nativeSrc": "4437:34:39", - "nodeType": "YulBlock", - "src": "4437:34:39", - "statements": [ - { - "nativeSrc": "4447:18:39", - "nodeType": "YulAssignment", - "src": "4447:18:39", - "value": { - "name": "pos", - "nativeSrc": "4462:3:39", - "nodeType": "YulIdentifier", - "src": "4462:3:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "4447:11:39", - "nodeType": "YulIdentifier", - "src": "4447:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "4324:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "4409:3:39", - "nodeType": "YulTypedName", - "src": "4409:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "4414:6:39", - "nodeType": "YulTypedName", - "src": "4414:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "4425:11:39", - "nodeType": "YulTypedName", - "src": "4425:11:39", - "type": "" - } - ], - "src": "4324:147:39" - }, - { - "body": { - "nativeSrc": "4585:278:39", - "nodeType": "YulBlock", - "src": "4585:278:39", - "statements": [ - { - "nativeSrc": "4595:52:39", - "nodeType": "YulVariableDeclaration", - "src": "4595:52:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4641:5:39", - "nodeType": "YulIdentifier", - "src": "4641:5:39" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "4609:31:39", - "nodeType": "YulIdentifier", - "src": "4609:31:39" - }, - "nativeSrc": "4609:38:39", - "nodeType": "YulFunctionCall", - "src": "4609:38:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "4599:6:39", - "nodeType": "YulTypedName", - "src": "4599:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4656:95:39", - "nodeType": "YulAssignment", - "src": "4656:95:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4739:3:39", - "nodeType": "YulIdentifier", - "src": "4739:3:39" - }, - { - "name": "length", - "nativeSrc": "4744:6:39", - "nodeType": "YulIdentifier", - "src": "4744:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "4663:75:39", - "nodeType": "YulIdentifier", - "src": "4663:75:39" - }, - "nativeSrc": "4663:88:39", - "nodeType": "YulFunctionCall", - "src": "4663:88:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "4656:3:39", - "nodeType": "YulIdentifier", - "src": "4656:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4799:5:39", - "nodeType": "YulIdentifier", - "src": "4799:5:39" - }, - { - "kind": "number", - "nativeSrc": "4806:4:39", - "nodeType": "YulLiteral", - "src": "4806:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4795:3:39", - "nodeType": "YulIdentifier", - "src": "4795:3:39" - }, - "nativeSrc": "4795:16:39", - "nodeType": "YulFunctionCall", - "src": "4795:16:39" - }, - { - "name": "pos", - "nativeSrc": "4813:3:39", - "nodeType": "YulIdentifier", - "src": "4813:3:39" - }, - { - "name": "length", - "nativeSrc": "4818:6:39", - "nodeType": "YulIdentifier", - "src": "4818:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "4760:34:39", - "nodeType": "YulIdentifier", - "src": "4760:34:39" - }, - "nativeSrc": "4760:65:39", - "nodeType": "YulFunctionCall", - "src": "4760:65:39" - }, - "nativeSrc": "4760:65:39", - "nodeType": "YulExpressionStatement", - "src": "4760:65:39" - }, - { - "nativeSrc": "4834:23:39", - "nodeType": "YulAssignment", - "src": "4834:23:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4845:3:39", - "nodeType": "YulIdentifier", - "src": "4845:3:39" - }, - { - "name": "length", - "nativeSrc": "4850:6:39", - "nodeType": "YulIdentifier", - "src": "4850:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4841:3:39", - "nodeType": "YulIdentifier", - "src": "4841:3:39" - }, - "nativeSrc": "4841:16:39", - "nodeType": "YulFunctionCall", - "src": "4841:16:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "4834:3:39", - "nodeType": "YulIdentifier", - "src": "4834:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "4477:386:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4566:5:39", - "nodeType": "YulTypedName", - "src": "4566:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4573:3:39", - "nodeType": "YulTypedName", - "src": "4573:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "4581:3:39", - "nodeType": "YulTypedName", - "src": "4581:3:39", - "type": "" - } - ], - "src": "4477:386:39" - }, - { - "body": { - "nativeSrc": "5003:137:39", - "nodeType": "YulBlock", - "src": "5003:137:39", - "statements": [ - { - "nativeSrc": "5014:100:39", - "nodeType": "YulAssignment", - "src": "5014:100:39", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5101:6:39", - "nodeType": "YulIdentifier", - "src": "5101:6:39" - }, - { - "name": "pos", - "nativeSrc": "5110:3:39", - "nodeType": "YulIdentifier", - "src": "5110:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5021:79:39", - "nodeType": "YulIdentifier", - "src": "5021:79:39" - }, - "nativeSrc": "5021:93:39", - "nodeType": "YulFunctionCall", - "src": "5021:93:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5014:3:39", - "nodeType": "YulIdentifier", - "src": "5014:3:39" - } - ] - }, - { - "nativeSrc": "5124:10:39", - "nodeType": "YulAssignment", - "src": "5124:10:39", - "value": { - "name": "pos", - "nativeSrc": "5131:3:39", - "nodeType": "YulIdentifier", - "src": "5131:3:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5124:3:39", - "nodeType": "YulIdentifier", - "src": "5124:3:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "4869:271:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "4982:3:39", - "nodeType": "YulTypedName", - "src": "4982:3:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4988:6:39", - "nodeType": "YulTypedName", - "src": "4988:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "4999:3:39", - "nodeType": "YulTypedName", - "src": "4999:3:39", - "type": "" - } - ], - "src": "4869:271:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60806040526040516106e53803806106e583398181016040528101906100259190610512565b610035828261003c60201b60201c565b50506105f6565b61004b826100c160201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156100ae576100a8828261019460201b60201c565b506100bd565b6100bc61021e60201b60201c565b5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361011d57806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610114919061057d565b60405180910390fd5b806101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61025b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516101be91906105df565b600060405180830381855af49150503d80600081146101f9576040519150601f19603f3d011682016040523d82523d6000602084013e6101fe565b606091505b509150915061021485838361026560201b60201c565b9250505092915050565b6000341115610259576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000819050919050565b6060826102805761027b826102fa60201b60201c565b6102f2565b600082511480156102a8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b156102ea57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016102e1919061057d565b60405180910390fd5b8190506102f3565b5b9392505050565b60008151111561030d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061037e82610353565b9050919050565b61038e81610373565b811461039957600080fd5b50565b6000815190506103ab81610385565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610404826103bb565b810181811067ffffffffffffffff82111715610423576104226103cc565b5b80604052505050565b600061043661033f565b905061044282826103fb565b919050565b600067ffffffffffffffff821115610462576104616103cc565b5b61046b826103bb565b9050602081019050919050565b60005b8381101561049657808201518184015260208101905061047b565b60008484015250505050565b60006104b56104b084610447565b61042c565b9050828152602081018484840111156104d1576104d06103b6565b5b6104dc848285610478565b509392505050565b600082601f8301126104f9576104f86103b1565b5b81516105098482602086016104a2565b91505092915050565b6000806040838503121561052957610528610349565b5b60006105378582860161039c565b925050602083015167ffffffffffffffff8111156105585761055761034e565b5b610564858286016104e4565b9150509250929050565b61057781610373565b82525050565b6000602082019050610592600083018461056e565b92915050565b600081519050919050565b600081905092915050565b60006105b982610598565b6105c381856105a3565b93506105d3818560208601610478565b80840191505092915050565b60006105eb82846105ae565b915081905092915050565b60e1806106046000396000f3fe6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220b4170c194e9d988c0e9644ddcd851116489bae39bfda2a51cd5b4761efc5b54564736f6c634300081c0033", - "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 0xD6BDA27500000000000000000000000000000000000000000000000000000000 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 0xB4 OR 0xC NOT 0x4E SWAP14 SWAP9 DUP13 0xE SWAP7 PREVRANDAO 0xDD 0xCD DUP6 GT AND BASEFEE SWAP12 0xAE CODECOPY 0xBF 0xDA 0x2A MLOAD 0xCD JUMPDEST SELFBALANCE PUSH2 0xEFC5 0xB5 GASLIMIT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "600:1117:13:-:0;;;1081:133;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1155:52;1185:14;1201:5;1155:29;;;:52;;:::i;:::-;1081:133;;600:1117;;2264:344:14;2355:37;2374:17;2355:18;;;:37;;:::i;:::-;2425:17;2407:36;;;;;;;;;;;;2472:1;2458:4;:11;:15;2454:148;;;2489:53;2518:17;2537:4;2489:28;;;:53;;:::i;:::-;;2454:148;;;2573:18;:16;;;:18;;:::i;:::-;2454:148;2264:344;;:::o;1671:281::-;1781:1;1748:17;:29;;;:34;1744:119;;1834:17;1805:47;;;;;;;;;;;:::i;:::-;;;;;;;;1744:119;1928:17;1872:47;811:66;1899:19;;1872:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;1671:281;:::o;3900:253:19:-;3983:12;4008;4022:23;4049:6;:19;;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;;;:55;;:::i;:::-;4084:62;;;;3900:253;;;;:::o;6113:122:14:-;6175:1;6163:9;:13;6159:70;;;6199:19;;;;;;;;;;;;;;6159:70;6113:122::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::o;4421:582:19:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;;;:19;;:::i;:::-;4589:408;;;4862:1;4841:10;:17;:22;:49;;;;;4889:1;4867:6;:18;;;:23;4841:49;4837:119;;;4934:6;4917:24;;;;;;;;;;;:::i;:::-;;;;;;;;4837:119;4976:10;4969:17;;;;4589:408;4421:582;;;;;;:::o;5543:487::-;5694:1;5674:10;:17;:21;5670:354;;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;;;;;;;;;;;;;7:75:39;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;600:1117:13:-;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_2933": { - "entryPoint": null, - "id": 2933, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_delegate_2909": { - "entryPoint": 39, - "id": 2909, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_fallback_2925": { - "entryPoint": 12, - "id": 2925, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_implementation_2603": { - "entryPoint": 26, - "id": 2603, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@getAddressSlot_3643": { - "entryPoint": 161, - "id": 3643, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getImplementation_2650": { - "entryPoint": 76, - "id": 2650, - "parameterSlots": 0, - "returnSlots": 1 - } - }, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220b4170c194e9d988c0e9644ddcd851116489bae39bfda2a51cd5b4761efc5b54564736f6c634300081c0033", - "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 0xB4 OR 0xC NOT 0x4E SWAP14 SWAP9 DUP13 0xE SWAP7 PREVRANDAO 0xDD 0xCD DUP6 GT AND BASEFEE SWAP12 0xAE CODECOPY 0xBF 0xDA 0x2A MLOAD 0xCD JUMPDEST SELFBALANCE PUSH2 0xEFC5 0xB5 GASLIMIT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "600:1117:13:-:0;;;2649:11:15;:9;:11::i;:::-;600:1117:13;2323:83:15;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;1583:132:13:-;1650:7;1676:32;:30;:32::i;:::-;1669:39;;1583: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;1441:138:14;1493:7;1519:47;811:66;1546:19;;1519:26;:47::i;:::-;:53;;;;;;;;;;;;1512:60;;1441:138;:::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::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\":\"FailedCall\",\"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[ERC-1967], 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.\"}],\"FailedCall()\":[{\"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/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@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\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"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" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122072012c67f02e4b595b28b6db1568ddc9806e945d2449c170c3d7ced5c3e8762464736f6c634300081c0033", - "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 PUSH19 0x12C67F02E4B595B28B6DB1568DDC9806E945D 0x24 BLOBHASH 0xC1 PUSH17 0xC3D7CED5C3E8762464736F6C634300081C STOP CALLER ", - "sourceMap": "496:5741:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122072012c67f02e4b595b28b6db1568ddc9806e945d2449c170c3d7ced5c3e8762464736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH19 0x12C67F02E4B595B28B6DB1568DDC9806E945D 0x24 BLOBHASH 0xC1 PUSH17 0xC3D7CED5C3E8762464736F6C634300081C STOP CALLER ", - "sourceMap": "496:5741: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\"}],\"devdoc\":{\"details\":\"This library provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] 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.\"}]},\"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/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"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 - }, - "@_2967": { - "entryPoint": null, - "id": 2967, - "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:39", - "nodeType": "YulBlock", - "src": "0:1551:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "922:274:39", - "nodeType": "YulBlock", - "src": "922:274:39", - "statements": [ - { - "body": { - "nativeSrc": "968:83:39", - "nodeType": "YulBlock", - "src": "968:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "970:77:39", - "nodeType": "YulIdentifier", - "src": "970:77:39" - }, - "nativeSrc": "970:79:39", - "nodeType": "YulFunctionCall", - "src": "970:79:39" - }, - "nativeSrc": "970:79:39", - "nodeType": "YulExpressionStatement", - "src": "970:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "943:7:39", - "nodeType": "YulIdentifier", - "src": "943:7:39" - }, - { - "name": "headStart", - "nativeSrc": "952:9:39", - "nodeType": "YulIdentifier", - "src": "952:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "939:3:39", - "nodeType": "YulIdentifier", - "src": "939:3:39" - }, - "nativeSrc": "939:23:39", - "nodeType": "YulFunctionCall", - "src": "939:23:39" - }, - { - "kind": "number", - "nativeSrc": "964:2:39", - "nodeType": "YulLiteral", - "src": "964:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "935:3:39", - "nodeType": "YulIdentifier", - "src": "935:3:39" - }, - "nativeSrc": "935:32:39", - "nodeType": "YulFunctionCall", - "src": "935:32:39" - }, - "nativeSrc": "932:119:39", - "nodeType": "YulIf", - "src": "932:119:39" - }, - { - "nativeSrc": "1061:128:39", - "nodeType": "YulBlock", - "src": "1061:128:39", - "statements": [ - { - "nativeSrc": "1076:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1076:15:39", - "value": { - "kind": "number", - "nativeSrc": "1090:1:39", - "nodeType": "YulLiteral", - "src": "1090:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1080:6:39", - "nodeType": "YulTypedName", - "src": "1080:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1105:74:39", - "nodeType": "YulAssignment", - "src": "1105:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1151:9:39", - "nodeType": "YulIdentifier", - "src": "1151:9:39" - }, - { - "name": "offset", - "nativeSrc": "1162:6:39", - "nodeType": "YulIdentifier", - "src": "1162:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1147:3:39", - "nodeType": "YulIdentifier", - "src": "1147:3:39" - }, - "nativeSrc": "1147:22:39", - "nodeType": "YulFunctionCall", - "src": "1147:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1171:7:39", - "nodeType": "YulIdentifier", - "src": "1171:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1115:31:39", - "nodeType": "YulIdentifier", - "src": "1115:31:39" - }, - "nativeSrc": "1115:64:39", - "nodeType": "YulFunctionCall", - "src": "1115:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1105:6:39", - "nodeType": "YulIdentifier", - "src": "1105:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "845:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "892:9:39", - "nodeType": "YulTypedName", - "src": "892:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "903:7:39", - "nodeType": "YulTypedName", - "src": "903:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "915:6:39", - "nodeType": "YulTypedName", - "src": "915:6:39", - "type": "" - } - ], - "src": "845:351:39" - }, - { - "body": { - "nativeSrc": "1267:53:39", - "nodeType": "YulBlock", - "src": "1267:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1284:3:39", - "nodeType": "YulIdentifier", - "src": "1284:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1307:5:39", - "nodeType": "YulIdentifier", - "src": "1307:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1289:17:39", - "nodeType": "YulIdentifier", - "src": "1289:17:39" - }, - "nativeSrc": "1289:24:39", - "nodeType": "YulFunctionCall", - "src": "1289:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1277:6:39", - "nodeType": "YulIdentifier", - "src": "1277:6:39" - }, - "nativeSrc": "1277:37:39", - "nodeType": "YulFunctionCall", - "src": "1277:37:39" - }, - "nativeSrc": "1277:37:39", - "nodeType": "YulExpressionStatement", - "src": "1277:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1202:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1255:5:39", - "nodeType": "YulTypedName", - "src": "1255:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1262:3:39", - "nodeType": "YulTypedName", - "src": "1262:3:39", - "type": "" - } - ], - "src": "1202:118:39" - }, - { - "body": { - "nativeSrc": "1424:124:39", - "nodeType": "YulBlock", - "src": "1424:124:39", - "statements": [ - { - "nativeSrc": "1434:26:39", - "nodeType": "YulAssignment", - "src": "1434:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1446:9:39", - "nodeType": "YulIdentifier", - "src": "1446:9:39" - }, - { - "kind": "number", - "nativeSrc": "1457:2:39", - "nodeType": "YulLiteral", - "src": "1457:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1442:3:39", - "nodeType": "YulIdentifier", - "src": "1442:3:39" - }, - "nativeSrc": "1442:18:39", - "nodeType": "YulFunctionCall", - "src": "1442:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1434:4:39", - "nodeType": "YulIdentifier", - "src": "1434:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1514:6:39", - "nodeType": "YulIdentifier", - "src": "1514:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1527:9:39", - "nodeType": "YulIdentifier", - "src": "1527:9:39" - }, - { - "kind": "number", - "nativeSrc": "1538:1:39", - "nodeType": "YulLiteral", - "src": "1538:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1523:3:39", - "nodeType": "YulIdentifier", - "src": "1523:3:39" - }, - "nativeSrc": "1523:17:39", - "nodeType": "YulFunctionCall", - "src": "1523:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1470:43:39", - "nodeType": "YulIdentifier", - "src": "1470:43:39" - }, - "nativeSrc": "1470:71:39", - "nodeType": "YulFunctionCall", - "src": "1470:71:39" - }, - "nativeSrc": "1470:71:39", - "nodeType": "YulExpressionStatement", - "src": "1470:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "1326:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1396:9:39", - "nodeType": "YulTypedName", - "src": "1396:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1408:6:39", - "nodeType": "YulTypedName", - "src": "1408:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1419:4:39", - "nodeType": "YulTypedName", - "src": "1419:4:39", - "type": "" - } - ], - "src": "1326:222:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "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 0x27 0xB5 PC 0xE0 0xEF JUMPDEST DUP7 0x21 BLOCKHASH PUSH15 0x87E0A379C68E322FC4690410766900 SWAP2 0xB2 PUSH25 0x3BCA57C964736F6C634300081C003300000000000000000000 ", - "sourceMap": "502:1462:17:-:0;;;1329:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1371: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;1329:58:17;502:1462;;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:39:-;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:1462:17:-;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@UPGRADE_INTERFACE_VERSION_2957": { - "entryPoint": 441, - "id": 2957, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_checkOwner_1656": { - "entryPoint": 632, - "id": 1656, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_msgSender_3399": { - "entryPoint": 963, - "id": 3399, - "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_2991": { - "entryPoint": 318, - "id": 2991, - "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_$3014": { - "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_$3014t_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_$3014": { - "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_$3014": { - "entryPoint": 1101, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:7495:39", - "nodeType": "YulBlock", - "src": "0:7495:39", - "statements": [ - { - "body": { - "nativeSrc": "52:81:39", - "nodeType": "YulBlock", - "src": "52:81:39", - "statements": [ - { - "nativeSrc": "62:65:39", - "nodeType": "YulAssignment", - "src": "62:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "77:5:39", - "nodeType": "YulIdentifier", - "src": "77:5:39" - }, - { - "kind": "number", - "nativeSrc": "84:42:39", - "nodeType": "YulLiteral", - "src": "84:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "73:3:39", - "nodeType": "YulIdentifier", - "src": "73:3:39" - }, - "nativeSrc": "73:54:39", - "nodeType": "YulFunctionCall", - "src": "73:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "62:7:39", - "nodeType": "YulIdentifier", - "src": "62:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "7:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "34:5:39", - "nodeType": "YulTypedName", - "src": "34:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "44:7:39", - "nodeType": "YulTypedName", - "src": "44:7:39", - "type": "" - } - ], - "src": "7:126:39" - }, - { - "body": { - "nativeSrc": "184:51:39", - "nodeType": "YulBlock", - "src": "184:51:39", - "statements": [ - { - "nativeSrc": "194:35:39", - "nodeType": "YulAssignment", - "src": "194:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "223:5:39", - "nodeType": "YulIdentifier", - "src": "223:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "205:17:39", - "nodeType": "YulIdentifier", - "src": "205:17:39" - }, - "nativeSrc": "205:24:39", - "nodeType": "YulFunctionCall", - "src": "205:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "194:7:39", - "nodeType": "YulIdentifier", - "src": "194:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "139:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "166:5:39", - "nodeType": "YulTypedName", - "src": "166:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "176:7:39", - "nodeType": "YulTypedName", - "src": "176:7:39", - "type": "" - } - ], - "src": "139:96:39" - }, - { - "body": { - "nativeSrc": "306:53:39", - "nodeType": "YulBlock", - "src": "306:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "323:3:39", - "nodeType": "YulIdentifier", - "src": "323:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "346:5:39", - "nodeType": "YulIdentifier", - "src": "346:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "328:17:39", - "nodeType": "YulIdentifier", - "src": "328:17:39" - }, - "nativeSrc": "328:24:39", - "nodeType": "YulFunctionCall", - "src": "328:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "316:6:39", - "nodeType": "YulIdentifier", - "src": "316:6:39" - }, - "nativeSrc": "316:37:39", - "nodeType": "YulFunctionCall", - "src": "316:37:39" - }, - "nativeSrc": "316:37:39", - "nodeType": "YulExpressionStatement", - "src": "316:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "241:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "294:5:39", - "nodeType": "YulTypedName", - "src": "294:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "301:3:39", - "nodeType": "YulTypedName", - "src": "301:3:39", - "type": "" - } - ], - "src": "241:118:39" - }, - { - "body": { - "nativeSrc": "463:124:39", - "nodeType": "YulBlock", - "src": "463:124:39", - "statements": [ - { - "nativeSrc": "473:26:39", - "nodeType": "YulAssignment", - "src": "473:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "485:9:39", - "nodeType": "YulIdentifier", - "src": "485:9:39" - }, - { - "kind": "number", - "nativeSrc": "496:2:39", - "nodeType": "YulLiteral", - "src": "496:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "481:3:39", - "nodeType": "YulIdentifier", - "src": "481:3:39" - }, - "nativeSrc": "481:18:39", - "nodeType": "YulFunctionCall", - "src": "481:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "473:4:39", - "nodeType": "YulIdentifier", - "src": "473:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "553:6:39", - "nodeType": "YulIdentifier", - "src": "553:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "566:9:39", - "nodeType": "YulIdentifier", - "src": "566:9:39" - }, - { - "kind": "number", - "nativeSrc": "577:1:39", - "nodeType": "YulLiteral", - "src": "577:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "562:3:39", - "nodeType": "YulIdentifier", - "src": "562:3:39" - }, - "nativeSrc": "562:17:39", - "nodeType": "YulFunctionCall", - "src": "562:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "509:43:39", - "nodeType": "YulIdentifier", - "src": "509:43:39" - }, - "nativeSrc": "509:71:39", - "nodeType": "YulFunctionCall", - "src": "509:71:39" - }, - "nativeSrc": "509:71:39", - "nodeType": "YulExpressionStatement", - "src": "509:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "365:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "435:9:39", - "nodeType": "YulTypedName", - "src": "435:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "447:6:39", - "nodeType": "YulTypedName", - "src": "447:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "458:4:39", - "nodeType": "YulTypedName", - "src": "458:4:39", - "type": "" - } - ], - "src": "365:222:39" - }, - { - "body": { - "nativeSrc": "633:35:39", - "nodeType": "YulBlock", - "src": "633:35:39", - "statements": [ - { - "nativeSrc": "643:19:39", - "nodeType": "YulAssignment", - "src": "643:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "659:2:39", - "nodeType": "YulLiteral", - "src": "659:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "653:5:39", - "nodeType": "YulIdentifier", - "src": "653:5:39" - }, - "nativeSrc": "653:9:39", - "nodeType": "YulFunctionCall", - "src": "653:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "643:6:39", - "nodeType": "YulIdentifier", - "src": "643:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "593:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "626:6:39", - "nodeType": "YulTypedName", - "src": "626:6:39", - "type": "" - } - ], - "src": "593:75:39" - }, - { - "body": { - "nativeSrc": "763:28:39", - "nodeType": "YulBlock", - "src": "763:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "780:1:39", - "nodeType": "YulLiteral", - "src": "780:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "783:1:39", - "nodeType": "YulLiteral", - "src": "783:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "773:6:39", - "nodeType": "YulIdentifier", - "src": "773:6:39" - }, - "nativeSrc": "773:12:39", - "nodeType": "YulFunctionCall", - "src": "773:12:39" - }, - "nativeSrc": "773:12:39", - "nodeType": "YulExpressionStatement", - "src": "773:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "674:117:39", - "nodeType": "YulFunctionDefinition", - "src": "674:117:39" - }, - { - "body": { - "nativeSrc": "886:28:39", - "nodeType": "YulBlock", - "src": "886:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "903:1:39", - "nodeType": "YulLiteral", - "src": "903:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "906:1:39", - "nodeType": "YulLiteral", - "src": "906:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "896:6:39", - "nodeType": "YulIdentifier", - "src": "896:6:39" - }, - "nativeSrc": "896:12:39", - "nodeType": "YulFunctionCall", - "src": "896:12:39" - }, - "nativeSrc": "896:12:39", - "nodeType": "YulExpressionStatement", - "src": "896:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "797:117:39", - "nodeType": "YulFunctionDefinition", - "src": "797:117:39" - }, - { - "body": { - "nativeSrc": "1002:51:39", - "nodeType": "YulBlock", - "src": "1002:51:39", - "statements": [ - { - "nativeSrc": "1012:35:39", - "nodeType": "YulAssignment", - "src": "1012:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1041:5:39", - "nodeType": "YulIdentifier", - "src": "1041:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1023:17:39", - "nodeType": "YulIdentifier", - "src": "1023:17:39" - }, - "nativeSrc": "1023:24:39", - "nodeType": "YulFunctionCall", - "src": "1023:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1012:7:39", - "nodeType": "YulIdentifier", - "src": "1012:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "920:133:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "984:5:39", - "nodeType": "YulTypedName", - "src": "984:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "994:7:39", - "nodeType": "YulTypedName", - "src": "994:7:39", - "type": "" - } - ], - "src": "920:133:39" - }, - { - "body": { - "nativeSrc": "1139:116:39", - "nodeType": "YulBlock", - "src": "1139:116:39", - "statements": [ - { - "body": { - "nativeSrc": "1233:16:39", - "nodeType": "YulBlock", - "src": "1233:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1242:1:39", - "nodeType": "YulLiteral", - "src": "1242:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1245:1:39", - "nodeType": "YulLiteral", - "src": "1245:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1235:6:39", - "nodeType": "YulIdentifier", - "src": "1235:6:39" - }, - "nativeSrc": "1235:12:39", - "nodeType": "YulFunctionCall", - "src": "1235:12:39" - }, - "nativeSrc": "1235:12:39", - "nodeType": "YulExpressionStatement", - "src": "1235:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1162:5:39", - "nodeType": "YulIdentifier", - "src": "1162:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1224:5:39", - "nodeType": "YulIdentifier", - "src": "1224:5:39" - } - ], - "functionName": { - "name": "cleanup_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "1169:54:39", - "nodeType": "YulIdentifier", - "src": "1169:54:39" - }, - "nativeSrc": "1169:61:39", - "nodeType": "YulFunctionCall", - "src": "1169:61:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1159:2:39", - "nodeType": "YulIdentifier", - "src": "1159:2:39" - }, - "nativeSrc": "1159:72:39", - "nodeType": "YulFunctionCall", - "src": "1159:72:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1152:6:39", - "nodeType": "YulIdentifier", - "src": "1152:6:39" - }, - "nativeSrc": "1152:80:39", - "nodeType": "YulFunctionCall", - "src": "1152:80:39" - }, - "nativeSrc": "1149:100:39", - "nodeType": "YulIf", - "src": "1149:100:39" - } - ] - }, - "name": "validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "1059:196:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1132:5:39", - "nodeType": "YulTypedName", - "src": "1132:5:39", - "type": "" - } - ], - "src": "1059:196:39" - }, - { - "body": { - "nativeSrc": "1350:124:39", - "nodeType": "YulBlock", - "src": "1350:124:39", - "statements": [ - { - "nativeSrc": "1360:29:39", - "nodeType": "YulAssignment", - "src": "1360:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1382:6:39", - "nodeType": "YulIdentifier", - "src": "1382:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1369:12:39", - "nodeType": "YulIdentifier", - "src": "1369:12:39" - }, - "nativeSrc": "1369:20:39", - "nodeType": "YulFunctionCall", - "src": "1369:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1360:5:39", - "nodeType": "YulIdentifier", - "src": "1360:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1462:5:39", - "nodeType": "YulIdentifier", - "src": "1462:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "1398:63:39", - "nodeType": "YulIdentifier", - "src": "1398:63:39" - }, - "nativeSrc": "1398:70:39", - "nodeType": "YulFunctionCall", - "src": "1398:70:39" - }, - "nativeSrc": "1398:70:39", - "nodeType": "YulExpressionStatement", - "src": "1398:70:39" - } - ] - }, - "name": "abi_decode_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "1261:213:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1328:6:39", - "nodeType": "YulTypedName", - "src": "1328:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1336:3:39", - "nodeType": "YulTypedName", - "src": "1336:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1344:5:39", - "nodeType": "YulTypedName", - "src": "1344:5:39", - "type": "" - } - ], - "src": "1261:213:39" - }, - { - "body": { - "nativeSrc": "1523:79:39", - "nodeType": "YulBlock", - "src": "1523:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1580:16:39", - "nodeType": "YulBlock", - "src": "1580:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1589:1:39", - "nodeType": "YulLiteral", - "src": "1589:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1592:1:39", - "nodeType": "YulLiteral", - "src": "1592:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1582:6:39", - "nodeType": "YulIdentifier", - "src": "1582:6:39" - }, - "nativeSrc": "1582:12:39", - "nodeType": "YulFunctionCall", - "src": "1582:12:39" - }, - "nativeSrc": "1582:12:39", - "nodeType": "YulExpressionStatement", - "src": "1582:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1546:5:39", - "nodeType": "YulIdentifier", - "src": "1546:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1571:5:39", - "nodeType": "YulIdentifier", - "src": "1571:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1553:17:39", - "nodeType": "YulIdentifier", - "src": "1553:17:39" - }, - "nativeSrc": "1553:24:39", - "nodeType": "YulFunctionCall", - "src": "1553:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1543:2:39", - "nodeType": "YulIdentifier", - "src": "1543:2:39" - }, - "nativeSrc": "1543:35:39", - "nodeType": "YulFunctionCall", - "src": "1543:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1536:6:39", - "nodeType": "YulIdentifier", - "src": "1536:6:39" - }, - "nativeSrc": "1536:43:39", - "nodeType": "YulFunctionCall", - "src": "1536:43:39" - }, - "nativeSrc": "1533:63:39", - "nodeType": "YulIf", - "src": "1533:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "1480:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1516:5:39", - "nodeType": "YulTypedName", - "src": "1516:5:39", - "type": "" - } - ], - "src": "1480:122:39" - }, - { - "body": { - "nativeSrc": "1660:87:39", - "nodeType": "YulBlock", - "src": "1660:87:39", - "statements": [ - { - "nativeSrc": "1670:29:39", - "nodeType": "YulAssignment", - "src": "1670:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1692:6:39", - "nodeType": "YulIdentifier", - "src": "1692:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1679:12:39", - "nodeType": "YulIdentifier", - "src": "1679:12:39" - }, - "nativeSrc": "1679:20:39", - "nodeType": "YulFunctionCall", - "src": "1679:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1670:5:39", - "nodeType": "YulIdentifier", - "src": "1670:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1735:5:39", - "nodeType": "YulIdentifier", - "src": "1735:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "1708:26:39", - "nodeType": "YulIdentifier", - "src": "1708:26:39" - }, - "nativeSrc": "1708:33:39", - "nodeType": "YulFunctionCall", - "src": "1708:33:39" - }, - "nativeSrc": "1708:33:39", - "nodeType": "YulExpressionStatement", - "src": "1708:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "1608:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1638:6:39", - "nodeType": "YulTypedName", - "src": "1638:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1646:3:39", - "nodeType": "YulTypedName", - "src": "1646:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1654:5:39", - "nodeType": "YulTypedName", - "src": "1654:5:39", - "type": "" - } - ], - "src": "1608:139:39" - }, - { - "body": { - "nativeSrc": "1842:28:39", - "nodeType": "YulBlock", - "src": "1842:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1859:1:39", - "nodeType": "YulLiteral", - "src": "1859:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1862:1:39", - "nodeType": "YulLiteral", - "src": "1862:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1852:6:39", - "nodeType": "YulIdentifier", - "src": "1852:6:39" - }, - "nativeSrc": "1852:12:39", - "nodeType": "YulFunctionCall", - "src": "1852:12:39" - }, - "nativeSrc": "1852:12:39", - "nodeType": "YulExpressionStatement", - "src": "1852:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "1753:117:39", - "nodeType": "YulFunctionDefinition", - "src": "1753:117:39" - }, - { - "body": { - "nativeSrc": "1965:28:39", - "nodeType": "YulBlock", - "src": "1965:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1982:1:39", - "nodeType": "YulLiteral", - "src": "1982:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1985:1:39", - "nodeType": "YulLiteral", - "src": "1985:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1975:6:39", - "nodeType": "YulIdentifier", - "src": "1975:6:39" - }, - "nativeSrc": "1975:12:39", - "nodeType": "YulFunctionCall", - "src": "1975:12:39" - }, - "nativeSrc": "1975:12:39", - "nodeType": "YulExpressionStatement", - "src": "1975:12:39" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "1876:117:39", - "nodeType": "YulFunctionDefinition", - "src": "1876:117:39" - }, - { - "body": { - "nativeSrc": "2047:54:39", - "nodeType": "YulBlock", - "src": "2047:54:39", - "statements": [ - { - "nativeSrc": "2057:38:39", - "nodeType": "YulAssignment", - "src": "2057:38:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2075:5:39", - "nodeType": "YulIdentifier", - "src": "2075:5:39" - }, - { - "kind": "number", - "nativeSrc": "2082:2:39", - "nodeType": "YulLiteral", - "src": "2082:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2071:3:39", - "nodeType": "YulIdentifier", - "src": "2071:3:39" - }, - "nativeSrc": "2071:14:39", - "nodeType": "YulFunctionCall", - "src": "2071:14:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2091:2:39", - "nodeType": "YulLiteral", - "src": "2091:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "2087:3:39", - "nodeType": "YulIdentifier", - "src": "2087:3:39" - }, - "nativeSrc": "2087:7:39", - "nodeType": "YulFunctionCall", - "src": "2087:7:39" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2067:3:39", - "nodeType": "YulIdentifier", - "src": "2067:3:39" - }, - "nativeSrc": "2067:28:39", - "nodeType": "YulFunctionCall", - "src": "2067:28:39" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "2057:6:39", - "nodeType": "YulIdentifier", - "src": "2057:6:39" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "1999:102:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2030:5:39", - "nodeType": "YulTypedName", - "src": "2030:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "2040:6:39", - "nodeType": "YulTypedName", - "src": "2040:6:39", - "type": "" - } - ], - "src": "1999:102:39" - }, - { - "body": { - "nativeSrc": "2135:152:39", - "nodeType": "YulBlock", - "src": "2135:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2152:1:39", - "nodeType": "YulLiteral", - "src": "2152:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2155:77:39", - "nodeType": "YulLiteral", - "src": "2155:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2145:6:39", - "nodeType": "YulIdentifier", - "src": "2145:6:39" - }, - "nativeSrc": "2145:88:39", - "nodeType": "YulFunctionCall", - "src": "2145:88:39" - }, - "nativeSrc": "2145:88:39", - "nodeType": "YulExpressionStatement", - "src": "2145:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2249:1:39", - "nodeType": "YulLiteral", - "src": "2249:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "2252:4:39", - "nodeType": "YulLiteral", - "src": "2252:4:39", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2242:6:39", - "nodeType": "YulIdentifier", - "src": "2242:6:39" - }, - "nativeSrc": "2242:15:39", - "nodeType": "YulFunctionCall", - "src": "2242:15:39" - }, - "nativeSrc": "2242:15:39", - "nodeType": "YulExpressionStatement", - "src": "2242:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2273:1:39", - "nodeType": "YulLiteral", - "src": "2273:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2276:4:39", - "nodeType": "YulLiteral", - "src": "2276:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2266:6:39", - "nodeType": "YulIdentifier", - "src": "2266:6:39" - }, - "nativeSrc": "2266:15:39", - "nodeType": "YulFunctionCall", - "src": "2266:15:39" - }, - "nativeSrc": "2266:15:39", - "nodeType": "YulExpressionStatement", - "src": "2266:15:39" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "2107:180:39", - "nodeType": "YulFunctionDefinition", - "src": "2107:180:39" - }, - { - "body": { - "nativeSrc": "2336:238:39", - "nodeType": "YulBlock", - "src": "2336:238:39", - "statements": [ - { - "nativeSrc": "2346:58:39", - "nodeType": "YulVariableDeclaration", - "src": "2346:58:39", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "2368:6:39", - "nodeType": "YulIdentifier", - "src": "2368:6:39" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "2398:4:39", - "nodeType": "YulIdentifier", - "src": "2398:4:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2376:21:39", - "nodeType": "YulIdentifier", - "src": "2376:21:39" - }, - "nativeSrc": "2376:27:39", - "nodeType": "YulFunctionCall", - "src": "2376:27:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2364:3:39", - "nodeType": "YulIdentifier", - "src": "2364:3:39" - }, - "nativeSrc": "2364:40:39", - "nodeType": "YulFunctionCall", - "src": "2364:40:39" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "2350:10:39", - "nodeType": "YulTypedName", - "src": "2350:10:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2515:22:39", - "nodeType": "YulBlock", - "src": "2515:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "2517:16:39", - "nodeType": "YulIdentifier", - "src": "2517:16:39" - }, - "nativeSrc": "2517:18:39", - "nodeType": "YulFunctionCall", - "src": "2517:18:39" - }, - "nativeSrc": "2517:18:39", - "nodeType": "YulExpressionStatement", - "src": "2517:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "2458:10:39", - "nodeType": "YulIdentifier", - "src": "2458:10:39" - }, - { - "kind": "number", - "nativeSrc": "2470:18:39", - "nodeType": "YulLiteral", - "src": "2470:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2455:2:39", - "nodeType": "YulIdentifier", - "src": "2455:2:39" - }, - "nativeSrc": "2455:34:39", - "nodeType": "YulFunctionCall", - "src": "2455:34:39" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "2494:10:39", - "nodeType": "YulIdentifier", - "src": "2494:10:39" - }, - { - "name": "memPtr", - "nativeSrc": "2506:6:39", - "nodeType": "YulIdentifier", - "src": "2506:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "2491:2:39", - "nodeType": "YulIdentifier", - "src": "2491:2:39" - }, - "nativeSrc": "2491:22:39", - "nodeType": "YulFunctionCall", - "src": "2491:22:39" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "2452:2:39", - "nodeType": "YulIdentifier", - "src": "2452:2:39" - }, - "nativeSrc": "2452:62:39", - "nodeType": "YulFunctionCall", - "src": "2452:62:39" - }, - "nativeSrc": "2449:88:39", - "nodeType": "YulIf", - "src": "2449:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2553:2:39", - "nodeType": "YulLiteral", - "src": "2553:2:39", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "2557:10:39", - "nodeType": "YulIdentifier", - "src": "2557:10:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2546:6:39", - "nodeType": "YulIdentifier", - "src": "2546:6:39" - }, - "nativeSrc": "2546:22:39", - "nodeType": "YulFunctionCall", - "src": "2546:22:39" - }, - "nativeSrc": "2546:22:39", - "nodeType": "YulExpressionStatement", - "src": "2546:22:39" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "2293:281:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "2322:6:39", - "nodeType": "YulTypedName", - "src": "2322:6:39", - "type": "" - }, - { - "name": "size", - "nativeSrc": "2330:4:39", - "nodeType": "YulTypedName", - "src": "2330:4:39", - "type": "" - } - ], - "src": "2293:281:39" - }, - { - "body": { - "nativeSrc": "2621:88:39", - "nodeType": "YulBlock", - "src": "2621:88:39", - "statements": [ - { - "nativeSrc": "2631:30:39", - "nodeType": "YulAssignment", - "src": "2631:30:39", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "2641:18:39", - "nodeType": "YulIdentifier", - "src": "2641:18:39" - }, - "nativeSrc": "2641:20:39", - "nodeType": "YulFunctionCall", - "src": "2641:20:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "2631:6:39", - "nodeType": "YulIdentifier", - "src": "2631:6:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "2690:6:39", - "nodeType": "YulIdentifier", - "src": "2690:6:39" - }, - { - "name": "size", - "nativeSrc": "2698:4:39", - "nodeType": "YulIdentifier", - "src": "2698:4:39" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "2670:19:39", - "nodeType": "YulIdentifier", - "src": "2670:19:39" - }, - "nativeSrc": "2670:33:39", - "nodeType": "YulFunctionCall", - "src": "2670:33:39" - }, - "nativeSrc": "2670:33:39", - "nodeType": "YulExpressionStatement", - "src": "2670:33:39" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "2580:129:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "2605:4:39", - "nodeType": "YulTypedName", - "src": "2605:4:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "2614:6:39", - "nodeType": "YulTypedName", - "src": "2614:6:39", - "type": "" - } - ], - "src": "2580:129:39" - }, - { - "body": { - "nativeSrc": "2781:241:39", - "nodeType": "YulBlock", - "src": "2781:241:39", - "statements": [ - { - "body": { - "nativeSrc": "2886:22:39", - "nodeType": "YulBlock", - "src": "2886:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "2888:16:39", - "nodeType": "YulIdentifier", - "src": "2888:16:39" - }, - "nativeSrc": "2888:18:39", - "nodeType": "YulFunctionCall", - "src": "2888:18:39" - }, - "nativeSrc": "2888:18:39", - "nodeType": "YulExpressionStatement", - "src": "2888:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2858:6:39", - "nodeType": "YulIdentifier", - "src": "2858:6:39" - }, - { - "kind": "number", - "nativeSrc": "2866:18:39", - "nodeType": "YulLiteral", - "src": "2866:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2855:2:39", - "nodeType": "YulIdentifier", - "src": "2855:2:39" - }, - "nativeSrc": "2855:30:39", - "nodeType": "YulFunctionCall", - "src": "2855:30:39" - }, - "nativeSrc": "2852:56:39", - "nodeType": "YulIf", - "src": "2852:56:39" - }, - { - "nativeSrc": "2918:37:39", - "nodeType": "YulAssignment", - "src": "2918:37:39", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2948:6:39", - "nodeType": "YulIdentifier", - "src": "2948:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2926:21:39", - "nodeType": "YulIdentifier", - "src": "2926:21:39" - }, - "nativeSrc": "2926:29:39", - "nodeType": "YulFunctionCall", - "src": "2926:29:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2918:4:39", - "nodeType": "YulIdentifier", - "src": "2918:4:39" - } - ] - }, - { - "nativeSrc": "2992:23:39", - "nodeType": "YulAssignment", - "src": "2992:23:39", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "3004:4:39", - "nodeType": "YulIdentifier", - "src": "3004:4:39" - }, - { - "kind": "number", - "nativeSrc": "3010:4:39", - "nodeType": "YulLiteral", - "src": "3010:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3000:3:39", - "nodeType": "YulIdentifier", - "src": "3000:3:39" - }, - "nativeSrc": "3000:15:39", - "nodeType": "YulFunctionCall", - "src": "3000:15:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2992:4:39", - "nodeType": "YulIdentifier", - "src": "2992:4:39" - } - ] - } - ] - }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "2715:307:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "2765:6:39", - "nodeType": "YulTypedName", - "src": "2765:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "2776:4:39", - "nodeType": "YulTypedName", - "src": "2776:4:39", - "type": "" - } - ], - "src": "2715:307:39" - }, - { - "body": { - "nativeSrc": "3092:84:39", - "nodeType": "YulBlock", - "src": "3092:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "3116:3:39", - "nodeType": "YulIdentifier", - "src": "3116:3:39" - }, - { - "name": "src", - "nativeSrc": "3121:3:39", - "nodeType": "YulIdentifier", - "src": "3121:3:39" - }, - { - "name": "length", - "nativeSrc": "3126:6:39", - "nodeType": "YulIdentifier", - "src": "3126:6:39" - } - ], - "functionName": { - "name": "calldatacopy", - "nativeSrc": "3103:12:39", - "nodeType": "YulIdentifier", - "src": "3103:12:39" - }, - "nativeSrc": "3103:30:39", - "nodeType": "YulFunctionCall", - "src": "3103:30:39" - }, - "nativeSrc": "3103:30:39", - "nodeType": "YulExpressionStatement", - "src": "3103:30:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "3153:3:39", - "nodeType": "YulIdentifier", - "src": "3153:3:39" - }, - { - "name": "length", - "nativeSrc": "3158:6:39", - "nodeType": "YulIdentifier", - "src": "3158:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3149:3:39", - "nodeType": "YulIdentifier", - "src": "3149:3:39" - }, - "nativeSrc": "3149:16:39", - "nodeType": "YulFunctionCall", - "src": "3149:16:39" - }, - { - "kind": "number", - "nativeSrc": "3167:1:39", - "nodeType": "YulLiteral", - "src": "3167:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3142:6:39", - "nodeType": "YulIdentifier", - "src": "3142:6:39" - }, - "nativeSrc": "3142:27:39", - "nodeType": "YulFunctionCall", - "src": "3142:27:39" - }, - "nativeSrc": "3142:27:39", - "nodeType": "YulExpressionStatement", - "src": "3142:27:39" - } - ] - }, - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "3028:148:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "3074:3:39", - "nodeType": "YulTypedName", - "src": "3074:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "3079:3:39", - "nodeType": "YulTypedName", - "src": "3079:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3084:6:39", - "nodeType": "YulTypedName", - "src": "3084:6:39", - "type": "" - } - ], - "src": "3028:148:39" - }, - { - "body": { - "nativeSrc": "3265:340:39", - "nodeType": "YulBlock", - "src": "3265:340:39", - "statements": [ - { - "nativeSrc": "3275:74:39", - "nodeType": "YulAssignment", - "src": "3275:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "3341:6:39", - "nodeType": "YulIdentifier", - "src": "3341:6:39" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "3300:40:39", - "nodeType": "YulIdentifier", - "src": "3300:40:39" - }, - "nativeSrc": "3300:48:39", - "nodeType": "YulFunctionCall", - "src": "3300:48:39" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "3284:15:39", - "nodeType": "YulIdentifier", - "src": "3284:15:39" - }, - "nativeSrc": "3284:65:39", - "nodeType": "YulFunctionCall", - "src": "3284:65:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3275:5:39", - "nodeType": "YulIdentifier", - "src": "3275:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "3365:5:39", - "nodeType": "YulIdentifier", - "src": "3365:5:39" - }, - { - "name": "length", - "nativeSrc": "3372:6:39", - "nodeType": "YulIdentifier", - "src": "3372:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3358:6:39", - "nodeType": "YulIdentifier", - "src": "3358:6:39" - }, - "nativeSrc": "3358:21:39", - "nodeType": "YulFunctionCall", - "src": "3358:21:39" - }, - "nativeSrc": "3358:21:39", - "nodeType": "YulExpressionStatement", - "src": "3358:21:39" - }, - { - "nativeSrc": "3388:27:39", - "nodeType": "YulVariableDeclaration", - "src": "3388:27:39", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "3403:5:39", - "nodeType": "YulIdentifier", - "src": "3403:5:39" - }, - { - "kind": "number", - "nativeSrc": "3410:4:39", - "nodeType": "YulLiteral", - "src": "3410:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3399:3:39", - "nodeType": "YulIdentifier", - "src": "3399:3:39" - }, - "nativeSrc": "3399:16:39", - "nodeType": "YulFunctionCall", - "src": "3399:16:39" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "3392:3:39", - "nodeType": "YulTypedName", - "src": "3392:3:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3453:83:39", - "nodeType": "YulBlock", - "src": "3453:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "3455:77:39", - "nodeType": "YulIdentifier", - "src": "3455:77:39" - }, - "nativeSrc": "3455:79:39", - "nodeType": "YulFunctionCall", - "src": "3455:79:39" - }, - "nativeSrc": "3455:79:39", - "nodeType": "YulExpressionStatement", - "src": "3455:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "3434:3:39", - "nodeType": "YulIdentifier", - "src": "3434:3:39" - }, - { - "name": "length", - "nativeSrc": "3439:6:39", - "nodeType": "YulIdentifier", - "src": "3439:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3430:3:39", - "nodeType": "YulIdentifier", - "src": "3430:3:39" - }, - "nativeSrc": "3430:16:39", - "nodeType": "YulFunctionCall", - "src": "3430:16:39" - }, - { - "name": "end", - "nativeSrc": "3448:3:39", - "nodeType": "YulIdentifier", - "src": "3448:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3427:2:39", - "nodeType": "YulIdentifier", - "src": "3427:2:39" - }, - "nativeSrc": "3427:25:39", - "nodeType": "YulFunctionCall", - "src": "3427:25:39" - }, - "nativeSrc": "3424:112:39", - "nodeType": "YulIf", - "src": "3424:112:39" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "3582:3:39", - "nodeType": "YulIdentifier", - "src": "3582:3:39" - }, - { - "name": "dst", - "nativeSrc": "3587:3:39", - "nodeType": "YulIdentifier", - "src": "3587:3:39" - }, - { - "name": "length", - "nativeSrc": "3592:6:39", - "nodeType": "YulIdentifier", - "src": "3592:6:39" - } - ], - "functionName": { - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "3545:36:39", - "nodeType": "YulIdentifier", - "src": "3545:36:39" - }, - "nativeSrc": "3545:54:39", - "nodeType": "YulFunctionCall", - "src": "3545:54:39" - }, - "nativeSrc": "3545:54:39", - "nodeType": "YulExpressionStatement", - "src": "3545:54:39" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "3182:423:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "3238:3:39", - "nodeType": "YulTypedName", - "src": "3238:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3243:6:39", - "nodeType": "YulTypedName", - "src": "3243:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3251:3:39", - "nodeType": "YulTypedName", - "src": "3251:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "3259:5:39", - "nodeType": "YulTypedName", - "src": "3259:5:39", - "type": "" - } - ], - "src": "3182:423:39" - }, - { - "body": { - "nativeSrc": "3685:277:39", - "nodeType": "YulBlock", - "src": "3685:277:39", - "statements": [ - { - "body": { - "nativeSrc": "3734:83:39", - "nodeType": "YulBlock", - "src": "3734:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "3736:77:39", - "nodeType": "YulIdentifier", - "src": "3736:77:39" - }, - "nativeSrc": "3736:79:39", - "nodeType": "YulFunctionCall", - "src": "3736:79:39" - }, - "nativeSrc": "3736:79:39", - "nodeType": "YulExpressionStatement", - "src": "3736:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3713:6:39", - "nodeType": "YulIdentifier", - "src": "3713:6:39" - }, - { - "kind": "number", - "nativeSrc": "3721:4:39", - "nodeType": "YulLiteral", - "src": "3721:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3709:3:39", - "nodeType": "YulIdentifier", - "src": "3709:3:39" - }, - "nativeSrc": "3709:17:39", - "nodeType": "YulFunctionCall", - "src": "3709:17:39" - }, - { - "name": "end", - "nativeSrc": "3728:3:39", - "nodeType": "YulIdentifier", - "src": "3728:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3705:3:39", - "nodeType": "YulIdentifier", - "src": "3705:3:39" - }, - "nativeSrc": "3705:27:39", - "nodeType": "YulFunctionCall", - "src": "3705:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3698:6:39", - "nodeType": "YulIdentifier", - "src": "3698:6:39" - }, - "nativeSrc": "3698:35:39", - "nodeType": "YulFunctionCall", - "src": "3698:35:39" - }, - "nativeSrc": "3695:122:39", - "nodeType": "YulIf", - "src": "3695:122:39" - }, - { - "nativeSrc": "3826:34:39", - "nodeType": "YulVariableDeclaration", - "src": "3826:34:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3853:6:39", - "nodeType": "YulIdentifier", - "src": "3853:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3840:12:39", - "nodeType": "YulIdentifier", - "src": "3840:12:39" - }, - "nativeSrc": "3840:20:39", - "nodeType": "YulFunctionCall", - "src": "3840:20:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "3830:6:39", - "nodeType": "YulTypedName", - "src": "3830:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3869:87:39", - "nodeType": "YulAssignment", - "src": "3869:87:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3929:6:39", - "nodeType": "YulIdentifier", - "src": "3929:6:39" - }, - { - "kind": "number", - "nativeSrc": "3937:4:39", - "nodeType": "YulLiteral", - "src": "3937:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3925:3:39", - "nodeType": "YulIdentifier", - "src": "3925:3:39" - }, - "nativeSrc": "3925:17:39", - "nodeType": "YulFunctionCall", - "src": "3925:17:39" - }, - { - "name": "length", - "nativeSrc": "3944:6:39", - "nodeType": "YulIdentifier", - "src": "3944:6:39" - }, - { - "name": "end", - "nativeSrc": "3952:3:39", - "nodeType": "YulIdentifier", - "src": "3952:3:39" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "3878:46:39", - "nodeType": "YulIdentifier", - "src": "3878:46:39" - }, - "nativeSrc": "3878:78:39", - "nodeType": "YulFunctionCall", - "src": "3878:78:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3869:5:39", - "nodeType": "YulIdentifier", - "src": "3869:5:39" - } - ] - } - ] - }, - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "3624:338:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3663:6:39", - "nodeType": "YulTypedName", - "src": "3663:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3671:3:39", - "nodeType": "YulTypedName", - "src": "3671:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "3679:5:39", - "nodeType": "YulTypedName", - "src": "3679:5:39", - "type": "" - } - ], - "src": "3624:338:39" - }, - { - "body": { - "nativeSrc": "4114:725:39", - "nodeType": "YulBlock", - "src": "4114:725:39", - "statements": [ - { - "body": { - "nativeSrc": "4160:83:39", - "nodeType": "YulBlock", - "src": "4160:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4162:77:39", - "nodeType": "YulIdentifier", - "src": "4162:77:39" - }, - "nativeSrc": "4162:79:39", - "nodeType": "YulFunctionCall", - "src": "4162:79:39" - }, - "nativeSrc": "4162:79:39", - "nodeType": "YulExpressionStatement", - "src": "4162:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4135:7:39", - "nodeType": "YulIdentifier", - "src": "4135:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4144:9:39", - "nodeType": "YulIdentifier", - "src": "4144:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4131:3:39", - "nodeType": "YulIdentifier", - "src": "4131:3:39" - }, - "nativeSrc": "4131:23:39", - "nodeType": "YulFunctionCall", - "src": "4131:23:39" - }, - { - "kind": "number", - "nativeSrc": "4156:2:39", - "nodeType": "YulLiteral", - "src": "4156:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4127:3:39", - "nodeType": "YulIdentifier", - "src": "4127:3:39" - }, - "nativeSrc": "4127:32:39", - "nodeType": "YulFunctionCall", - "src": "4127:32:39" - }, - "nativeSrc": "4124:119:39", - "nodeType": "YulIf", - "src": "4124:119:39" - }, - { - "nativeSrc": "4253:154:39", - "nodeType": "YulBlock", - "src": "4253:154:39", - "statements": [ - { - "nativeSrc": "4268:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4268:15:39", - "value": { - "kind": "number", - "nativeSrc": "4282:1:39", - "nodeType": "YulLiteral", - "src": "4282:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4272:6:39", - "nodeType": "YulTypedName", - "src": "4272:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4297:100:39", - "nodeType": "YulAssignment", - "src": "4297:100:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4369:9:39", - "nodeType": "YulIdentifier", - "src": "4369:9:39" - }, - { - "name": "offset", - "nativeSrc": "4380:6:39", - "nodeType": "YulIdentifier", - "src": "4380:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4365:3:39", - "nodeType": "YulIdentifier", - "src": "4365:3:39" - }, - "nativeSrc": "4365:22:39", - "nodeType": "YulFunctionCall", - "src": "4365:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4389:7:39", - "nodeType": "YulIdentifier", - "src": "4389:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "4307:57:39", - "nodeType": "YulIdentifier", - "src": "4307:57:39" - }, - "nativeSrc": "4307:90:39", - "nodeType": "YulFunctionCall", - "src": "4307:90:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4297:6:39", - "nodeType": "YulIdentifier", - "src": "4297:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4417:118:39", - "nodeType": "YulBlock", - "src": "4417:118:39", - "statements": [ - { - "nativeSrc": "4432:16:39", - "nodeType": "YulVariableDeclaration", - "src": "4432:16:39", - "value": { - "kind": "number", - "nativeSrc": "4446:2:39", - "nodeType": "YulLiteral", - "src": "4446:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4436:6:39", - "nodeType": "YulTypedName", - "src": "4436:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4462:63:39", - "nodeType": "YulAssignment", - "src": "4462:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4497:9:39", - "nodeType": "YulIdentifier", - "src": "4497:9:39" - }, - { - "name": "offset", - "nativeSrc": "4508:6:39", - "nodeType": "YulIdentifier", - "src": "4508:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4493:3:39", - "nodeType": "YulIdentifier", - "src": "4493:3:39" - }, - "nativeSrc": "4493:22:39", - "nodeType": "YulFunctionCall", - "src": "4493:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4517:7:39", - "nodeType": "YulIdentifier", - "src": "4517:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "4472:20:39", - "nodeType": "YulIdentifier", - "src": "4472:20:39" - }, - "nativeSrc": "4472:53:39", - "nodeType": "YulFunctionCall", - "src": "4472:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4462:6:39", - "nodeType": "YulIdentifier", - "src": "4462:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4545:287:39", - "nodeType": "YulBlock", - "src": "4545:287:39", - "statements": [ - { - "nativeSrc": "4560:46:39", - "nodeType": "YulVariableDeclaration", - "src": "4560:46:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4591:9:39", - "nodeType": "YulIdentifier", - "src": "4591:9:39" - }, - { - "kind": "number", - "nativeSrc": "4602:2:39", - "nodeType": "YulLiteral", - "src": "4602:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4587:3:39", - "nodeType": "YulIdentifier", - "src": "4587:3:39" - }, - "nativeSrc": "4587:18:39", - "nodeType": "YulFunctionCall", - "src": "4587:18:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4574:12:39", - "nodeType": "YulIdentifier", - "src": "4574:12:39" - }, - "nativeSrc": "4574:32:39", - "nodeType": "YulFunctionCall", - "src": "4574:32:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4564:6:39", - "nodeType": "YulTypedName", - "src": "4564:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "4653:83:39", - "nodeType": "YulBlock", - "src": "4653:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "4655:77:39", - "nodeType": "YulIdentifier", - "src": "4655:77:39" - }, - "nativeSrc": "4655:79:39", - "nodeType": "YulFunctionCall", - "src": "4655:79:39" - }, - "nativeSrc": "4655:79:39", - "nodeType": "YulExpressionStatement", - "src": "4655:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "4625:6:39", - "nodeType": "YulIdentifier", - "src": "4625:6:39" - }, - { - "kind": "number", - "nativeSrc": "4633:18:39", - "nodeType": "YulLiteral", - "src": "4633:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "4622:2:39", - "nodeType": "YulIdentifier", - "src": "4622:2:39" - }, - "nativeSrc": "4622:30:39", - "nodeType": "YulFunctionCall", - "src": "4622:30:39" - }, - "nativeSrc": "4619:117:39", - "nodeType": "YulIf", - "src": "4619:117:39" - }, - { - "nativeSrc": "4750:72:39", - "nodeType": "YulAssignment", - "src": "4750:72:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4794:9:39", - "nodeType": "YulIdentifier", - "src": "4794:9:39" - }, - { - "name": "offset", - "nativeSrc": "4805:6:39", - "nodeType": "YulIdentifier", - "src": "4805:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4790:3:39", - "nodeType": "YulIdentifier", - "src": "4790:3:39" - }, - "nativeSrc": "4790:22:39", - "nodeType": "YulFunctionCall", - "src": "4790:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4814:7:39", - "nodeType": "YulIdentifier", - "src": "4814:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "4760:29:39", - "nodeType": "YulIdentifier", - "src": "4760:29:39" - }, - "nativeSrc": "4760:62:39", - "nodeType": "YulFunctionCall", - "src": "4760:62:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "4750:6:39", - "nodeType": "YulIdentifier", - "src": "4750:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$3014t_addresst_bytes_memory_ptr", - "nativeSrc": "3968:871:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4068:9:39", - "nodeType": "YulTypedName", - "src": "4068:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4079:7:39", - "nodeType": "YulTypedName", - "src": "4079:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4091:6:39", - "nodeType": "YulTypedName", - "src": "4091:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4099:6:39", - "nodeType": "YulTypedName", - "src": "4099:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4107:6:39", - "nodeType": "YulTypedName", - "src": "4107:6:39", - "type": "" - } - ], - "src": "3968:871:39" - }, - { - "body": { - "nativeSrc": "4904:40:39", - "nodeType": "YulBlock", - "src": "4904:40:39", - "statements": [ - { - "nativeSrc": "4915:22:39", - "nodeType": "YulAssignment", - "src": "4915:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4931:5:39", - "nodeType": "YulIdentifier", - "src": "4931:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4925:5:39", - "nodeType": "YulIdentifier", - "src": "4925:5:39" - }, - "nativeSrc": "4925:12:39", - "nodeType": "YulFunctionCall", - "src": "4925:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "4915:6:39", - "nodeType": "YulIdentifier", - "src": "4915:6:39" - } - ] - } - ] - }, - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "4845:99:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4887:5:39", - "nodeType": "YulTypedName", - "src": "4887:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "4897:6:39", - "nodeType": "YulTypedName", - "src": "4897:6:39", - "type": "" - } - ], - "src": "4845:99:39" - }, - { - "body": { - "nativeSrc": "5046:73:39", - "nodeType": "YulBlock", - "src": "5046:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5063:3:39", - "nodeType": "YulIdentifier", - "src": "5063:3:39" - }, - { - "name": "length", - "nativeSrc": "5068:6:39", - "nodeType": "YulIdentifier", - "src": "5068:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5056:6:39", - "nodeType": "YulIdentifier", - "src": "5056:6:39" - }, - "nativeSrc": "5056:19:39", - "nodeType": "YulFunctionCall", - "src": "5056:19:39" - }, - "nativeSrc": "5056:19:39", - "nodeType": "YulExpressionStatement", - "src": "5056:19:39" - }, - { - "nativeSrc": "5084:29:39", - "nodeType": "YulAssignment", - "src": "5084:29:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5103:3:39", - "nodeType": "YulIdentifier", - "src": "5103:3:39" - }, - { - "kind": "number", - "nativeSrc": "5108:4:39", - "nodeType": "YulLiteral", - "src": "5108:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5099:3:39", - "nodeType": "YulIdentifier", - "src": "5099:3:39" - }, - "nativeSrc": "5099:14:39", - "nodeType": "YulFunctionCall", - "src": "5099:14:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "5084:11:39", - "nodeType": "YulIdentifier", - "src": "5084:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "4950:169:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "5018:3:39", - "nodeType": "YulTypedName", - "src": "5018:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "5023:6:39", - "nodeType": "YulTypedName", - "src": "5023:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "5034:11:39", - "nodeType": "YulTypedName", - "src": "5034:11:39", - "type": "" - } - ], - "src": "4950:169:39" - }, - { - "body": { - "nativeSrc": "5187:186:39", - "nodeType": "YulBlock", - "src": "5187:186:39", - "statements": [ - { - "nativeSrc": "5198:10:39", - "nodeType": "YulVariableDeclaration", - "src": "5198:10:39", - "value": { - "kind": "number", - "nativeSrc": "5207:1:39", - "nodeType": "YulLiteral", - "src": "5207:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "5202:1:39", - "nodeType": "YulTypedName", - "src": "5202:1:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5267:63:39", - "nodeType": "YulBlock", - "src": "5267:63:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "5292:3:39", - "nodeType": "YulIdentifier", - "src": "5292:3:39" - }, - { - "name": "i", - "nativeSrc": "5297:1:39", - "nodeType": "YulIdentifier", - "src": "5297:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5288:3:39", - "nodeType": "YulIdentifier", - "src": "5288:3:39" - }, - "nativeSrc": "5288:11:39", - "nodeType": "YulFunctionCall", - "src": "5288:11:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "5311:3:39", - "nodeType": "YulIdentifier", - "src": "5311:3:39" - }, - { - "name": "i", - "nativeSrc": "5316:1:39", - "nodeType": "YulIdentifier", - "src": "5316:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5307:3:39", - "nodeType": "YulIdentifier", - "src": "5307:3:39" - }, - "nativeSrc": "5307:11:39", - "nodeType": "YulFunctionCall", - "src": "5307:11:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5301:5:39", - "nodeType": "YulIdentifier", - "src": "5301:5:39" - }, - "nativeSrc": "5301:18:39", - "nodeType": "YulFunctionCall", - "src": "5301:18:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5281:6:39", - "nodeType": "YulIdentifier", - "src": "5281:6:39" - }, - "nativeSrc": "5281:39:39", - "nodeType": "YulFunctionCall", - "src": "5281:39:39" - }, - "nativeSrc": "5281:39:39", - "nodeType": "YulExpressionStatement", - "src": "5281:39:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "5228:1:39", - "nodeType": "YulIdentifier", - "src": "5228:1:39" - }, - { - "name": "length", - "nativeSrc": "5231:6:39", - "nodeType": "YulIdentifier", - "src": "5231:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5225:2:39", - "nodeType": "YulIdentifier", - "src": "5225:2:39" - }, - "nativeSrc": "5225:13:39", - "nodeType": "YulFunctionCall", - "src": "5225:13:39" - }, - "nativeSrc": "5217:113:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "5239:19:39", - "nodeType": "YulBlock", - "src": "5239:19:39", - "statements": [ - { - "nativeSrc": "5241:15:39", - "nodeType": "YulAssignment", - "src": "5241:15:39", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "5250:1:39", - "nodeType": "YulIdentifier", - "src": "5250:1:39" - }, - { - "kind": "number", - "nativeSrc": "5253:2:39", - "nodeType": "YulLiteral", - "src": "5253:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5246:3:39", - "nodeType": "YulIdentifier", - "src": "5246:3:39" - }, - "nativeSrc": "5246:10:39", - "nodeType": "YulFunctionCall", - "src": "5246:10:39" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "5241:1:39", - "nodeType": "YulIdentifier", - "src": "5241:1:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "5221:3:39", - "nodeType": "YulBlock", - "src": "5221:3:39", - "statements": [] - }, - "src": "5217:113:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "5350:3:39", - "nodeType": "YulIdentifier", - "src": "5350:3:39" - }, - { - "name": "length", - "nativeSrc": "5355:6:39", - "nodeType": "YulIdentifier", - "src": "5355:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5346:3:39", - "nodeType": "YulIdentifier", - "src": "5346:3:39" - }, - "nativeSrc": "5346:16:39", - "nodeType": "YulFunctionCall", - "src": "5346:16:39" - }, - { - "kind": "number", - "nativeSrc": "5364:1:39", - "nodeType": "YulLiteral", - "src": "5364:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5339:6:39", - "nodeType": "YulIdentifier", - "src": "5339:6:39" - }, - "nativeSrc": "5339:27:39", - "nodeType": "YulFunctionCall", - "src": "5339:27:39" - }, - "nativeSrc": "5339:27:39", - "nodeType": "YulExpressionStatement", - "src": "5339:27:39" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5125:248:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "5169:3:39", - "nodeType": "YulTypedName", - "src": "5169:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "5174:3:39", - "nodeType": "YulTypedName", - "src": "5174:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "5179:6:39", - "nodeType": "YulTypedName", - "src": "5179:6:39", - "type": "" - } - ], - "src": "5125:248:39" - }, - { - "body": { - "nativeSrc": "5471:285:39", - "nodeType": "YulBlock", - "src": "5471:285:39", - "statements": [ - { - "nativeSrc": "5481:53:39", - "nodeType": "YulVariableDeclaration", - "src": "5481:53:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5528:5:39", - "nodeType": "YulIdentifier", - "src": "5528:5:39" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "5495:32:39", - "nodeType": "YulIdentifier", - "src": "5495:32:39" - }, - "nativeSrc": "5495:39:39", - "nodeType": "YulFunctionCall", - "src": "5495:39:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "5485:6:39", - "nodeType": "YulTypedName", - "src": "5485:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5543:78:39", - "nodeType": "YulAssignment", - "src": "5543:78:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5609:3:39", - "nodeType": "YulIdentifier", - "src": "5609:3:39" - }, - { - "name": "length", - "nativeSrc": "5614:6:39", - "nodeType": "YulIdentifier", - "src": "5614:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "5550:58:39", - "nodeType": "YulIdentifier", - "src": "5550:58:39" - }, - "nativeSrc": "5550:71:39", - "nodeType": "YulFunctionCall", - "src": "5550:71:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5543:3:39", - "nodeType": "YulIdentifier", - "src": "5543:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5669:5:39", - "nodeType": "YulIdentifier", - "src": "5669:5:39" - }, - { - "kind": "number", - "nativeSrc": "5676:4:39", - "nodeType": "YulLiteral", - "src": "5676:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5665:3:39", - "nodeType": "YulIdentifier", - "src": "5665:3:39" - }, - "nativeSrc": "5665:16:39", - "nodeType": "YulFunctionCall", - "src": "5665:16:39" - }, - { - "name": "pos", - "nativeSrc": "5683:3:39", - "nodeType": "YulIdentifier", - "src": "5683:3:39" - }, - { - "name": "length", - "nativeSrc": "5688:6:39", - "nodeType": "YulIdentifier", - "src": "5688:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5630:34:39", - "nodeType": "YulIdentifier", - "src": "5630:34:39" - }, - "nativeSrc": "5630:65:39", - "nodeType": "YulFunctionCall", - "src": "5630:65:39" - }, - "nativeSrc": "5630:65:39", - "nodeType": "YulExpressionStatement", - "src": "5630:65:39" - }, - { - "nativeSrc": "5704:46:39", - "nodeType": "YulAssignment", - "src": "5704:46:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5715:3:39", - "nodeType": "YulIdentifier", - "src": "5715:3:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "5742:6:39", - "nodeType": "YulIdentifier", - "src": "5742:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "5720:21:39", - "nodeType": "YulIdentifier", - "src": "5720:21:39" - }, - "nativeSrc": "5720:29:39", - "nodeType": "YulFunctionCall", - "src": "5720:29:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5711:3:39", - "nodeType": "YulIdentifier", - "src": "5711:3:39" - }, - "nativeSrc": "5711:39:39", - "nodeType": "YulFunctionCall", - "src": "5711:39:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5704:3:39", - "nodeType": "YulIdentifier", - "src": "5704:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nativeSrc": "5379:377:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5452:5:39", - "nodeType": "YulTypedName", - "src": "5452:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5459:3:39", - "nodeType": "YulTypedName", - "src": "5459:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5467:3:39", - "nodeType": "YulTypedName", - "src": "5467:3:39", - "type": "" - } - ], - "src": "5379:377:39" - }, - { - "body": { - "nativeSrc": "5880:195:39", - "nodeType": "YulBlock", - "src": "5880:195:39", - "statements": [ - { - "nativeSrc": "5890:26:39", - "nodeType": "YulAssignment", - "src": "5890:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5902:9:39", - "nodeType": "YulIdentifier", - "src": "5902:9:39" - }, - { - "kind": "number", - "nativeSrc": "5913:2:39", - "nodeType": "YulLiteral", - "src": "5913:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5898:3:39", - "nodeType": "YulIdentifier", - "src": "5898:3:39" - }, - "nativeSrc": "5898:18:39", - "nodeType": "YulFunctionCall", - "src": "5898:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5890:4:39", - "nodeType": "YulIdentifier", - "src": "5890:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5937:9:39", - "nodeType": "YulIdentifier", - "src": "5937:9:39" - }, - { - "kind": "number", - "nativeSrc": "5948:1:39", - "nodeType": "YulLiteral", - "src": "5948:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5933:3:39", - "nodeType": "YulIdentifier", - "src": "5933:3:39" - }, - "nativeSrc": "5933:17:39", - "nodeType": "YulFunctionCall", - "src": "5933:17:39" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "5956:4:39", - "nodeType": "YulIdentifier", - "src": "5956:4:39" - }, - { - "name": "headStart", - "nativeSrc": "5962:9:39", - "nodeType": "YulIdentifier", - "src": "5962:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5952:3:39", - "nodeType": "YulIdentifier", - "src": "5952:3:39" - }, - "nativeSrc": "5952:20:39", - "nodeType": "YulFunctionCall", - "src": "5952:20:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5926:6:39", - "nodeType": "YulIdentifier", - "src": "5926:6:39" - }, - "nativeSrc": "5926:47:39", - "nodeType": "YulFunctionCall", - "src": "5926:47:39" - }, - "nativeSrc": "5926:47:39", - "nodeType": "YulExpressionStatement", - "src": "5926:47:39" - }, - { - "nativeSrc": "5982:86:39", - "nodeType": "YulAssignment", - "src": "5982:86:39", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6054:6:39", - "nodeType": "YulIdentifier", - "src": "6054:6:39" - }, - { - "name": "tail", - "nativeSrc": "6063:4:39", - "nodeType": "YulIdentifier", - "src": "6063:4:39" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nativeSrc": "5990:63:39", - "nodeType": "YulIdentifier", - "src": "5990:63:39" - }, - "nativeSrc": "5990:78:39", - "nodeType": "YulFunctionCall", - "src": "5990:78:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5982:4:39", - "nodeType": "YulIdentifier", - "src": "5982:4:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "5762:313:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5852:9:39", - "nodeType": "YulTypedName", - "src": "5852:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5864:6:39", - "nodeType": "YulTypedName", - "src": "5864:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5875:4:39", - "nodeType": "YulTypedName", - "src": "5875:4:39", - "type": "" - } - ], - "src": "5762:313:39" - }, - { - "body": { - "nativeSrc": "6147:263:39", - "nodeType": "YulBlock", - "src": "6147:263:39", - "statements": [ - { - "body": { - "nativeSrc": "6193:83:39", - "nodeType": "YulBlock", - "src": "6193:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "6195:77:39", - "nodeType": "YulIdentifier", - "src": "6195:77:39" - }, - "nativeSrc": "6195:79:39", - "nodeType": "YulFunctionCall", - "src": "6195:79:39" - }, - "nativeSrc": "6195:79:39", - "nodeType": "YulExpressionStatement", - "src": "6195:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6168:7:39", - "nodeType": "YulIdentifier", - "src": "6168:7:39" - }, - { - "name": "headStart", - "nativeSrc": "6177:9:39", - "nodeType": "YulIdentifier", - "src": "6177:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6164:3:39", - "nodeType": "YulIdentifier", - "src": "6164:3:39" - }, - "nativeSrc": "6164:23:39", - "nodeType": "YulFunctionCall", - "src": "6164:23:39" - }, - { - "kind": "number", - "nativeSrc": "6189:2:39", - "nodeType": "YulLiteral", - "src": "6189:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6160:3:39", - "nodeType": "YulIdentifier", - "src": "6160:3:39" - }, - "nativeSrc": "6160:32:39", - "nodeType": "YulFunctionCall", - "src": "6160:32:39" - }, - "nativeSrc": "6157:119:39", - "nodeType": "YulIf", - "src": "6157:119:39" - }, - { - "nativeSrc": "6286:117:39", - "nodeType": "YulBlock", - "src": "6286:117:39", - "statements": [ - { - "nativeSrc": "6301:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6301:15:39", - "value": { - "kind": "number", - "nativeSrc": "6315:1:39", - "nodeType": "YulLiteral", - "src": "6315:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6305:6:39", - "nodeType": "YulTypedName", - "src": "6305:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6330:63:39", - "nodeType": "YulAssignment", - "src": "6330:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6365:9:39", - "nodeType": "YulIdentifier", - "src": "6365:9:39" - }, - { - "name": "offset", - "nativeSrc": "6376:6:39", - "nodeType": "YulIdentifier", - "src": "6376:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6361:3:39", - "nodeType": "YulIdentifier", - "src": "6361:3:39" - }, - "nativeSrc": "6361:22:39", - "nodeType": "YulFunctionCall", - "src": "6361:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6385:7:39", - "nodeType": "YulIdentifier", - "src": "6385:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6340:20:39", - "nodeType": "YulIdentifier", - "src": "6340:20:39" - }, - "nativeSrc": "6340:53:39", - "nodeType": "YulFunctionCall", - "src": "6340:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6330:6:39", - "nodeType": "YulIdentifier", - "src": "6330:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "6081:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6117:9:39", - "nodeType": "YulTypedName", - "src": "6117:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "6128:7:39", - "nodeType": "YulTypedName", - "src": "6128:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "6140:6:39", - "nodeType": "YulTypedName", - "src": "6140:6:39", - "type": "" - } - ], - "src": "6081:329:39" - }, - { - "body": { - "nativeSrc": "6474:40:39", - "nodeType": "YulBlock", - "src": "6474:40:39", - "statements": [ - { - "nativeSrc": "6485:22:39", - "nodeType": "YulAssignment", - "src": "6485:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6501:5:39", - "nodeType": "YulIdentifier", - "src": "6501:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "6495:5:39", - "nodeType": "YulIdentifier", - "src": "6495:5:39" - }, - "nativeSrc": "6495:12:39", - "nodeType": "YulFunctionCall", - "src": "6495:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "6485:6:39", - "nodeType": "YulIdentifier", - "src": "6485:6:39" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "6416:98:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "6457:5:39", - "nodeType": "YulTypedName", - "src": "6457:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "6467:6:39", - "nodeType": "YulTypedName", - "src": "6467:6:39", - "type": "" - } - ], - "src": "6416:98:39" - }, - { - "body": { - "nativeSrc": "6615:73:39", - "nodeType": "YulBlock", - "src": "6615:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6632:3:39", - "nodeType": "YulIdentifier", - "src": "6632:3:39" - }, - { - "name": "length", - "nativeSrc": "6637:6:39", - "nodeType": "YulIdentifier", - "src": "6637:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6625:6:39", - "nodeType": "YulIdentifier", - "src": "6625:6:39" - }, - "nativeSrc": "6625:19:39", - "nodeType": "YulFunctionCall", - "src": "6625:19:39" - }, - "nativeSrc": "6625:19:39", - "nodeType": "YulExpressionStatement", - "src": "6625:19:39" - }, - { - "nativeSrc": "6653:29:39", - "nodeType": "YulAssignment", - "src": "6653:29:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6672:3:39", - "nodeType": "YulIdentifier", - "src": "6672:3:39" - }, - { - "kind": "number", - "nativeSrc": "6677:4:39", - "nodeType": "YulLiteral", - "src": "6677:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6668:3:39", - "nodeType": "YulIdentifier", - "src": "6668:3:39" - }, - "nativeSrc": "6668:14:39", - "nodeType": "YulFunctionCall", - "src": "6668:14:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "6653:11:39", - "nodeType": "YulIdentifier", - "src": "6653:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nativeSrc": "6520:168:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "6587:3:39", - "nodeType": "YulTypedName", - "src": "6587:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "6592:6:39", - "nodeType": "YulTypedName", - "src": "6592:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "6603:11:39", - "nodeType": "YulTypedName", - "src": "6603:11:39", - "type": "" - } - ], - "src": "6520:168:39" - }, - { - "body": { - "nativeSrc": "6784:283:39", - "nodeType": "YulBlock", - "src": "6784:283:39", - "statements": [ - { - "nativeSrc": "6794:52:39", - "nodeType": "YulVariableDeclaration", - "src": "6794:52:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6840:5:39", - "nodeType": "YulIdentifier", - "src": "6840:5:39" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "6808:31:39", - "nodeType": "YulIdentifier", - "src": "6808:31:39" - }, - "nativeSrc": "6808:38:39", - "nodeType": "YulFunctionCall", - "src": "6808:38:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "6798:6:39", - "nodeType": "YulTypedName", - "src": "6798:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6855:77:39", - "nodeType": "YulAssignment", - "src": "6855:77:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6920:3:39", - "nodeType": "YulIdentifier", - "src": "6920:3:39" - }, - { - "name": "length", - "nativeSrc": "6925:6:39", - "nodeType": "YulIdentifier", - "src": "6925:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nativeSrc": "6862:57:39", - "nodeType": "YulIdentifier", - "src": "6862:57:39" - }, - "nativeSrc": "6862:70:39", - "nodeType": "YulFunctionCall", - "src": "6862:70:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "6855:3:39", - "nodeType": "YulIdentifier", - "src": "6855:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "6980:5:39", - "nodeType": "YulIdentifier", - "src": "6980:5:39" - }, - { - "kind": "number", - "nativeSrc": "6987:4:39", - "nodeType": "YulLiteral", - "src": "6987:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6976:3:39", - "nodeType": "YulIdentifier", - "src": "6976:3:39" - }, - "nativeSrc": "6976:16:39", - "nodeType": "YulFunctionCall", - "src": "6976:16:39" - }, - { - "name": "pos", - "nativeSrc": "6994:3:39", - "nodeType": "YulIdentifier", - "src": "6994:3:39" - }, - { - "name": "length", - "nativeSrc": "6999:6:39", - "nodeType": "YulIdentifier", - "src": "6999:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "6941:34:39", - "nodeType": "YulIdentifier", - "src": "6941:34:39" - }, - "nativeSrc": "6941:65:39", - "nodeType": "YulFunctionCall", - "src": "6941:65:39" - }, - "nativeSrc": "6941:65:39", - "nodeType": "YulExpressionStatement", - "src": "6941:65:39" - }, - { - "nativeSrc": "7015:46:39", - "nodeType": "YulAssignment", - "src": "7015:46:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7026:3:39", - "nodeType": "YulIdentifier", - "src": "7026:3:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "7053:6:39", - "nodeType": "YulIdentifier", - "src": "7053:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "7031:21:39", - "nodeType": "YulIdentifier", - "src": "7031:21:39" - }, - "nativeSrc": "7031:29:39", - "nodeType": "YulFunctionCall", - "src": "7031:29:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7022:3:39", - "nodeType": "YulIdentifier", - "src": "7022:3:39" - }, - "nativeSrc": "7022:39:39", - "nodeType": "YulFunctionCall", - "src": "7022:39:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "7015:3:39", - "nodeType": "YulIdentifier", - "src": "7015:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "6694:373:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "6765:5:39", - "nodeType": "YulTypedName", - "src": "6765:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "6772:3:39", - "nodeType": "YulTypedName", - "src": "6772:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "6780:3:39", - "nodeType": "YulTypedName", - "src": "6780:3:39", - "type": "" - } - ], - "src": "6694:373:39" - }, - { - "body": { - "nativeSrc": "7217:275:39", - "nodeType": "YulBlock", - "src": "7217:275:39", - "statements": [ - { - "nativeSrc": "7227:26:39", - "nodeType": "YulAssignment", - "src": "7227:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7239:9:39", - "nodeType": "YulIdentifier", - "src": "7239:9:39" - }, - { - "kind": "number", - "nativeSrc": "7250:2:39", - "nodeType": "YulLiteral", - "src": "7250:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7235:3:39", - "nodeType": "YulIdentifier", - "src": "7235:3:39" - }, - "nativeSrc": "7235:18:39", - "nodeType": "YulFunctionCall", - "src": "7235:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7227:4:39", - "nodeType": "YulIdentifier", - "src": "7227:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7307:6:39", - "nodeType": "YulIdentifier", - "src": "7307:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7320:9:39", - "nodeType": "YulIdentifier", - "src": "7320:9:39" - }, - { - "kind": "number", - "nativeSrc": "7331:1:39", - "nodeType": "YulLiteral", - "src": "7331:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7316:3:39", - "nodeType": "YulIdentifier", - "src": "7316:3:39" - }, - "nativeSrc": "7316:17:39", - "nodeType": "YulFunctionCall", - "src": "7316:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "7263:43:39", - "nodeType": "YulIdentifier", - "src": "7263:43:39" - }, - "nativeSrc": "7263:71:39", - "nodeType": "YulFunctionCall", - "src": "7263:71:39" - }, - "nativeSrc": "7263:71:39", - "nodeType": "YulExpressionStatement", - "src": "7263:71:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7355:9:39", - "nodeType": "YulIdentifier", - "src": "7355:9:39" - }, - { - "kind": "number", - "nativeSrc": "7366:2:39", - "nodeType": "YulLiteral", - "src": "7366:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7351:3:39", - "nodeType": "YulIdentifier", - "src": "7351:3:39" - }, - "nativeSrc": "7351:18:39", - "nodeType": "YulFunctionCall", - "src": "7351:18:39" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "7375:4:39", - "nodeType": "YulIdentifier", - "src": "7375:4:39" - }, - { - "name": "headStart", - "nativeSrc": "7381:9:39", - "nodeType": "YulIdentifier", - "src": "7381:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7371:3:39", - "nodeType": "YulIdentifier", - "src": "7371:3:39" - }, - "nativeSrc": "7371:20:39", - "nodeType": "YulFunctionCall", - "src": "7371:20:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7344:6:39", - "nodeType": "YulIdentifier", - "src": "7344:6:39" - }, - "nativeSrc": "7344:48:39", - "nodeType": "YulFunctionCall", - "src": "7344:48:39" - }, - "nativeSrc": "7344:48:39", - "nodeType": "YulExpressionStatement", - "src": "7344:48:39" - }, - { - "nativeSrc": "7401:84:39", - "nodeType": "YulAssignment", - "src": "7401:84:39", - "value": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "7471:6:39", - "nodeType": "YulIdentifier", - "src": "7471:6:39" - }, - { - "name": "tail", - "nativeSrc": "7480:4:39", - "nodeType": "YulIdentifier", - "src": "7480:4:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "7409:61:39", - "nodeType": "YulIdentifier", - "src": "7409:61:39" - }, - "nativeSrc": "7409:76:39", - "nodeType": "YulFunctionCall", - "src": "7409:76:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7401:4:39", - "nodeType": "YulIdentifier", - "src": "7401:4:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "7073:419:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7181:9:39", - "nodeType": "YulTypedName", - "src": "7181:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7193:6:39", - "nodeType": "YulTypedName", - "src": "7193:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7201:6:39", - "nodeType": "YulTypedName", - "src": "7201:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7212:4:39", - "nodeType": "YulTypedName", - "src": "7212:4:39", - "type": "" - } - ], - "src": "7073:419:39" - } - ] - }, - "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_$3014(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014(value) {\n if iszero(eq(value, cleanup_t_contract$_ITransparentUpgradeableProxy_$3014(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_ITransparentUpgradeableProxy_$3014(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014(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_$3014t_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_$3014(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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "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 0x27 0xB5 PC 0xE0 0xEF JUMPDEST DUP7 0x21 BLOCKHASH PUSH15 0x87E0A379C68E322FC4690410766900 SWAP2 0xB2 PUSH25 0x3BCA57C964736F6C634300081C003300000000000000000000 ", - "sourceMap": "502:1462:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:101:8;;;;;;;;;;;;;:::i;:::-;;1638:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1717:245:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1187: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;1717:245:17:-;1531:13:8;:11;:13::i;:::-;1893:5:17::1;:22;;;1923:9;1934:14;1950:4;1893:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;1717:245:::0;;;:::o;1187: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:39:-;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,address)` and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called, while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string. If the getter returns `\\\"5.0.0\\\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third 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\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@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\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"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": "newImplementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "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\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"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\":{\"upgradeToAndCall(address,bytes)\":{\"details\":\"See {UUPSUpgradeable-upgradeToAndCall}\"}},\"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\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@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\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"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": "FailedCall", - "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 - }, - "@_3055": { - "entryPoint": null, - "id": 3055, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@_checkNonPayable_2897": { - "entryPoint": 776, - "id": 2897, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_proxyAdmin_3064": { - "entryPoint": 329, - "id": 3064, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_revert_3386": { - "entryPoint": 1322, - "id": 3386, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setAdmin_2761": { - "entryPoint": 930, - "id": 2761, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setImplementation_2677": { - "entryPoint": 427, - "id": 2677, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@changeAdmin_2780": { - "entryPoint": 339, - "id": 2780, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@functionDelegateCall_3304": { - "entryPoint": 638, - "id": 3304, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@getAddressSlot_3643": { - "entryPoint": 1163, - "id": 3643, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getAdmin_2730": { - "entryPoint": 837, - "id": 2730, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@upgradeToAndCall_2713": { - "entryPoint": 196, - "id": 2713, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@verifyCallResultFromTarget_3344": { - "entryPoint": 1173, - "id": 3344, - "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:39", - "nodeType": "YulBlock", - "src": "0:5637:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "934:28:39", - "nodeType": "YulBlock", - "src": "934:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "951:1:39", - "nodeType": "YulLiteral", - "src": "951:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "954:1:39", - "nodeType": "YulLiteral", - "src": "954:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "944:6:39", - "nodeType": "YulIdentifier", - "src": "944:6:39" - }, - "nativeSrc": "944:12:39", - "nodeType": "YulFunctionCall", - "src": "944:12:39" - }, - "nativeSrc": "944:12:39", - "nodeType": "YulExpressionStatement", - "src": "944:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "845:117:39", - "nodeType": "YulFunctionDefinition", - "src": "845:117:39" - }, - { - "body": { - "nativeSrc": "1057:28:39", - "nodeType": "YulBlock", - "src": "1057:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1074:1:39", - "nodeType": "YulLiteral", - "src": "1074:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1077:1:39", - "nodeType": "YulLiteral", - "src": "1077:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1067:6:39", - "nodeType": "YulIdentifier", - "src": "1067:6:39" - }, - "nativeSrc": "1067:12:39", - "nodeType": "YulFunctionCall", - "src": "1067:12:39" - }, - "nativeSrc": "1067:12:39", - "nodeType": "YulExpressionStatement", - "src": "1067:12:39" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "968:117:39", - "nodeType": "YulFunctionDefinition", - "src": "968:117:39" - }, - { - "body": { - "nativeSrc": "1139:54:39", - "nodeType": "YulBlock", - "src": "1139:54:39", - "statements": [ - { - "nativeSrc": "1149:38:39", - "nodeType": "YulAssignment", - "src": "1149:38:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1167:5:39", - "nodeType": "YulIdentifier", - "src": "1167:5:39" - }, - { - "kind": "number", - "nativeSrc": "1174:2:39", - "nodeType": "YulLiteral", - "src": "1174:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1163:3:39", - "nodeType": "YulIdentifier", - "src": "1163:3:39" - }, - "nativeSrc": "1163:14:39", - "nodeType": "YulFunctionCall", - "src": "1163:14:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1183:2:39", - "nodeType": "YulLiteral", - "src": "1183:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "1179:3:39", - "nodeType": "YulIdentifier", - "src": "1179:3:39" - }, - "nativeSrc": "1179:7:39", - "nodeType": "YulFunctionCall", - "src": "1179:7:39" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1159:3:39", - "nodeType": "YulIdentifier", - "src": "1159:3:39" - }, - "nativeSrc": "1159:28:39", - "nodeType": "YulFunctionCall", - "src": "1159:28:39" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "1149:6:39", - "nodeType": "YulIdentifier", - "src": "1149:6:39" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "1091:102:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1122:5:39", - "nodeType": "YulTypedName", - "src": "1122:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "1132:6:39", - "nodeType": "YulTypedName", - "src": "1132:6:39", - "type": "" - } - ], - "src": "1091:102:39" - }, - { - "body": { - "nativeSrc": "1227:152:39", - "nodeType": "YulBlock", - "src": "1227:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1244:1:39", - "nodeType": "YulLiteral", - "src": "1244:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1247:77:39", - "nodeType": "YulLiteral", - "src": "1247:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1237:6:39", - "nodeType": "YulIdentifier", - "src": "1237:6:39" - }, - "nativeSrc": "1237:88:39", - "nodeType": "YulFunctionCall", - "src": "1237:88:39" - }, - "nativeSrc": "1237:88:39", - "nodeType": "YulExpressionStatement", - "src": "1237:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1341:1:39", - "nodeType": "YulLiteral", - "src": "1341:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "1344:4:39", - "nodeType": "YulLiteral", - "src": "1344:4:39", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1334:6:39", - "nodeType": "YulIdentifier", - "src": "1334:6:39" - }, - "nativeSrc": "1334:15:39", - "nodeType": "YulFunctionCall", - "src": "1334:15:39" - }, - "nativeSrc": "1334:15:39", - "nodeType": "YulExpressionStatement", - "src": "1334:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1365:1:39", - "nodeType": "YulLiteral", - "src": "1365:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1368:4:39", - "nodeType": "YulLiteral", - "src": "1368:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1358:6:39", - "nodeType": "YulIdentifier", - "src": "1358:6:39" - }, - "nativeSrc": "1358:15:39", - "nodeType": "YulFunctionCall", - "src": "1358:15:39" - }, - "nativeSrc": "1358:15:39", - "nodeType": "YulExpressionStatement", - "src": "1358:15:39" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "1199:180:39", - "nodeType": "YulFunctionDefinition", - "src": "1199:180:39" - }, - { - "body": { - "nativeSrc": "1428:238:39", - "nodeType": "YulBlock", - "src": "1428:238:39", - "statements": [ - { - "nativeSrc": "1438:58:39", - "nodeType": "YulVariableDeclaration", - "src": "1438:58:39", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1460:6:39", - "nodeType": "YulIdentifier", - "src": "1460:6:39" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "1490:4:39", - "nodeType": "YulIdentifier", - "src": "1490:4:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "1468:21:39", - "nodeType": "YulIdentifier", - "src": "1468:21:39" - }, - "nativeSrc": "1468:27:39", - "nodeType": "YulFunctionCall", - "src": "1468:27:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1456:3:39", - "nodeType": "YulIdentifier", - "src": "1456:3:39" - }, - "nativeSrc": "1456:40:39", - "nodeType": "YulFunctionCall", - "src": "1456:40:39" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "1442:10:39", - "nodeType": "YulTypedName", - "src": "1442:10:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "1607:22:39", - "nodeType": "YulBlock", - "src": "1607:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "1609:16:39", - "nodeType": "YulIdentifier", - "src": "1609:16:39" - }, - "nativeSrc": "1609:18:39", - "nodeType": "YulFunctionCall", - "src": "1609:18:39" - }, - "nativeSrc": "1609:18:39", - "nodeType": "YulExpressionStatement", - "src": "1609:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "1550:10:39", - "nodeType": "YulIdentifier", - "src": "1550:10:39" - }, - { - "kind": "number", - "nativeSrc": "1562:18:39", - "nodeType": "YulLiteral", - "src": "1562:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "1547:2:39", - "nodeType": "YulIdentifier", - "src": "1547:2:39" - }, - "nativeSrc": "1547:34:39", - "nodeType": "YulFunctionCall", - "src": "1547:34:39" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "1586:10:39", - "nodeType": "YulIdentifier", - "src": "1586:10:39" - }, - { - "name": "memPtr", - "nativeSrc": "1598:6:39", - "nodeType": "YulIdentifier", - "src": "1598:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "1583:2:39", - "nodeType": "YulIdentifier", - "src": "1583:2:39" - }, - "nativeSrc": "1583:22:39", - "nodeType": "YulFunctionCall", - "src": "1583:22:39" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "1544:2:39", - "nodeType": "YulIdentifier", - "src": "1544:2:39" - }, - "nativeSrc": "1544:62:39", - "nodeType": "YulFunctionCall", - "src": "1544:62:39" - }, - "nativeSrc": "1541:88:39", - "nodeType": "YulIf", - "src": "1541:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1645:2:39", - "nodeType": "YulLiteral", - "src": "1645:2:39", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "1649:10:39", - "nodeType": "YulIdentifier", - "src": "1649:10:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1638:6:39", - "nodeType": "YulIdentifier", - "src": "1638:6:39" - }, - "nativeSrc": "1638:22:39", - "nodeType": "YulFunctionCall", - "src": "1638:22:39" - }, - "nativeSrc": "1638:22:39", - "nodeType": "YulExpressionStatement", - "src": "1638:22:39" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "1385:281:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "1414:6:39", - "nodeType": "YulTypedName", - "src": "1414:6:39", - "type": "" - }, - { - "name": "size", - "nativeSrc": "1422:4:39", - "nodeType": "YulTypedName", - "src": "1422:4:39", - "type": "" - } - ], - "src": "1385:281:39" - }, - { - "body": { - "nativeSrc": "1713:88:39", - "nodeType": "YulBlock", - "src": "1713:88:39", - "statements": [ - { - "nativeSrc": "1723:30:39", - "nodeType": "YulAssignment", - "src": "1723:30:39", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "1733:18:39", - "nodeType": "YulIdentifier", - "src": "1733:18:39" - }, - "nativeSrc": "1733:20:39", - "nodeType": "YulFunctionCall", - "src": "1733:20:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "1723:6:39", - "nodeType": "YulIdentifier", - "src": "1723:6:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1782:6:39", - "nodeType": "YulIdentifier", - "src": "1782:6:39" - }, - { - "name": "size", - "nativeSrc": "1790:4:39", - "nodeType": "YulIdentifier", - "src": "1790:4:39" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "1762:19:39", - "nodeType": "YulIdentifier", - "src": "1762:19:39" - }, - "nativeSrc": "1762:33:39", - "nodeType": "YulFunctionCall", - "src": "1762:33:39" - }, - "nativeSrc": "1762:33:39", - "nodeType": "YulExpressionStatement", - "src": "1762:33:39" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "1672:129:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "1697:4:39", - "nodeType": "YulTypedName", - "src": "1697:4:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "1706:6:39", - "nodeType": "YulTypedName", - "src": "1706:6:39", - "type": "" - } - ], - "src": "1672:129:39" - }, - { - "body": { - "nativeSrc": "1873:241:39", - "nodeType": "YulBlock", - "src": "1873:241:39", - "statements": [ - { - "body": { - "nativeSrc": "1978:22:39", - "nodeType": "YulBlock", - "src": "1978:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "1980:16:39", - "nodeType": "YulIdentifier", - "src": "1980:16:39" - }, - "nativeSrc": "1980:18:39", - "nodeType": "YulFunctionCall", - "src": "1980:18:39" - }, - "nativeSrc": "1980:18:39", - "nodeType": "YulExpressionStatement", - "src": "1980:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "1950:6:39", - "nodeType": "YulIdentifier", - "src": "1950:6:39" - }, - { - "kind": "number", - "nativeSrc": "1958:18:39", - "nodeType": "YulLiteral", - "src": "1958:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "1947:2:39", - "nodeType": "YulIdentifier", - "src": "1947:2:39" - }, - "nativeSrc": "1947:30:39", - "nodeType": "YulFunctionCall", - "src": "1947:30:39" - }, - "nativeSrc": "1944:56:39", - "nodeType": "YulIf", - "src": "1944:56:39" - }, - { - "nativeSrc": "2010:37:39", - "nodeType": "YulAssignment", - "src": "2010:37:39", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2040:6:39", - "nodeType": "YulIdentifier", - "src": "2040:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2018:21:39", - "nodeType": "YulIdentifier", - "src": "2018:21:39" - }, - "nativeSrc": "2018:29:39", - "nodeType": "YulFunctionCall", - "src": "2018:29:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2010:4:39", - "nodeType": "YulIdentifier", - "src": "2010:4:39" - } - ] - }, - { - "nativeSrc": "2084:23:39", - "nodeType": "YulAssignment", - "src": "2084:23:39", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "2096:4:39", - "nodeType": "YulIdentifier", - "src": "2096:4:39" - }, - { - "kind": "number", - "nativeSrc": "2102:4:39", - "nodeType": "YulLiteral", - "src": "2102:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2092:3:39", - "nodeType": "YulIdentifier", - "src": "2092:3:39" - }, - "nativeSrc": "2092:15:39", - "nodeType": "YulFunctionCall", - "src": "2092:15:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2084:4:39", - "nodeType": "YulIdentifier", - "src": "2084:4:39" - } - ] - } - ] - }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "1807:307:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "1857:6:39", - "nodeType": "YulTypedName", - "src": "1857:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "1868:4:39", - "nodeType": "YulTypedName", - "src": "1868:4:39", - "type": "" - } - ], - "src": "1807:307:39" - }, - { - "body": { - "nativeSrc": "2182:186:39", - "nodeType": "YulBlock", - "src": "2182:186:39", - "statements": [ - { - "nativeSrc": "2193:10:39", - "nodeType": "YulVariableDeclaration", - "src": "2193:10:39", - "value": { - "kind": "number", - "nativeSrc": "2202:1:39", - "nodeType": "YulLiteral", - "src": "2202:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "2197:1:39", - "nodeType": "YulTypedName", - "src": "2197:1:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2262:63:39", - "nodeType": "YulBlock", - "src": "2262:63:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2287:3:39", - "nodeType": "YulIdentifier", - "src": "2287:3:39" - }, - { - "name": "i", - "nativeSrc": "2292:1:39", - "nodeType": "YulIdentifier", - "src": "2292:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2283:3:39", - "nodeType": "YulIdentifier", - "src": "2283:3:39" - }, - "nativeSrc": "2283:11:39", - "nodeType": "YulFunctionCall", - "src": "2283:11:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "2306:3:39", - "nodeType": "YulIdentifier", - "src": "2306:3:39" - }, - { - "name": "i", - "nativeSrc": "2311:1:39", - "nodeType": "YulIdentifier", - "src": "2311:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2302:3:39", - "nodeType": "YulIdentifier", - "src": "2302:3:39" - }, - "nativeSrc": "2302:11:39", - "nodeType": "YulFunctionCall", - "src": "2302:11:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "2296:5:39", - "nodeType": "YulIdentifier", - "src": "2296:5:39" - }, - "nativeSrc": "2296:18:39", - "nodeType": "YulFunctionCall", - "src": "2296:18:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2276:6:39", - "nodeType": "YulIdentifier", - "src": "2276:6:39" - }, - "nativeSrc": "2276:39:39", - "nodeType": "YulFunctionCall", - "src": "2276:39:39" - }, - "nativeSrc": "2276:39:39", - "nodeType": "YulExpressionStatement", - "src": "2276:39:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "2223:1:39", - "nodeType": "YulIdentifier", - "src": "2223:1:39" - }, - { - "name": "length", - "nativeSrc": "2226:6:39", - "nodeType": "YulIdentifier", - "src": "2226:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "2220:2:39", - "nodeType": "YulIdentifier", - "src": "2220:2:39" - }, - "nativeSrc": "2220:13:39", - "nodeType": "YulFunctionCall", - "src": "2220:13:39" - }, - "nativeSrc": "2212:113:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "2234:19:39", - "nodeType": "YulBlock", - "src": "2234:19:39", - "statements": [ - { - "nativeSrc": "2236:15:39", - "nodeType": "YulAssignment", - "src": "2236:15:39", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "2245:1:39", - "nodeType": "YulIdentifier", - "src": "2245:1:39" - }, - { - "kind": "number", - "nativeSrc": "2248:2:39", - "nodeType": "YulLiteral", - "src": "2248:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2241:3:39", - "nodeType": "YulIdentifier", - "src": "2241:3:39" - }, - "nativeSrc": "2241:10:39", - "nodeType": "YulFunctionCall", - "src": "2241:10:39" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "2236:1:39", - "nodeType": "YulIdentifier", - "src": "2236:1:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "2216:3:39", - "nodeType": "YulBlock", - "src": "2216:3:39", - "statements": [] - }, - "src": "2212:113:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2345:3:39", - "nodeType": "YulIdentifier", - "src": "2345:3:39" - }, - { - "name": "length", - "nativeSrc": "2350:6:39", - "nodeType": "YulIdentifier", - "src": "2350:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2341:3:39", - "nodeType": "YulIdentifier", - "src": "2341:3:39" - }, - "nativeSrc": "2341:16:39", - "nodeType": "YulFunctionCall", - "src": "2341:16:39" - }, - { - "kind": "number", - "nativeSrc": "2359:1:39", - "nodeType": "YulLiteral", - "src": "2359:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2334:6:39", - "nodeType": "YulIdentifier", - "src": "2334:6:39" - }, - "nativeSrc": "2334:27:39", - "nodeType": "YulFunctionCall", - "src": "2334:27:39" - }, - "nativeSrc": "2334:27:39", - "nodeType": "YulExpressionStatement", - "src": "2334:27:39" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "2120:248:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "2164:3:39", - "nodeType": "YulTypedName", - "src": "2164:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "2169:3:39", - "nodeType": "YulTypedName", - "src": "2169:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2174:6:39", - "nodeType": "YulTypedName", - "src": "2174:6:39", - "type": "" - } - ], - "src": "2120:248:39" - }, - { - "body": { - "nativeSrc": "2468:338:39", - "nodeType": "YulBlock", - "src": "2468:338:39", - "statements": [ - { - "nativeSrc": "2478:74:39", - "nodeType": "YulAssignment", - "src": "2478:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "2544:6:39", - "nodeType": "YulIdentifier", - "src": "2544:6:39" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "2503:40:39", - "nodeType": "YulIdentifier", - "src": "2503:40:39" - }, - "nativeSrc": "2503:48:39", - "nodeType": "YulFunctionCall", - "src": "2503:48:39" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "2487:15:39", - "nodeType": "YulIdentifier", - "src": "2487:15:39" - }, - "nativeSrc": "2487:65:39", - "nodeType": "YulFunctionCall", - "src": "2487:65:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "2478:5:39", - "nodeType": "YulIdentifier", - "src": "2478:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2568:5:39", - "nodeType": "YulIdentifier", - "src": "2568:5:39" - }, - { - "name": "length", - "nativeSrc": "2575:6:39", - "nodeType": "YulIdentifier", - "src": "2575:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2561:6:39", - "nodeType": "YulIdentifier", - "src": "2561:6:39" - }, - "nativeSrc": "2561:21:39", - "nodeType": "YulFunctionCall", - "src": "2561:21:39" - }, - "nativeSrc": "2561:21:39", - "nodeType": "YulExpressionStatement", - "src": "2561:21:39" - }, - { - "nativeSrc": "2591:27:39", - "nodeType": "YulVariableDeclaration", - "src": "2591:27:39", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2606:5:39", - "nodeType": "YulIdentifier", - "src": "2606:5:39" - }, - { - "kind": "number", - "nativeSrc": "2613:4:39", - "nodeType": "YulLiteral", - "src": "2613:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2602:3:39", - "nodeType": "YulIdentifier", - "src": "2602:3:39" - }, - "nativeSrc": "2602:16:39", - "nodeType": "YulFunctionCall", - "src": "2602:16:39" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "2595:3:39", - "nodeType": "YulTypedName", - "src": "2595:3:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2656:83:39", - "nodeType": "YulBlock", - "src": "2656:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "2658:77:39", - "nodeType": "YulIdentifier", - "src": "2658:77:39" - }, - "nativeSrc": "2658:79:39", - "nodeType": "YulFunctionCall", - "src": "2658:79:39" - }, - "nativeSrc": "2658:79:39", - "nodeType": "YulExpressionStatement", - "src": "2658:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "2637:3:39", - "nodeType": "YulIdentifier", - "src": "2637:3:39" - }, - { - "name": "length", - "nativeSrc": "2642:6:39", - "nodeType": "YulIdentifier", - "src": "2642:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2633:3:39", - "nodeType": "YulIdentifier", - "src": "2633:3:39" - }, - "nativeSrc": "2633:16:39", - "nodeType": "YulFunctionCall", - "src": "2633:16:39" - }, - { - "name": "end", - "nativeSrc": "2651:3:39", - "nodeType": "YulIdentifier", - "src": "2651:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2630:2:39", - "nodeType": "YulIdentifier", - "src": "2630:2:39" - }, - "nativeSrc": "2630:25:39", - "nodeType": "YulFunctionCall", - "src": "2630:25:39" - }, - "nativeSrc": "2627:112:39", - "nodeType": "YulIf", - "src": "2627:112:39" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "2783:3:39", - "nodeType": "YulIdentifier", - "src": "2783:3:39" - }, - { - "name": "dst", - "nativeSrc": "2788:3:39", - "nodeType": "YulIdentifier", - "src": "2788:3:39" - }, - { - "name": "length", - "nativeSrc": "2793:6:39", - "nodeType": "YulIdentifier", - "src": "2793:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "2748:34:39", - "nodeType": "YulIdentifier", - "src": "2748:34:39" - }, - "nativeSrc": "2748:52:39", - "nodeType": "YulFunctionCall", - "src": "2748:52:39" - }, - "nativeSrc": "2748:52:39", - "nodeType": "YulExpressionStatement", - "src": "2748:52:39" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "2374:432:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "2441:3:39", - "nodeType": "YulTypedName", - "src": "2441:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2446:6:39", - "nodeType": "YulTypedName", - "src": "2446:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2454:3:39", - "nodeType": "YulTypedName", - "src": "2454:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "2462:5:39", - "nodeType": "YulTypedName", - "src": "2462:5:39", - "type": "" - } - ], - "src": "2374:432:39" - }, - { - "body": { - "nativeSrc": "2897:281:39", - "nodeType": "YulBlock", - "src": "2897:281:39", - "statements": [ - { - "body": { - "nativeSrc": "2946:83:39", - "nodeType": "YulBlock", - "src": "2946:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "2948:77:39", - "nodeType": "YulIdentifier", - "src": "2948:77:39" - }, - "nativeSrc": "2948:79:39", - "nodeType": "YulFunctionCall", - "src": "2948:79:39" - }, - "nativeSrc": "2948:79:39", - "nodeType": "YulExpressionStatement", - "src": "2948:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2925:6:39", - "nodeType": "YulIdentifier", - "src": "2925:6:39" - }, - { - "kind": "number", - "nativeSrc": "2933:4:39", - "nodeType": "YulLiteral", - "src": "2933:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2921:3:39", - "nodeType": "YulIdentifier", - "src": "2921:3:39" - }, - "nativeSrc": "2921:17:39", - "nodeType": "YulFunctionCall", - "src": "2921:17:39" - }, - { - "name": "end", - "nativeSrc": "2940:3:39", - "nodeType": "YulIdentifier", - "src": "2940:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2917:3:39", - "nodeType": "YulIdentifier", - "src": "2917:3:39" - }, - "nativeSrc": "2917:27:39", - "nodeType": "YulFunctionCall", - "src": "2917:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2910:6:39", - "nodeType": "YulIdentifier", - "src": "2910:6:39" - }, - "nativeSrc": "2910:35:39", - "nodeType": "YulFunctionCall", - "src": "2910:35:39" - }, - "nativeSrc": "2907:122:39", - "nodeType": "YulIf", - "src": "2907:122:39" - }, - { - "nativeSrc": "3038:27:39", - "nodeType": "YulVariableDeclaration", - "src": "3038:27:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3058:6:39", - "nodeType": "YulIdentifier", - "src": "3058:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3052:5:39", - "nodeType": "YulIdentifier", - "src": "3052:5:39" - }, - "nativeSrc": "3052:13:39", - "nodeType": "YulFunctionCall", - "src": "3052:13:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "3042:6:39", - "nodeType": "YulTypedName", - "src": "3042:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3074:98:39", - "nodeType": "YulAssignment", - "src": "3074:98:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3145:6:39", - "nodeType": "YulIdentifier", - "src": "3145:6:39" - }, - { - "kind": "number", - "nativeSrc": "3153:4:39", - "nodeType": "YulLiteral", - "src": "3153:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3141:3:39", - "nodeType": "YulIdentifier", - "src": "3141:3:39" - }, - "nativeSrc": "3141:17:39", - "nodeType": "YulFunctionCall", - "src": "3141:17:39" - }, - { - "name": "length", - "nativeSrc": "3160:6:39", - "nodeType": "YulIdentifier", - "src": "3160:6:39" - }, - { - "name": "end", - "nativeSrc": "3168:3:39", - "nodeType": "YulIdentifier", - "src": "3168:3:39" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "3083:57:39", - "nodeType": "YulIdentifier", - "src": "3083:57:39" - }, - "nativeSrc": "3083:89:39", - "nodeType": "YulFunctionCall", - "src": "3083:89:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3074:5:39", - "nodeType": "YulIdentifier", - "src": "3074:5:39" - } - ] - } - ] - }, - "name": "abi_decode_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "2825:353:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2875:6:39", - "nodeType": "YulTypedName", - "src": "2875:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2883:3:39", - "nodeType": "YulTypedName", - "src": "2883:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "2891:5:39", - "nodeType": "YulTypedName", - "src": "2891:5:39", - "type": "" - } - ], - "src": "2825:353:39" - }, - { - "body": { - "nativeSrc": "3304:714:39", - "nodeType": "YulBlock", - "src": "3304:714:39", - "statements": [ - { - "body": { - "nativeSrc": "3350:83:39", - "nodeType": "YulBlock", - "src": "3350:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3352:77:39", - "nodeType": "YulIdentifier", - "src": "3352:77:39" - }, - "nativeSrc": "3352:79:39", - "nodeType": "YulFunctionCall", - "src": "3352:79:39" - }, - "nativeSrc": "3352:79:39", - "nodeType": "YulExpressionStatement", - "src": "3352:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3325:7:39", - "nodeType": "YulIdentifier", - "src": "3325:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3334:9:39", - "nodeType": "YulIdentifier", - "src": "3334:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3321:3:39", - "nodeType": "YulIdentifier", - "src": "3321:3:39" - }, - "nativeSrc": "3321:23:39", - "nodeType": "YulFunctionCall", - "src": "3321:23:39" - }, - { - "kind": "number", - "nativeSrc": "3346:2:39", - "nodeType": "YulLiteral", - "src": "3346:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3317:3:39", - "nodeType": "YulIdentifier", - "src": "3317:3:39" - }, - "nativeSrc": "3317:32:39", - "nodeType": "YulFunctionCall", - "src": "3317:32:39" - }, - "nativeSrc": "3314:119:39", - "nodeType": "YulIf", - "src": "3314:119:39" - }, - { - "nativeSrc": "3443:128:39", - "nodeType": "YulBlock", - "src": "3443:128:39", - "statements": [ - { - "nativeSrc": "3458:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3458:15:39", - "value": { - "kind": "number", - "nativeSrc": "3472:1:39", - "nodeType": "YulLiteral", - "src": "3472:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3462:6:39", - "nodeType": "YulTypedName", - "src": "3462:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3487:74:39", - "nodeType": "YulAssignment", - "src": "3487:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3533:9:39", - "nodeType": "YulIdentifier", - "src": "3533:9:39" - }, - { - "name": "offset", - "nativeSrc": "3544:6:39", - "nodeType": "YulIdentifier", - "src": "3544:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3529:3:39", - "nodeType": "YulIdentifier", - "src": "3529:3:39" - }, - "nativeSrc": "3529:22:39", - "nodeType": "YulFunctionCall", - "src": "3529:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3553:7:39", - "nodeType": "YulIdentifier", - "src": "3553:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "3497:31:39", - "nodeType": "YulIdentifier", - "src": "3497:31:39" - }, - "nativeSrc": "3497:64:39", - "nodeType": "YulFunctionCall", - "src": "3497:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3487:6:39", - "nodeType": "YulIdentifier", - "src": "3487:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3581:129:39", - "nodeType": "YulBlock", - "src": "3581:129:39", - "statements": [ - { - "nativeSrc": "3596:16:39", - "nodeType": "YulVariableDeclaration", - "src": "3596:16:39", - "value": { - "kind": "number", - "nativeSrc": "3610:2:39", - "nodeType": "YulLiteral", - "src": "3610:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3600:6:39", - "nodeType": "YulTypedName", - "src": "3600:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3626:74:39", - "nodeType": "YulAssignment", - "src": "3626:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3672:9:39", - "nodeType": "YulIdentifier", - "src": "3672:9:39" - }, - { - "name": "offset", - "nativeSrc": "3683:6:39", - "nodeType": "YulIdentifier", - "src": "3683:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3668:3:39", - "nodeType": "YulIdentifier", - "src": "3668:3:39" - }, - "nativeSrc": "3668:22:39", - "nodeType": "YulFunctionCall", - "src": "3668:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3692:7:39", - "nodeType": "YulIdentifier", - "src": "3692:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "3636:31:39", - "nodeType": "YulIdentifier", - "src": "3636:31:39" - }, - "nativeSrc": "3636:64:39", - "nodeType": "YulFunctionCall", - "src": "3636:64:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3626:6:39", - "nodeType": "YulIdentifier", - "src": "3626:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3720:291:39", - "nodeType": "YulBlock", - "src": "3720:291:39", - "statements": [ - { - "nativeSrc": "3735:39:39", - "nodeType": "YulVariableDeclaration", - "src": "3735:39:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3759:9:39", - "nodeType": "YulIdentifier", - "src": "3759:9:39" - }, - { - "kind": "number", - "nativeSrc": "3770:2:39", - "nodeType": "YulLiteral", - "src": "3770:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3755:3:39", - "nodeType": "YulIdentifier", - "src": "3755:3:39" - }, - "nativeSrc": "3755:18:39", - "nodeType": "YulFunctionCall", - "src": "3755:18:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3749:5:39", - "nodeType": "YulIdentifier", - "src": "3749:5:39" - }, - "nativeSrc": "3749:25:39", - "nodeType": "YulFunctionCall", - "src": "3749:25:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3739:6:39", - "nodeType": "YulTypedName", - "src": "3739:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3821:83:39", - "nodeType": "YulBlock", - "src": "3821:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "3823:77:39", - "nodeType": "YulIdentifier", - "src": "3823:77:39" - }, - "nativeSrc": "3823:79:39", - "nodeType": "YulFunctionCall", - "src": "3823:79:39" - }, - "nativeSrc": "3823:79:39", - "nodeType": "YulExpressionStatement", - "src": "3823:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3793:6:39", - "nodeType": "YulIdentifier", - "src": "3793:6:39" - }, - { - "kind": "number", - "nativeSrc": "3801:18:39", - "nodeType": "YulLiteral", - "src": "3801:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3790:2:39", - "nodeType": "YulIdentifier", - "src": "3790:2:39" - }, - "nativeSrc": "3790:30:39", - "nodeType": "YulFunctionCall", - "src": "3790:30:39" - }, - "nativeSrc": "3787:117:39", - "nodeType": "YulIf", - "src": "3787:117:39" - }, - { - "nativeSrc": "3918:83:39", - "nodeType": "YulAssignment", - "src": "3918:83:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3973:9:39", - "nodeType": "YulIdentifier", - "src": "3973:9:39" - }, - { - "name": "offset", - "nativeSrc": "3984:6:39", - "nodeType": "YulIdentifier", - "src": "3984:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3969:3:39", - "nodeType": "YulIdentifier", - "src": "3969:3:39" - }, - "nativeSrc": "3969:22:39", - "nodeType": "YulFunctionCall", - "src": "3969:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3993:7:39", - "nodeType": "YulIdentifier", - "src": "3993:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "3928:40:39", - "nodeType": "YulIdentifier", - "src": "3928:40:39" - }, - "nativeSrc": "3928:73:39", - "nodeType": "YulFunctionCall", - "src": "3928:73:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "3918:6:39", - "nodeType": "YulIdentifier", - "src": "3918:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory", - "nativeSrc": "3184:834:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3258:9:39", - "nodeType": "YulTypedName", - "src": "3258:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3269:7:39", - "nodeType": "YulTypedName", - "src": "3269:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3281:6:39", - "nodeType": "YulTypedName", - "src": "3281:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3289:6:39", - "nodeType": "YulTypedName", - "src": "3289:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "3297:6:39", - "nodeType": "YulTypedName", - "src": "3297:6:39", - "type": "" - } - ], - "src": "3184:834:39" - }, - { - "body": { - "nativeSrc": "4089:53:39", - "nodeType": "YulBlock", - "src": "4089:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4106:3:39", - "nodeType": "YulIdentifier", - "src": "4106:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4129:5:39", - "nodeType": "YulIdentifier", - "src": "4129:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "4111:17:39", - "nodeType": "YulIdentifier", - "src": "4111:17:39" - }, - "nativeSrc": "4111:24:39", - "nodeType": "YulFunctionCall", - "src": "4111:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4099:6:39", - "nodeType": "YulIdentifier", - "src": "4099:6:39" - }, - "nativeSrc": "4099:37:39", - "nodeType": "YulFunctionCall", - "src": "4099:37:39" - }, - "nativeSrc": "4099:37:39", - "nodeType": "YulExpressionStatement", - "src": "4099:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4024:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4077:5:39", - "nodeType": "YulTypedName", - "src": "4077:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4084:3:39", - "nodeType": "YulTypedName", - "src": "4084:3:39", - "type": "" - } - ], - "src": "4024:118:39" - }, - { - "body": { - "nativeSrc": "4246:124:39", - "nodeType": "YulBlock", - "src": "4246:124:39", - "statements": [ - { - "nativeSrc": "4256:26:39", - "nodeType": "YulAssignment", - "src": "4256:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4268:9:39", - "nodeType": "YulIdentifier", - "src": "4268:9:39" - }, - { - "kind": "number", - "nativeSrc": "4279:2:39", - "nodeType": "YulLiteral", - "src": "4279:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4264:3:39", - "nodeType": "YulIdentifier", - "src": "4264:3:39" - }, - "nativeSrc": "4264:18:39", - "nodeType": "YulFunctionCall", - "src": "4264:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4256:4:39", - "nodeType": "YulIdentifier", - "src": "4256:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4336:6:39", - "nodeType": "YulIdentifier", - "src": "4336:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4349:9:39", - "nodeType": "YulIdentifier", - "src": "4349:9:39" - }, - { - "kind": "number", - "nativeSrc": "4360:1:39", - "nodeType": "YulLiteral", - "src": "4360:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4345:3:39", - "nodeType": "YulIdentifier", - "src": "4345:3:39" - }, - "nativeSrc": "4345:17:39", - "nodeType": "YulFunctionCall", - "src": "4345:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4292:43:39", - "nodeType": "YulIdentifier", - "src": "4292:43:39" - }, - "nativeSrc": "4292:71:39", - "nodeType": "YulFunctionCall", - "src": "4292:71:39" - }, - "nativeSrc": "4292:71:39", - "nodeType": "YulExpressionStatement", - "src": "4292:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "4148:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4218:9:39", - "nodeType": "YulTypedName", - "src": "4218:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4230:6:39", - "nodeType": "YulTypedName", - "src": "4230:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4241:4:39", - "nodeType": "YulTypedName", - "src": "4241:4:39", - "type": "" - } - ], - "src": "4148:222:39" - }, - { - "body": { - "nativeSrc": "4502:206:39", - "nodeType": "YulBlock", - "src": "4502:206:39", - "statements": [ - { - "nativeSrc": "4512:26:39", - "nodeType": "YulAssignment", - "src": "4512:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4524:9:39", - "nodeType": "YulIdentifier", - "src": "4524:9:39" - }, - { - "kind": "number", - "nativeSrc": "4535:2:39", - "nodeType": "YulLiteral", - "src": "4535:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4520:3:39", - "nodeType": "YulIdentifier", - "src": "4520:3:39" - }, - "nativeSrc": "4520:18:39", - "nodeType": "YulFunctionCall", - "src": "4520:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4512:4:39", - "nodeType": "YulIdentifier", - "src": "4512:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4592:6:39", - "nodeType": "YulIdentifier", - "src": "4592:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4605:9:39", - "nodeType": "YulIdentifier", - "src": "4605:9:39" - }, - { - "kind": "number", - "nativeSrc": "4616:1:39", - "nodeType": "YulLiteral", - "src": "4616:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4601:3:39", - "nodeType": "YulIdentifier", - "src": "4601:3:39" - }, - "nativeSrc": "4601:17:39", - "nodeType": "YulFunctionCall", - "src": "4601:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4548:43:39", - "nodeType": "YulIdentifier", - "src": "4548:43:39" - }, - "nativeSrc": "4548:71:39", - "nodeType": "YulFunctionCall", - "src": "4548:71:39" - }, - "nativeSrc": "4548:71:39", - "nodeType": "YulExpressionStatement", - "src": "4548:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "4673:6:39", - "nodeType": "YulIdentifier", - "src": "4673:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4686:9:39", - "nodeType": "YulIdentifier", - "src": "4686:9:39" - }, - { - "kind": "number", - "nativeSrc": "4697:2:39", - "nodeType": "YulLiteral", - "src": "4697:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4682:3:39", - "nodeType": "YulIdentifier", - "src": "4682:3:39" - }, - "nativeSrc": "4682:18:39", - "nodeType": "YulFunctionCall", - "src": "4682:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4629:43:39", - "nodeType": "YulIdentifier", - "src": "4629:43:39" - }, - "nativeSrc": "4629:72:39", - "nodeType": "YulFunctionCall", - "src": "4629:72:39" - }, - "nativeSrc": "4629:72:39", - "nodeType": "YulExpressionStatement", - "src": "4629:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", - "nativeSrc": "4376:332:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4466:9:39", - "nodeType": "YulTypedName", - "src": "4466:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4478:6:39", - "nodeType": "YulTypedName", - "src": "4478:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4486:6:39", - "nodeType": "YulTypedName", - "src": "4486:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4497:4:39", - "nodeType": "YulTypedName", - "src": "4497:4:39", - "type": "" - } - ], - "src": "4376:332:39" - }, - { - "body": { - "nativeSrc": "4772:40:39", - "nodeType": "YulBlock", - "src": "4772:40:39", - "statements": [ - { - "nativeSrc": "4783:22:39", - "nodeType": "YulAssignment", - "src": "4783:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4799:5:39", - "nodeType": "YulIdentifier", - "src": "4799:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4793:5:39", - "nodeType": "YulIdentifier", - "src": "4793:5:39" - }, - "nativeSrc": "4793:12:39", - "nodeType": "YulFunctionCall", - "src": "4793:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "4783:6:39", - "nodeType": "YulIdentifier", - "src": "4783:6:39" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "4714:98:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4755:5:39", - "nodeType": "YulTypedName", - "src": "4755:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "4765:6:39", - "nodeType": "YulTypedName", - "src": "4765:6:39", - "type": "" - } - ], - "src": "4714:98:39" - }, - { - "body": { - "nativeSrc": "4931:34:39", - "nodeType": "YulBlock", - "src": "4931:34:39", - "statements": [ - { - "nativeSrc": "4941:18:39", - "nodeType": "YulAssignment", - "src": "4941:18:39", - "value": { - "name": "pos", - "nativeSrc": "4956:3:39", - "nodeType": "YulIdentifier", - "src": "4956:3:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "4941:11:39", - "nodeType": "YulIdentifier", - "src": "4941:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "4818:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "4903:3:39", - "nodeType": "YulTypedName", - "src": "4903:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "4908:6:39", - "nodeType": "YulTypedName", - "src": "4908:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "4919:11:39", - "nodeType": "YulTypedName", - "src": "4919:11:39", - "type": "" - } - ], - "src": "4818:147:39" - }, - { - "body": { - "nativeSrc": "5079:278:39", - "nodeType": "YulBlock", - "src": "5079:278:39", - "statements": [ - { - "nativeSrc": "5089:52:39", - "nodeType": "YulVariableDeclaration", - "src": "5089:52:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5135:5:39", - "nodeType": "YulIdentifier", - "src": "5135:5:39" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "5103:31:39", - "nodeType": "YulIdentifier", - "src": "5103:31:39" - }, - "nativeSrc": "5103:38:39", - "nodeType": "YulFunctionCall", - "src": "5103:38:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "5093:6:39", - "nodeType": "YulTypedName", - "src": "5093:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5150:95:39", - "nodeType": "YulAssignment", - "src": "5150:95:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5233:3:39", - "nodeType": "YulIdentifier", - "src": "5233:3:39" - }, - { - "name": "length", - "nativeSrc": "5238:6:39", - "nodeType": "YulIdentifier", - "src": "5238:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5157:75:39", - "nodeType": "YulIdentifier", - "src": "5157:75:39" - }, - "nativeSrc": "5157:88:39", - "nodeType": "YulFunctionCall", - "src": "5157:88:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5150:3:39", - "nodeType": "YulIdentifier", - "src": "5150:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5293:5:39", - "nodeType": "YulIdentifier", - "src": "5293:5:39" - }, - { - "kind": "number", - "nativeSrc": "5300:4:39", - "nodeType": "YulLiteral", - "src": "5300:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5289:3:39", - "nodeType": "YulIdentifier", - "src": "5289:3:39" - }, - "nativeSrc": "5289:16:39", - "nodeType": "YulFunctionCall", - "src": "5289:16:39" - }, - { - "name": "pos", - "nativeSrc": "5307:3:39", - "nodeType": "YulIdentifier", - "src": "5307:3:39" - }, - { - "name": "length", - "nativeSrc": "5312:6:39", - "nodeType": "YulIdentifier", - "src": "5312:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5254:34:39", - "nodeType": "YulIdentifier", - "src": "5254:34:39" - }, - "nativeSrc": "5254:65:39", - "nodeType": "YulFunctionCall", - "src": "5254:65:39" - }, - "nativeSrc": "5254:65:39", - "nodeType": "YulExpressionStatement", - "src": "5254:65:39" - }, - { - "nativeSrc": "5328:23:39", - "nodeType": "YulAssignment", - "src": "5328:23:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5339:3:39", - "nodeType": "YulIdentifier", - "src": "5339:3:39" - }, - { - "name": "length", - "nativeSrc": "5344:6:39", - "nodeType": "YulIdentifier", - "src": "5344:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5335:3:39", - "nodeType": "YulIdentifier", - "src": "5335:3:39" - }, - "nativeSrc": "5335:16:39", - "nodeType": "YulFunctionCall", - "src": "5335:16:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5328:3:39", - "nodeType": "YulIdentifier", - "src": "5328:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "4971:386:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5060:5:39", - "nodeType": "YulTypedName", - "src": "5060:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5067:3:39", - "nodeType": "YulTypedName", - "src": "5067:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5075:3:39", - "nodeType": "YulTypedName", - "src": "5075:3:39", - "type": "" - } - ], - "src": "4971:386:39" - }, - { - "body": { - "nativeSrc": "5497:137:39", - "nodeType": "YulBlock", - "src": "5497:137:39", - "statements": [ - { - "nativeSrc": "5508:100:39", - "nodeType": "YulAssignment", - "src": "5508:100:39", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5595:6:39", - "nodeType": "YulIdentifier", - "src": "5595:6:39" - }, - { - "name": "pos", - "nativeSrc": "5604:3:39", - "nodeType": "YulIdentifier", - "src": "5604:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5515:79:39", - "nodeType": "YulIdentifier", - "src": "5515:79:39" - }, - "nativeSrc": "5515:93:39", - "nodeType": "YulFunctionCall", - "src": "5515:93:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5508:3:39", - "nodeType": "YulIdentifier", - "src": "5508:3:39" - } - ] - }, - { - "nativeSrc": "5618:10:39", - "nodeType": "YulAssignment", - "src": "5618:10:39", - "value": { - "name": "pos", - "nativeSrc": "5625:3:39", - "nodeType": "YulIdentifier", - "src": "5625:3:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5618:3:39", - "nodeType": "YulIdentifier", - "src": "5618:3:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "5363:271:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "5476:3:39", - "nodeType": "YulTypedName", - "src": "5476:3:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5482:6:39", - "nodeType": "YulTypedName", - "src": "5482:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5493:3:39", - "nodeType": "YulTypedName", - "src": "5493:3:39", - "type": "" - } - ], - "src": "5363:271:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "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 0xD6BDA27500000000000000000000000000000000000000000000000000000000 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 0xD6BDA27500000000000000000000000000000000000000000000000000000000 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 MSIZE 0xE0 SMOD SWAP11 0xA9 0x24 0xD5 DUP15 PUSH16 0xC55BC0A2CF0E8F28861F1F984C33A992 PUSH5 0x659A039994 GT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER 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 0x27 0xB5 PC 0xE0 0xEF JUMPDEST DUP7 0x21 BLOCKHASH PUSH15 0x87E0A379C68E322FC4690410766900 SWAP2 0xB2 PUSH25 0x3BCA57C964736F6C634300081C003300000000000000000000 ", - "sourceMap": "4314:2231:18:-:0;;;5157:296;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5248:6;5256:5;1155:52:13;1185:14;1201:5;1155:29;;;:52;;:::i;:::-;1081:133;;5305:12:18::1;5290:28;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;5273:46;;;;;;;;::::0;::::1;5407:39;5432:13;:11;;;:13;;:::i;:::-;5407:24;;;:39;;:::i;:::-;5157:296:::0;;;4314:2231;;2264:344:14;2355:37;2374:17;2355:18;;;:37;;:::i;:::-;2425:17;2407:36;;;;;;;;;;;;2472:1;2458:4;:11;:15;2454:148;;;2489:53;2518:17;2537:4;2489:28;;;:53;;:::i;:::-;;2454:148;;;2573:18;:16;;;:18;;:::i;:::-;2454:148;2264:344;;:::o;5520:93:18:-;5574:7;5600:6;;5593:13;;5520:93;:::o;3827:142:14:-;3890:43;3912:10;:8;;;:10;;:::i;:::-;3924:8;3890:43;;;;;;;:::i;:::-;;;;;;;;3943:19;3953:8;3943:9;;;:19;;:::i;:::-;3827:142;:::o;1671:281::-;1781:1;1748:17;:29;;;:34;1744:119;;1834:17;1805:47;;;;;;;;;;;:::i;:::-;;;;;;;;1744:119;1928:17;1872:47;811:66;1899:19;;1872:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;1671:281;:::o;3900:253:19:-;3983:12;4008;4022:23;4049:6;:19;;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;;;:55;;:::i;:::-;4084:62;;;;3900:253;;;;:::o;6113:122:14:-;6175:1;6163:9;:13;6159:70;;;6199:19;;;;;;;;;;;;;;6159:70;6113:122::o;3287:120::-;3330:7;3356:38;2868:66;3383:10;;3356:26;;;:38;;:::i;:::-;:44;;;;;;;;;;;;3349:51;;3287:120;:::o;3490:217::-;3569:1;3549:22;;:8;:22;;;3545:91;;3622:1;3594:31;;;;;;;;;;;:::i;:::-;;;;;;;;3545:91;3692:8;3645:38;2868:66;3672:10;;3645:26;;;:38;;:::i;:::-;:44;;;:55;;;;;;;;;;;;;;;;;;3490:217;:::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::o;4421:582:19:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;;;:19;;:::i;:::-;4589:408;;;4862:1;4841:10;:17;:22;:49;;;;;4889:1;4867:6;:18;;;:23;4841:49;4837:119;;;4934:6;4917:24;;;;;;;;;;;:::i;:::-;;;;;;;;4837:119;4976:10;4969:17;;;;4589:408;4421:582;;;;;;:::o;5543:487::-;5694:1;5674:10;:17;:21;5670:354;;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;;;;;;;;;;;;;4314:2231:18;;;;;;;;:::o;7:75:39:-;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;4314:2231:18:-;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_2933": { - "entryPoint": null, - "id": 2933, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_checkNonPayable_2897": { - "entryPoint": 875, - "id": 2897, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_delegate_2909": { - "entryPoint": 500, - "id": 2909, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_dispatchUpgradeToAndCall_3127": { - "entryPoint": 298, - "id": 3127, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_fallback_2925": { - "entryPoint": 352, - "id": 2925, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_fallback_3098": { - "entryPoint": 14, - "id": 3098, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_implementation_2603": { - "entryPoint": 485, - "id": 2603, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_proxyAdmin_3064": { - "entryPoint": 258, - "id": 3064, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_revert_3386": { - "entryPoint": 1176, - "id": 3386, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setImplementation_2677": { - "entryPoint": 538, - "id": 2677, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@functionDelegateCall_3304": { - "entryPoint": 743, - "id": 3304, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@getAddressSlot_3643": { - "entryPoint": 1023, - "id": 3643, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getImplementation_2650": { - "entryPoint": 936, - "id": 2650, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@upgradeToAndCall_2713": { - "entryPoint": 370, - "id": 2713, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@verifyCallResultFromTarget_3344": { - "entryPoint": 1033, - "id": 3344, - "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:39", - "nodeType": "YulBlock", - "src": "0:6122:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "460:343:39", - "nodeType": "YulBlock", - "src": "460:343:39", - "statements": [ - { - "body": { - "nativeSrc": "498:83:39", - "nodeType": "YulBlock", - "src": "498:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a", - "nativeSrc": "500:77:39", - "nodeType": "YulIdentifier", - "src": "500:77:39" - }, - "nativeSrc": "500:79:39", - "nodeType": "YulFunctionCall", - "src": "500:79:39" - }, - "nativeSrc": "500:79:39", - "nodeType": "YulExpressionStatement", - "src": "500:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "476:10:39", - "nodeType": "YulIdentifier", - "src": "476:10:39" - }, - { - "name": "endIndex", - "nativeSrc": "488:8:39", - "nodeType": "YulIdentifier", - "src": "488:8:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "473:2:39", - "nodeType": "YulIdentifier", - "src": "473:2:39" - }, - "nativeSrc": "473:24:39", - "nodeType": "YulFunctionCall", - "src": "473:24:39" - }, - "nativeSrc": "470:111:39", - "nodeType": "YulIf", - "src": "470:111:39" - }, - { - "body": { - "nativeSrc": "614:83:39", - "nodeType": "YulBlock", - "src": "614:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c", - "nativeSrc": "616:77:39", - "nodeType": "YulIdentifier", - "src": "616:77:39" - }, - "nativeSrc": "616:79:39", - "nodeType": "YulFunctionCall", - "src": "616:79:39" - }, - "nativeSrc": "616:79:39", - "nodeType": "YulExpressionStatement", - "src": "616:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "endIndex", - "nativeSrc": "596:8:39", - "nodeType": "YulIdentifier", - "src": "596:8:39" - }, - { - "name": "length", - "nativeSrc": "606:6:39", - "nodeType": "YulIdentifier", - "src": "606:6:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "593:2:39", - "nodeType": "YulIdentifier", - "src": "593:2:39" - }, - "nativeSrc": "593:20:39", - "nodeType": "YulFunctionCall", - "src": "593:20:39" - }, - "nativeSrc": "590:107:39", - "nodeType": "YulIf", - "src": "590:107:39" - }, - { - "nativeSrc": "706:44:39", - "nodeType": "YulAssignment", - "src": "706:44:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "723:6:39", - "nodeType": "YulIdentifier", - "src": "723:6:39" - }, - { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "735:10:39", - "nodeType": "YulIdentifier", - "src": "735:10:39" - }, - { - "kind": "number", - "nativeSrc": "747:1:39", - "nodeType": "YulLiteral", - "src": "747:1:39", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "731:3:39", - "nodeType": "YulIdentifier", - "src": "731:3:39" - }, - "nativeSrc": "731:18:39", - "nodeType": "YulFunctionCall", - "src": "731:18:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "719:3:39", - "nodeType": "YulIdentifier", - "src": "719:3:39" - }, - "nativeSrc": "719:31:39", - "nodeType": "YulFunctionCall", - "src": "719:31:39" - }, - "variableNames": [ - { - "name": "offsetOut", - "nativeSrc": "706:9:39", - "nodeType": "YulIdentifier", - "src": "706:9:39" - } - ] - }, - { - "nativeSrc": "759:38:39", - "nodeType": "YulAssignment", - "src": "759:38:39", - "value": { - "arguments": [ - { - "name": "endIndex", - "nativeSrc": "776:8:39", - "nodeType": "YulIdentifier", - "src": "776:8:39" - }, - { - "name": "startIndex", - "nativeSrc": "786:10:39", - "nodeType": "YulIdentifier", - "src": "786:10:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "772:3:39", - "nodeType": "YulIdentifier", - "src": "772:3:39" - }, - "nativeSrc": "772:25:39", - "nodeType": "YulFunctionCall", - "src": "772:25:39" - }, - "variableNames": [ - { - "name": "lengthOut", - "nativeSrc": "759:9:39", - "nodeType": "YulIdentifier", - "src": "759:9:39" - } - ] - } - ] - }, - "name": "calldata_array_index_range_access_t_bytes_calldata_ptr", - "nativeSrc": "334:469:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "398:6:39", - "nodeType": "YulTypedName", - "src": "398:6:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "406:6:39", - "nodeType": "YulTypedName", - "src": "406:6:39", - "type": "" - }, - { - "name": "startIndex", - "nativeSrc": "414:10:39", - "nodeType": "YulTypedName", - "src": "414:10:39", - "type": "" - }, - { - "name": "endIndex", - "nativeSrc": "426:8:39", - "nodeType": "YulTypedName", - "src": "426:8:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "offsetOut", - "nativeSrc": "439:9:39", - "nodeType": "YulTypedName", - "src": "439:9:39", - "type": "" - }, - { - "name": "lengthOut", - "nativeSrc": "450:9:39", - "nodeType": "YulTypedName", - "src": "450:9:39", - "type": "" - } - ], - "src": "334:469:39" - }, - { - "body": { - "nativeSrc": "898:28:39", - "nodeType": "YulBlock", - "src": "898:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "915:1:39", - "nodeType": "YulLiteral", - "src": "915:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "918:1:39", - "nodeType": "YulLiteral", - "src": "918:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "908:6:39", - "nodeType": "YulIdentifier", - "src": "908:6:39" - }, - "nativeSrc": "908:12:39", - "nodeType": "YulFunctionCall", - "src": "908:12:39" - }, - "nativeSrc": "908:12:39", - "nodeType": "YulExpressionStatement", - "src": "908:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "809:117:39", - "nodeType": "YulFunctionDefinition", - "src": "809:117:39" - }, - { - "body": { - "nativeSrc": "1021:28:39", - "nodeType": "YulBlock", - "src": "1021:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1038:1:39", - "nodeType": "YulLiteral", - "src": "1038:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1041:1:39", - "nodeType": "YulLiteral", - "src": "1041:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1031:6:39", - "nodeType": "YulIdentifier", - "src": "1031:6:39" - }, - "nativeSrc": "1031:12:39", - "nodeType": "YulFunctionCall", - "src": "1031:12:39" - }, - "nativeSrc": "1031:12:39", - "nodeType": "YulExpressionStatement", - "src": "1031:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "932:117:39", - "nodeType": "YulFunctionDefinition", - "src": "932:117:39" - }, - { - "body": { - "nativeSrc": "1100:81:39", - "nodeType": "YulBlock", - "src": "1100:81:39", - "statements": [ - { - "nativeSrc": "1110:65:39", - "nodeType": "YulAssignment", - "src": "1110:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1125:5:39", - "nodeType": "YulIdentifier", - "src": "1125:5:39" - }, - { - "kind": "number", - "nativeSrc": "1132:42:39", - "nodeType": "YulLiteral", - "src": "1132:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1121:3:39", - "nodeType": "YulIdentifier", - "src": "1121:3:39" - }, - "nativeSrc": "1121:54:39", - "nodeType": "YulFunctionCall", - "src": "1121:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1110:7:39", - "nodeType": "YulIdentifier", - "src": "1110:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "1055:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1082:5:39", - "nodeType": "YulTypedName", - "src": "1082:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1092:7:39", - "nodeType": "YulTypedName", - "src": "1092:7:39", - "type": "" - } - ], - "src": "1055:126:39" - }, - { - "body": { - "nativeSrc": "1240:51:39", - "nodeType": "YulBlock", - "src": "1240:51:39", - "statements": [ - { - "nativeSrc": "1250:35:39", - "nodeType": "YulAssignment", - "src": "1250:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1279:5:39", - "nodeType": "YulIdentifier", - "src": "1279:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "1261:17:39", - "nodeType": "YulIdentifier", - "src": "1261:17:39" - }, - "nativeSrc": "1261:24:39", - "nodeType": "YulFunctionCall", - "src": "1261:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1250:7:39", - "nodeType": "YulIdentifier", - "src": "1250:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address_payable", - "nativeSrc": "1187:104:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1222:5:39", - "nodeType": "YulTypedName", - "src": "1222:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1232:7:39", - "nodeType": "YulTypedName", - "src": "1232:7:39", - "type": "" - } - ], - "src": "1187:104:39" - }, - { - "body": { - "nativeSrc": "1348:87:39", - "nodeType": "YulBlock", - "src": "1348:87:39", - "statements": [ - { - "body": { - "nativeSrc": "1413:16:39", - "nodeType": "YulBlock", - "src": "1413:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1422:1:39", - "nodeType": "YulLiteral", - "src": "1422:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1425:1:39", - "nodeType": "YulLiteral", - "src": "1425:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1415:6:39", - "nodeType": "YulIdentifier", - "src": "1415:6:39" - }, - "nativeSrc": "1415:12:39", - "nodeType": "YulFunctionCall", - "src": "1415:12:39" - }, - "nativeSrc": "1415:12:39", - "nodeType": "YulExpressionStatement", - "src": "1415:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1371:5:39", - "nodeType": "YulIdentifier", - "src": "1371:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1404:5:39", - "nodeType": "YulIdentifier", - "src": "1404:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address_payable", - "nativeSrc": "1378:25:39", - "nodeType": "YulIdentifier", - "src": "1378:25:39" - }, - "nativeSrc": "1378:32:39", - "nodeType": "YulFunctionCall", - "src": "1378:32:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1368:2:39", - "nodeType": "YulIdentifier", - "src": "1368:2:39" - }, - "nativeSrc": "1368:43:39", - "nodeType": "YulFunctionCall", - "src": "1368:43:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1361:6:39", - "nodeType": "YulIdentifier", - "src": "1361:6:39" - }, - "nativeSrc": "1361:51:39", - "nodeType": "YulFunctionCall", - "src": "1361:51:39" - }, - "nativeSrc": "1358:71:39", - "nodeType": "YulIf", - "src": "1358:71:39" - } - ] - }, - "name": "validator_revert_t_address_payable", - "nativeSrc": "1297:138:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1341:5:39", - "nodeType": "YulTypedName", - "src": "1341:5:39", - "type": "" - } - ], - "src": "1297:138:39" - }, - { - "body": { - "nativeSrc": "1501:95:39", - "nodeType": "YulBlock", - "src": "1501:95:39", - "statements": [ - { - "nativeSrc": "1511:29:39", - "nodeType": "YulAssignment", - "src": "1511:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1533:6:39", - "nodeType": "YulIdentifier", - "src": "1533:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1520:12:39", - "nodeType": "YulIdentifier", - "src": "1520:12:39" - }, - "nativeSrc": "1520:20:39", - "nodeType": "YulFunctionCall", - "src": "1520:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1511:5:39", - "nodeType": "YulIdentifier", - "src": "1511:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1584:5:39", - "nodeType": "YulIdentifier", - "src": "1584:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address_payable", - "nativeSrc": "1549:34:39", - "nodeType": "YulIdentifier", - "src": "1549:34:39" - }, - "nativeSrc": "1549:41:39", - "nodeType": "YulFunctionCall", - "src": "1549:41:39" - }, - "nativeSrc": "1549:41:39", - "nodeType": "YulExpressionStatement", - "src": "1549:41:39" - } - ] - }, - "name": "abi_decode_t_address_payable", - "nativeSrc": "1441:155:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1479:6:39", - "nodeType": "YulTypedName", - "src": "1479:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1487:3:39", - "nodeType": "YulTypedName", - "src": "1487:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1495:5:39", - "nodeType": "YulTypedName", - "src": "1495:5:39", - "type": "" - } - ], - "src": "1441:155:39" - }, - { - "body": { - "nativeSrc": "1691:28:39", - "nodeType": "YulBlock", - "src": "1691:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1708:1:39", - "nodeType": "YulLiteral", - "src": "1708:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1711:1:39", - "nodeType": "YulLiteral", - "src": "1711:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1701:6:39", - "nodeType": "YulIdentifier", - "src": "1701:6:39" - }, - "nativeSrc": "1701:12:39", - "nodeType": "YulFunctionCall", - "src": "1701:12:39" - }, - "nativeSrc": "1701:12:39", - "nodeType": "YulExpressionStatement", - "src": "1701:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "1602:117:39", - "nodeType": "YulFunctionDefinition", - "src": "1602:117:39" - }, - { - "body": { - "nativeSrc": "1814:28:39", - "nodeType": "YulBlock", - "src": "1814:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1831:1:39", - "nodeType": "YulLiteral", - "src": "1831:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1834:1:39", - "nodeType": "YulLiteral", - "src": "1834:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1824:6:39", - "nodeType": "YulIdentifier", - "src": "1824:6:39" - }, - "nativeSrc": "1824:12:39", - "nodeType": "YulFunctionCall", - "src": "1824:12:39" - }, - "nativeSrc": "1824:12:39", - "nodeType": "YulExpressionStatement", - "src": "1824:12:39" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "1725:117:39", - "nodeType": "YulFunctionDefinition", - "src": "1725:117:39" - }, - { - "body": { - "nativeSrc": "1896:54:39", - "nodeType": "YulBlock", - "src": "1896:54:39", - "statements": [ - { - "nativeSrc": "1906:38:39", - "nodeType": "YulAssignment", - "src": "1906:38:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1924:5:39", - "nodeType": "YulIdentifier", - "src": "1924:5:39" - }, - { - "kind": "number", - "nativeSrc": "1931:2:39", - "nodeType": "YulLiteral", - "src": "1931:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1920:3:39", - "nodeType": "YulIdentifier", - "src": "1920:3:39" - }, - "nativeSrc": "1920:14:39", - "nodeType": "YulFunctionCall", - "src": "1920:14:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1940:2:39", - "nodeType": "YulLiteral", - "src": "1940:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "1936:3:39", - "nodeType": "YulIdentifier", - "src": "1936:3:39" - }, - "nativeSrc": "1936:7:39", - "nodeType": "YulFunctionCall", - "src": "1936:7:39" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1916:3:39", - "nodeType": "YulIdentifier", - "src": "1916:3:39" - }, - "nativeSrc": "1916:28:39", - "nodeType": "YulFunctionCall", - "src": "1916:28:39" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "1906:6:39", - "nodeType": "YulIdentifier", - "src": "1906:6:39" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "1848:102:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1879:5:39", - "nodeType": "YulTypedName", - "src": "1879:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "1889:6:39", - "nodeType": "YulTypedName", - "src": "1889:6:39", - "type": "" - } - ], - "src": "1848:102:39" - }, - { - "body": { - "nativeSrc": "1984:152:39", - "nodeType": "YulBlock", - "src": "1984:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2001:1:39", - "nodeType": "YulLiteral", - "src": "2001:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2004:77:39", - "nodeType": "YulLiteral", - "src": "2004:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1994:6:39", - "nodeType": "YulIdentifier", - "src": "1994:6:39" - }, - "nativeSrc": "1994:88:39", - "nodeType": "YulFunctionCall", - "src": "1994:88:39" - }, - "nativeSrc": "1994:88:39", - "nodeType": "YulExpressionStatement", - "src": "1994:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2098:1:39", - "nodeType": "YulLiteral", - "src": "2098:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "2101:4:39", - "nodeType": "YulLiteral", - "src": "2101:4:39", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2091:6:39", - "nodeType": "YulIdentifier", - "src": "2091:6:39" - }, - "nativeSrc": "2091:15:39", - "nodeType": "YulFunctionCall", - "src": "2091:15:39" - }, - "nativeSrc": "2091:15:39", - "nodeType": "YulExpressionStatement", - "src": "2091:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2122:1:39", - "nodeType": "YulLiteral", - "src": "2122:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2125:4:39", - "nodeType": "YulLiteral", - "src": "2125:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2115:6:39", - "nodeType": "YulIdentifier", - "src": "2115:6:39" - }, - "nativeSrc": "2115:15:39", - "nodeType": "YulFunctionCall", - "src": "2115:15:39" - }, - "nativeSrc": "2115:15:39", - "nodeType": "YulExpressionStatement", - "src": "2115:15:39" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "1956:180:39", - "nodeType": "YulFunctionDefinition", - "src": "1956:180:39" - }, - { - "body": { - "nativeSrc": "2185:238:39", - "nodeType": "YulBlock", - "src": "2185:238:39", - "statements": [ - { - "nativeSrc": "2195:58:39", - "nodeType": "YulVariableDeclaration", - "src": "2195:58:39", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "2217:6:39", - "nodeType": "YulIdentifier", - "src": "2217:6:39" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "2247:4:39", - "nodeType": "YulIdentifier", - "src": "2247:4:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2225:21:39", - "nodeType": "YulIdentifier", - "src": "2225:21:39" - }, - "nativeSrc": "2225:27:39", - "nodeType": "YulFunctionCall", - "src": "2225:27:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2213:3:39", - "nodeType": "YulIdentifier", - "src": "2213:3:39" - }, - "nativeSrc": "2213:40:39", - "nodeType": "YulFunctionCall", - "src": "2213:40:39" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "2199:10:39", - "nodeType": "YulTypedName", - "src": "2199:10:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2364:22:39", - "nodeType": "YulBlock", - "src": "2364:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "2366:16:39", - "nodeType": "YulIdentifier", - "src": "2366:16:39" - }, - "nativeSrc": "2366:18:39", - "nodeType": "YulFunctionCall", - "src": "2366:18:39" - }, - "nativeSrc": "2366:18:39", - "nodeType": "YulExpressionStatement", - "src": "2366:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "2307:10:39", - "nodeType": "YulIdentifier", - "src": "2307:10:39" - }, - { - "kind": "number", - "nativeSrc": "2319:18:39", - "nodeType": "YulLiteral", - "src": "2319:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2304:2:39", - "nodeType": "YulIdentifier", - "src": "2304:2:39" - }, - "nativeSrc": "2304:34:39", - "nodeType": "YulFunctionCall", - "src": "2304:34:39" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "2343:10:39", - "nodeType": "YulIdentifier", - "src": "2343:10:39" - }, - { - "name": "memPtr", - "nativeSrc": "2355:6:39", - "nodeType": "YulIdentifier", - "src": "2355:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "2340:2:39", - "nodeType": "YulIdentifier", - "src": "2340:2:39" - }, - "nativeSrc": "2340:22:39", - "nodeType": "YulFunctionCall", - "src": "2340:22:39" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "2301:2:39", - "nodeType": "YulIdentifier", - "src": "2301:2:39" - }, - "nativeSrc": "2301:62:39", - "nodeType": "YulFunctionCall", - "src": "2301:62:39" - }, - "nativeSrc": "2298:88:39", - "nodeType": "YulIf", - "src": "2298:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2402:2:39", - "nodeType": "YulLiteral", - "src": "2402:2:39", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "2406:10:39", - "nodeType": "YulIdentifier", - "src": "2406:10:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2395:6:39", - "nodeType": "YulIdentifier", - "src": "2395:6:39" - }, - "nativeSrc": "2395:22:39", - "nodeType": "YulFunctionCall", - "src": "2395:22:39" - }, - "nativeSrc": "2395:22:39", - "nodeType": "YulExpressionStatement", - "src": "2395:22:39" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "2142:281:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "2171:6:39", - "nodeType": "YulTypedName", - "src": "2171:6:39", - "type": "" - }, - { - "name": "size", - "nativeSrc": "2179:4:39", - "nodeType": "YulTypedName", - "src": "2179:4:39", - "type": "" - } - ], - "src": "2142:281:39" - }, - { - "body": { - "nativeSrc": "2470:88:39", - "nodeType": "YulBlock", - "src": "2470:88:39", - "statements": [ - { - "nativeSrc": "2480:30:39", - "nodeType": "YulAssignment", - "src": "2480:30:39", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "2490:18:39", - "nodeType": "YulIdentifier", - "src": "2490:18:39" - }, - "nativeSrc": "2490:20:39", - "nodeType": "YulFunctionCall", - "src": "2490:20:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "2480:6:39", - "nodeType": "YulIdentifier", - "src": "2480:6:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "2539:6:39", - "nodeType": "YulIdentifier", - "src": "2539:6:39" - }, - { - "name": "size", - "nativeSrc": "2547:4:39", - "nodeType": "YulIdentifier", - "src": "2547:4:39" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "2519:19:39", - "nodeType": "YulIdentifier", - "src": "2519:19:39" - }, - "nativeSrc": "2519:33:39", - "nodeType": "YulFunctionCall", - "src": "2519:33:39" - }, - "nativeSrc": "2519:33:39", - "nodeType": "YulExpressionStatement", - "src": "2519:33:39" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "2429:129:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "2454:4:39", - "nodeType": "YulTypedName", - "src": "2454:4:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "2463:6:39", - "nodeType": "YulTypedName", - "src": "2463:6:39", - "type": "" - } - ], - "src": "2429:129:39" - }, - { - "body": { - "nativeSrc": "2630:241:39", - "nodeType": "YulBlock", - "src": "2630:241:39", - "statements": [ - { - "body": { - "nativeSrc": "2735:22:39", - "nodeType": "YulBlock", - "src": "2735:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "2737:16:39", - "nodeType": "YulIdentifier", - "src": "2737:16:39" - }, - "nativeSrc": "2737:18:39", - "nodeType": "YulFunctionCall", - "src": "2737:18:39" - }, - "nativeSrc": "2737:18:39", - "nodeType": "YulExpressionStatement", - "src": "2737:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2707:6:39", - "nodeType": "YulIdentifier", - "src": "2707:6:39" - }, - { - "kind": "number", - "nativeSrc": "2715:18:39", - "nodeType": "YulLiteral", - "src": "2715:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2704:2:39", - "nodeType": "YulIdentifier", - "src": "2704:2:39" - }, - "nativeSrc": "2704:30:39", - "nodeType": "YulFunctionCall", - "src": "2704:30:39" - }, - "nativeSrc": "2701:56:39", - "nodeType": "YulIf", - "src": "2701:56:39" - }, - { - "nativeSrc": "2767:37:39", - "nodeType": "YulAssignment", - "src": "2767:37:39", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2797:6:39", - "nodeType": "YulIdentifier", - "src": "2797:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2775:21:39", - "nodeType": "YulIdentifier", - "src": "2775:21:39" - }, - "nativeSrc": "2775:29:39", - "nodeType": "YulFunctionCall", - "src": "2775:29:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2767:4:39", - "nodeType": "YulIdentifier", - "src": "2767:4:39" - } - ] - }, - { - "nativeSrc": "2841:23:39", - "nodeType": "YulAssignment", - "src": "2841:23:39", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "2853:4:39", - "nodeType": "YulIdentifier", - "src": "2853:4:39" - }, - { - "kind": "number", - "nativeSrc": "2859:4:39", - "nodeType": "YulLiteral", - "src": "2859:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2849:3:39", - "nodeType": "YulIdentifier", - "src": "2849:3:39" - }, - "nativeSrc": "2849:15:39", - "nodeType": "YulFunctionCall", - "src": "2849:15:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2841:4:39", - "nodeType": "YulIdentifier", - "src": "2841:4:39" - } - ] - } - ] - }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "2564:307:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "2614:6:39", - "nodeType": "YulTypedName", - "src": "2614:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "2625:4:39", - "nodeType": "YulTypedName", - "src": "2625:4:39", - "type": "" - } - ], - "src": "2564:307:39" - }, - { - "body": { - "nativeSrc": "2941:84:39", - "nodeType": "YulBlock", - "src": "2941:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2965:3:39", - "nodeType": "YulIdentifier", - "src": "2965:3:39" - }, - { - "name": "src", - "nativeSrc": "2970:3:39", - "nodeType": "YulIdentifier", - "src": "2970:3:39" - }, - { - "name": "length", - "nativeSrc": "2975:6:39", - "nodeType": "YulIdentifier", - "src": "2975:6:39" - } - ], - "functionName": { - "name": "calldatacopy", - "nativeSrc": "2952:12:39", - "nodeType": "YulIdentifier", - "src": "2952:12:39" - }, - "nativeSrc": "2952:30:39", - "nodeType": "YulFunctionCall", - "src": "2952:30:39" - }, - "nativeSrc": "2952:30:39", - "nodeType": "YulExpressionStatement", - "src": "2952:30:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "3002:3:39", - "nodeType": "YulIdentifier", - "src": "3002:3:39" - }, - { - "name": "length", - "nativeSrc": "3007:6:39", - "nodeType": "YulIdentifier", - "src": "3007:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2998:3:39", - "nodeType": "YulIdentifier", - "src": "2998:3:39" - }, - "nativeSrc": "2998:16:39", - "nodeType": "YulFunctionCall", - "src": "2998:16:39" - }, - { - "kind": "number", - "nativeSrc": "3016:1:39", - "nodeType": "YulLiteral", - "src": "3016:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2991:6:39", - "nodeType": "YulIdentifier", - "src": "2991:6:39" - }, - "nativeSrc": "2991:27:39", - "nodeType": "YulFunctionCall", - "src": "2991:27:39" - }, - "nativeSrc": "2991:27:39", - "nodeType": "YulExpressionStatement", - "src": "2991:27:39" - } - ] - }, - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "2877:148:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "2923:3:39", - "nodeType": "YulTypedName", - "src": "2923:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "2928:3:39", - "nodeType": "YulTypedName", - "src": "2928:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2933:6:39", - "nodeType": "YulTypedName", - "src": "2933:6:39", - "type": "" - } - ], - "src": "2877:148:39" - }, - { - "body": { - "nativeSrc": "3114:340:39", - "nodeType": "YulBlock", - "src": "3114:340:39", - "statements": [ - { - "nativeSrc": "3124:74:39", - "nodeType": "YulAssignment", - "src": "3124:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "3190:6:39", - "nodeType": "YulIdentifier", - "src": "3190:6:39" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "3149:40:39", - "nodeType": "YulIdentifier", - "src": "3149:40:39" - }, - "nativeSrc": "3149:48:39", - "nodeType": "YulFunctionCall", - "src": "3149:48:39" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "3133:15:39", - "nodeType": "YulIdentifier", - "src": "3133:15:39" - }, - "nativeSrc": "3133:65:39", - "nodeType": "YulFunctionCall", - "src": "3133:65:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3124:5:39", - "nodeType": "YulIdentifier", - "src": "3124:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "3214:5:39", - "nodeType": "YulIdentifier", - "src": "3214:5:39" - }, - { - "name": "length", - "nativeSrc": "3221:6:39", - "nodeType": "YulIdentifier", - "src": "3221:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3207:6:39", - "nodeType": "YulIdentifier", - "src": "3207:6:39" - }, - "nativeSrc": "3207:21:39", - "nodeType": "YulFunctionCall", - "src": "3207:21:39" - }, - "nativeSrc": "3207:21:39", - "nodeType": "YulExpressionStatement", - "src": "3207:21:39" - }, - { - "nativeSrc": "3237:27:39", - "nodeType": "YulVariableDeclaration", - "src": "3237:27:39", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "3252:5:39", - "nodeType": "YulIdentifier", - "src": "3252:5:39" - }, - { - "kind": "number", - "nativeSrc": "3259:4:39", - "nodeType": "YulLiteral", - "src": "3259:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3248:3:39", - "nodeType": "YulIdentifier", - "src": "3248:3:39" - }, - "nativeSrc": "3248:16:39", - "nodeType": "YulFunctionCall", - "src": "3248:16:39" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "3241:3:39", - "nodeType": "YulTypedName", - "src": "3241:3:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3302:83:39", - "nodeType": "YulBlock", - "src": "3302:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "3304:77:39", - "nodeType": "YulIdentifier", - "src": "3304:77:39" - }, - "nativeSrc": "3304:79:39", - "nodeType": "YulFunctionCall", - "src": "3304:79:39" - }, - "nativeSrc": "3304:79:39", - "nodeType": "YulExpressionStatement", - "src": "3304:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "3283:3:39", - "nodeType": "YulIdentifier", - "src": "3283:3:39" - }, - { - "name": "length", - "nativeSrc": "3288:6:39", - "nodeType": "YulIdentifier", - "src": "3288:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3279:3:39", - "nodeType": "YulIdentifier", - "src": "3279:3:39" - }, - "nativeSrc": "3279:16:39", - "nodeType": "YulFunctionCall", - "src": "3279:16:39" - }, - { - "name": "end", - "nativeSrc": "3297:3:39", - "nodeType": "YulIdentifier", - "src": "3297:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3276:2:39", - "nodeType": "YulIdentifier", - "src": "3276:2:39" - }, - "nativeSrc": "3276:25:39", - "nodeType": "YulFunctionCall", - "src": "3276:25:39" - }, - "nativeSrc": "3273:112:39", - "nodeType": "YulIf", - "src": "3273:112:39" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "3431:3:39", - "nodeType": "YulIdentifier", - "src": "3431:3:39" - }, - { - "name": "dst", - "nativeSrc": "3436:3:39", - "nodeType": "YulIdentifier", - "src": "3436:3:39" - }, - { - "name": "length", - "nativeSrc": "3441:6:39", - "nodeType": "YulIdentifier", - "src": "3441:6:39" - } - ], - "functionName": { - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "3394:36:39", - "nodeType": "YulIdentifier", - "src": "3394:36:39" - }, - "nativeSrc": "3394:54:39", - "nodeType": "YulFunctionCall", - "src": "3394:54:39" - }, - "nativeSrc": "3394:54:39", - "nodeType": "YulExpressionStatement", - "src": "3394:54:39" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "3031:423:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "3087:3:39", - "nodeType": "YulTypedName", - "src": "3087:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3092:6:39", - "nodeType": "YulTypedName", - "src": "3092:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3100:3:39", - "nodeType": "YulTypedName", - "src": "3100:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "3108:5:39", - "nodeType": "YulTypedName", - "src": "3108:5:39", - "type": "" - } - ], - "src": "3031:423:39" - }, - { - "body": { - "nativeSrc": "3534:277:39", - "nodeType": "YulBlock", - "src": "3534:277:39", - "statements": [ - { - "body": { - "nativeSrc": "3583:83:39", - "nodeType": "YulBlock", - "src": "3583:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "3585:77:39", - "nodeType": "YulIdentifier", - "src": "3585:77:39" - }, - "nativeSrc": "3585:79:39", - "nodeType": "YulFunctionCall", - "src": "3585:79:39" - }, - "nativeSrc": "3585:79:39", - "nodeType": "YulExpressionStatement", - "src": "3585:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3562:6:39", - "nodeType": "YulIdentifier", - "src": "3562:6:39" - }, - { - "kind": "number", - "nativeSrc": "3570:4:39", - "nodeType": "YulLiteral", - "src": "3570:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3558:3:39", - "nodeType": "YulIdentifier", - "src": "3558:3:39" - }, - "nativeSrc": "3558:17:39", - "nodeType": "YulFunctionCall", - "src": "3558:17:39" - }, - { - "name": "end", - "nativeSrc": "3577:3:39", - "nodeType": "YulIdentifier", - "src": "3577:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3554:3:39", - "nodeType": "YulIdentifier", - "src": "3554:3:39" - }, - "nativeSrc": "3554:27:39", - "nodeType": "YulFunctionCall", - "src": "3554:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3547:6:39", - "nodeType": "YulIdentifier", - "src": "3547:6:39" - }, - "nativeSrc": "3547:35:39", - "nodeType": "YulFunctionCall", - "src": "3547:35:39" - }, - "nativeSrc": "3544:122:39", - "nodeType": "YulIf", - "src": "3544:122:39" - }, - { - "nativeSrc": "3675:34:39", - "nodeType": "YulVariableDeclaration", - "src": "3675:34:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3702:6:39", - "nodeType": "YulIdentifier", - "src": "3702:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3689:12:39", - "nodeType": "YulIdentifier", - "src": "3689:12:39" - }, - "nativeSrc": "3689:20:39", - "nodeType": "YulFunctionCall", - "src": "3689:20:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "3679:6:39", - "nodeType": "YulTypedName", - "src": "3679:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3718:87:39", - "nodeType": "YulAssignment", - "src": "3718:87:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3778:6:39", - "nodeType": "YulIdentifier", - "src": "3778:6:39" - }, - { - "kind": "number", - "nativeSrc": "3786:4:39", - "nodeType": "YulLiteral", - "src": "3786:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3774:3:39", - "nodeType": "YulIdentifier", - "src": "3774:3:39" - }, - "nativeSrc": "3774:17:39", - "nodeType": "YulFunctionCall", - "src": "3774:17:39" - }, - { - "name": "length", - "nativeSrc": "3793:6:39", - "nodeType": "YulIdentifier", - "src": "3793:6:39" - }, - { - "name": "end", - "nativeSrc": "3801:3:39", - "nodeType": "YulIdentifier", - "src": "3801:3:39" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "3727:46:39", - "nodeType": "YulIdentifier", - "src": "3727:46:39" - }, - "nativeSrc": "3727:78:39", - "nodeType": "YulFunctionCall", - "src": "3727:78:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3718:5:39", - "nodeType": "YulIdentifier", - "src": "3718:5:39" - } - ] - } - ] - }, - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "3473:338:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3512:6:39", - "nodeType": "YulTypedName", - "src": "3512:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3520:3:39", - "nodeType": "YulTypedName", - "src": "3520:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "3528:5:39", - "nodeType": "YulTypedName", - "src": "3528:5:39", - "type": "" - } - ], - "src": "3473:338:39" - }, - { - "body": { - "nativeSrc": "3917:568:39", - "nodeType": "YulBlock", - "src": "3917:568:39", - "statements": [ - { - "body": { - "nativeSrc": "3963:83:39", - "nodeType": "YulBlock", - "src": "3963:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3965:77:39", - "nodeType": "YulIdentifier", - "src": "3965:77:39" - }, - "nativeSrc": "3965:79:39", - "nodeType": "YulFunctionCall", - "src": "3965:79:39" - }, - "nativeSrc": "3965:79:39", - "nodeType": "YulExpressionStatement", - "src": "3965:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3938:7:39", - "nodeType": "YulIdentifier", - "src": "3938:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3947:9:39", - "nodeType": "YulIdentifier", - "src": "3947:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3934:3:39", - "nodeType": "YulIdentifier", - "src": "3934:3:39" - }, - "nativeSrc": "3934:23:39", - "nodeType": "YulFunctionCall", - "src": "3934:23:39" - }, - { - "kind": "number", - "nativeSrc": "3959:2:39", - "nodeType": "YulLiteral", - "src": "3959:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3930:3:39", - "nodeType": "YulIdentifier", - "src": "3930:3:39" - }, - "nativeSrc": "3930:32:39", - "nodeType": "YulFunctionCall", - "src": "3930:32:39" - }, - "nativeSrc": "3927:119:39", - "nodeType": "YulIf", - "src": "3927:119:39" - }, - { - "nativeSrc": "4056:125:39", - "nodeType": "YulBlock", - "src": "4056:125:39", - "statements": [ - { - "nativeSrc": "4071:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4071:15:39", - "value": { - "kind": "number", - "nativeSrc": "4085:1:39", - "nodeType": "YulLiteral", - "src": "4085:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4075:6:39", - "nodeType": "YulTypedName", - "src": "4075:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4100:71:39", - "nodeType": "YulAssignment", - "src": "4100:71:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4143:9:39", - "nodeType": "YulIdentifier", - "src": "4143:9:39" - }, - { - "name": "offset", - "nativeSrc": "4154:6:39", - "nodeType": "YulIdentifier", - "src": "4154:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4139:3:39", - "nodeType": "YulIdentifier", - "src": "4139:3:39" - }, - "nativeSrc": "4139:22:39", - "nodeType": "YulFunctionCall", - "src": "4139:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4163:7:39", - "nodeType": "YulIdentifier", - "src": "4163:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_payable", - "nativeSrc": "4110:28:39", - "nodeType": "YulIdentifier", - "src": "4110:28:39" - }, - "nativeSrc": "4110:61:39", - "nodeType": "YulFunctionCall", - "src": "4110:61:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4100:6:39", - "nodeType": "YulIdentifier", - "src": "4100:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4191:287:39", - "nodeType": "YulBlock", - "src": "4191:287:39", - "statements": [ - { - "nativeSrc": "4206:46:39", - "nodeType": "YulVariableDeclaration", - "src": "4206:46:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4237:9:39", - "nodeType": "YulIdentifier", - "src": "4237:9:39" - }, - { - "kind": "number", - "nativeSrc": "4248:2:39", - "nodeType": "YulLiteral", - "src": "4248:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4233:3:39", - "nodeType": "YulIdentifier", - "src": "4233:3:39" - }, - "nativeSrc": "4233:18:39", - "nodeType": "YulFunctionCall", - "src": "4233:18:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4220:12:39", - "nodeType": "YulIdentifier", - "src": "4220:12:39" - }, - "nativeSrc": "4220:32:39", - "nodeType": "YulFunctionCall", - "src": "4220:32:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4210:6:39", - "nodeType": "YulTypedName", - "src": "4210:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "4299:83:39", - "nodeType": "YulBlock", - "src": "4299:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "4301:77:39", - "nodeType": "YulIdentifier", - "src": "4301:77:39" - }, - "nativeSrc": "4301:79:39", - "nodeType": "YulFunctionCall", - "src": "4301:79:39" - }, - "nativeSrc": "4301:79:39", - "nodeType": "YulExpressionStatement", - "src": "4301:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "4271:6:39", - "nodeType": "YulIdentifier", - "src": "4271:6:39" - }, - { - "kind": "number", - "nativeSrc": "4279:18:39", - "nodeType": "YulLiteral", - "src": "4279:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "4268:2:39", - "nodeType": "YulIdentifier", - "src": "4268:2:39" - }, - "nativeSrc": "4268:30:39", - "nodeType": "YulFunctionCall", - "src": "4268:30:39" - }, - "nativeSrc": "4265:117:39", - "nodeType": "YulIf", - "src": "4265:117:39" - }, - { - "nativeSrc": "4396:72:39", - "nodeType": "YulAssignment", - "src": "4396:72:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4440:9:39", - "nodeType": "YulIdentifier", - "src": "4440:9:39" - }, - { - "name": "offset", - "nativeSrc": "4451:6:39", - "nodeType": "YulIdentifier", - "src": "4451:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4436:3:39", - "nodeType": "YulIdentifier", - "src": "4436:3:39" - }, - "nativeSrc": "4436:22:39", - "nodeType": "YulFunctionCall", - "src": "4436:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4460:7:39", - "nodeType": "YulIdentifier", - "src": "4460:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "4406:29:39", - "nodeType": "YulIdentifier", - "src": "4406:29:39" - }, - "nativeSrc": "4406:62:39", - "nodeType": "YulFunctionCall", - "src": "4406:62:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4396:6:39", - "nodeType": "YulIdentifier", - "src": "4396:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_payablet_bytes_memory_ptr", - "nativeSrc": "3817:668:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3879:9:39", - "nodeType": "YulTypedName", - "src": "3879:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3890:7:39", - "nodeType": "YulTypedName", - "src": "3890:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3902:6:39", - "nodeType": "YulTypedName", - "src": "3902:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3910:6:39", - "nodeType": "YulTypedName", - "src": "3910:6:39", - "type": "" - } - ], - "src": "3817:668:39" - }, - { - "body": { - "nativeSrc": "4536:51:39", - "nodeType": "YulBlock", - "src": "4536:51:39", - "statements": [ - { - "nativeSrc": "4546:35:39", - "nodeType": "YulAssignment", - "src": "4546:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4575:5:39", - "nodeType": "YulIdentifier", - "src": "4575:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "4557:17:39", - "nodeType": "YulIdentifier", - "src": "4557:17:39" - }, - "nativeSrc": "4557:24:39", - "nodeType": "YulFunctionCall", - "src": "4557:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "4546:7:39", - "nodeType": "YulIdentifier", - "src": "4546:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "4491:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4518:5:39", - "nodeType": "YulTypedName", - "src": "4518:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "4528:7:39", - "nodeType": "YulTypedName", - "src": "4528:7:39", - "type": "" - } - ], - "src": "4491:96:39" - }, - { - "body": { - "nativeSrc": "4658:53:39", - "nodeType": "YulBlock", - "src": "4658:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4675:3:39", - "nodeType": "YulIdentifier", - "src": "4675:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4698:5:39", - "nodeType": "YulIdentifier", - "src": "4698:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "4680:17:39", - "nodeType": "YulIdentifier", - "src": "4680:17:39" - }, - "nativeSrc": "4680:24:39", - "nodeType": "YulFunctionCall", - "src": "4680:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4668:6:39", - "nodeType": "YulIdentifier", - "src": "4668:6:39" - }, - "nativeSrc": "4668:37:39", - "nodeType": "YulFunctionCall", - "src": "4668:37:39" - }, - "nativeSrc": "4668:37:39", - "nodeType": "YulExpressionStatement", - "src": "4668:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4593:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4646:5:39", - "nodeType": "YulTypedName", - "src": "4646:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4653:3:39", - "nodeType": "YulTypedName", - "src": "4653:3:39", - "type": "" - } - ], - "src": "4593:118:39" - }, - { - "body": { - "nativeSrc": "4815:124:39", - "nodeType": "YulBlock", - "src": "4815:124:39", - "statements": [ - { - "nativeSrc": "4825:26:39", - "nodeType": "YulAssignment", - "src": "4825:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4837:9:39", - "nodeType": "YulIdentifier", - "src": "4837:9:39" - }, - { - "kind": "number", - "nativeSrc": "4848:2:39", - "nodeType": "YulLiteral", - "src": "4848:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4833:3:39", - "nodeType": "YulIdentifier", - "src": "4833:3:39" - }, - "nativeSrc": "4833:18:39", - "nodeType": "YulFunctionCall", - "src": "4833:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4825:4:39", - "nodeType": "YulIdentifier", - "src": "4825:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4905:6:39", - "nodeType": "YulIdentifier", - "src": "4905:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4918:9:39", - "nodeType": "YulIdentifier", - "src": "4918:9:39" - }, - { - "kind": "number", - "nativeSrc": "4929:1:39", - "nodeType": "YulLiteral", - "src": "4929:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4914:3:39", - "nodeType": "YulIdentifier", - "src": "4914:3:39" - }, - "nativeSrc": "4914:17:39", - "nodeType": "YulFunctionCall", - "src": "4914:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4861:43:39", - "nodeType": "YulIdentifier", - "src": "4861:43:39" - }, - "nativeSrc": "4861:71:39", - "nodeType": "YulFunctionCall", - "src": "4861:71:39" - }, - "nativeSrc": "4861:71:39", - "nodeType": "YulExpressionStatement", - "src": "4861:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "4717:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4787:9:39", - "nodeType": "YulTypedName", - "src": "4787:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4799:6:39", - "nodeType": "YulTypedName", - "src": "4799:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4810:4:39", - "nodeType": "YulTypedName", - "src": "4810:4:39", - "type": "" - } - ], - "src": "4717:222:39" - }, - { - "body": { - "nativeSrc": "5003:40:39", - "nodeType": "YulBlock", - "src": "5003:40:39", - "statements": [ - { - "nativeSrc": "5014:22:39", - "nodeType": "YulAssignment", - "src": "5014:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5030:5:39", - "nodeType": "YulIdentifier", - "src": "5030:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5024:5:39", - "nodeType": "YulIdentifier", - "src": "5024:5:39" - }, - "nativeSrc": "5024:12:39", - "nodeType": "YulFunctionCall", - "src": "5024:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "5014:6:39", - "nodeType": "YulIdentifier", - "src": "5014:6:39" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "4945:98:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4986:5:39", - "nodeType": "YulTypedName", - "src": "4986:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "4996:6:39", - "nodeType": "YulTypedName", - "src": "4996:6:39", - "type": "" - } - ], - "src": "4945:98:39" - }, - { - "body": { - "nativeSrc": "5162:34:39", - "nodeType": "YulBlock", - "src": "5162:34:39", - "statements": [ - { - "nativeSrc": "5172:18:39", - "nodeType": "YulAssignment", - "src": "5172:18:39", - "value": { - "name": "pos", - "nativeSrc": "5187:3:39", - "nodeType": "YulIdentifier", - "src": "5187:3:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "5172:11:39", - "nodeType": "YulIdentifier", - "src": "5172:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5049:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "5134:3:39", - "nodeType": "YulTypedName", - "src": "5134:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "5139:6:39", - "nodeType": "YulTypedName", - "src": "5139:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "5150:11:39", - "nodeType": "YulTypedName", - "src": "5150:11:39", - "type": "" - } - ], - "src": "5049:147:39" - }, - { - "body": { - "nativeSrc": "5264:186:39", - "nodeType": "YulBlock", - "src": "5264:186:39", - "statements": [ - { - "nativeSrc": "5275:10:39", - "nodeType": "YulVariableDeclaration", - "src": "5275:10:39", - "value": { - "kind": "number", - "nativeSrc": "5284:1:39", - "nodeType": "YulLiteral", - "src": "5284:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "5279:1:39", - "nodeType": "YulTypedName", - "src": "5279:1:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5344:63:39", - "nodeType": "YulBlock", - "src": "5344:63:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "5369:3:39", - "nodeType": "YulIdentifier", - "src": "5369:3:39" - }, - { - "name": "i", - "nativeSrc": "5374:1:39", - "nodeType": "YulIdentifier", - "src": "5374:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5365:3:39", - "nodeType": "YulIdentifier", - "src": "5365:3:39" - }, - "nativeSrc": "5365:11:39", - "nodeType": "YulFunctionCall", - "src": "5365:11:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "5388:3:39", - "nodeType": "YulIdentifier", - "src": "5388:3:39" - }, - { - "name": "i", - "nativeSrc": "5393:1:39", - "nodeType": "YulIdentifier", - "src": "5393:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5384:3:39", - "nodeType": "YulIdentifier", - "src": "5384:3:39" - }, - "nativeSrc": "5384:11:39", - "nodeType": "YulFunctionCall", - "src": "5384:11:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5378:5:39", - "nodeType": "YulIdentifier", - "src": "5378:5:39" - }, - "nativeSrc": "5378:18:39", - "nodeType": "YulFunctionCall", - "src": "5378:18:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5358:6:39", - "nodeType": "YulIdentifier", - "src": "5358:6:39" - }, - "nativeSrc": "5358:39:39", - "nodeType": "YulFunctionCall", - "src": "5358:39:39" - }, - "nativeSrc": "5358:39:39", - "nodeType": "YulExpressionStatement", - "src": "5358:39:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "5305:1:39", - "nodeType": "YulIdentifier", - "src": "5305:1:39" - }, - { - "name": "length", - "nativeSrc": "5308:6:39", - "nodeType": "YulIdentifier", - "src": "5308:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5302:2:39", - "nodeType": "YulIdentifier", - "src": "5302:2:39" - }, - "nativeSrc": "5302:13:39", - "nodeType": "YulFunctionCall", - "src": "5302:13:39" - }, - "nativeSrc": "5294:113:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "5316:19:39", - "nodeType": "YulBlock", - "src": "5316:19:39", - "statements": [ - { - "nativeSrc": "5318:15:39", - "nodeType": "YulAssignment", - "src": "5318:15:39", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "5327:1:39", - "nodeType": "YulIdentifier", - "src": "5327:1:39" - }, - { - "kind": "number", - "nativeSrc": "5330:2:39", - "nodeType": "YulLiteral", - "src": "5330:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5323:3:39", - "nodeType": "YulIdentifier", - "src": "5323:3:39" - }, - "nativeSrc": "5323:10:39", - "nodeType": "YulFunctionCall", - "src": "5323:10:39" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "5318:1:39", - "nodeType": "YulIdentifier", - "src": "5318:1:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "5298:3:39", - "nodeType": "YulBlock", - "src": "5298:3:39", - "statements": [] - }, - "src": "5294:113:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "5427:3:39", - "nodeType": "YulIdentifier", - "src": "5427:3:39" - }, - { - "name": "length", - "nativeSrc": "5432:6:39", - "nodeType": "YulIdentifier", - "src": "5432:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5423:3:39", - "nodeType": "YulIdentifier", - "src": "5423:3:39" - }, - "nativeSrc": "5423:16:39", - "nodeType": "YulFunctionCall", - "src": "5423:16:39" - }, - { - "kind": "number", - "nativeSrc": "5441:1:39", - "nodeType": "YulLiteral", - "src": "5441:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5416:6:39", - "nodeType": "YulIdentifier", - "src": "5416:6:39" - }, - "nativeSrc": "5416:27:39", - "nodeType": "YulFunctionCall", - "src": "5416:27:39" - }, - "nativeSrc": "5416:27:39", - "nodeType": "YulExpressionStatement", - "src": "5416:27:39" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5202:248:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "5246:3:39", - "nodeType": "YulTypedName", - "src": "5246:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "5251:3:39", - "nodeType": "YulTypedName", - "src": "5251:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "5256:6:39", - "nodeType": "YulTypedName", - "src": "5256:6:39", - "type": "" - } - ], - "src": "5202:248:39" - }, - { - "body": { - "nativeSrc": "5564:278:39", - "nodeType": "YulBlock", - "src": "5564:278:39", - "statements": [ - { - "nativeSrc": "5574:52:39", - "nodeType": "YulVariableDeclaration", - "src": "5574:52:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5620:5:39", - "nodeType": "YulIdentifier", - "src": "5620:5:39" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "5588:31:39", - "nodeType": "YulIdentifier", - "src": "5588:31:39" - }, - "nativeSrc": "5588:38:39", - "nodeType": "YulFunctionCall", - "src": "5588:38:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "5578:6:39", - "nodeType": "YulTypedName", - "src": "5578:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5635:95:39", - "nodeType": "YulAssignment", - "src": "5635:95:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5718:3:39", - "nodeType": "YulIdentifier", - "src": "5718:3:39" - }, - { - "name": "length", - "nativeSrc": "5723:6:39", - "nodeType": "YulIdentifier", - "src": "5723:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5642:75:39", - "nodeType": "YulIdentifier", - "src": "5642:75:39" - }, - "nativeSrc": "5642:88:39", - "nodeType": "YulFunctionCall", - "src": "5642:88:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5635:3:39", - "nodeType": "YulIdentifier", - "src": "5635:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5778:5:39", - "nodeType": "YulIdentifier", - "src": "5778:5:39" - }, - { - "kind": "number", - "nativeSrc": "5785:4:39", - "nodeType": "YulLiteral", - "src": "5785:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5774:3:39", - "nodeType": "YulIdentifier", - "src": "5774:3:39" - }, - "nativeSrc": "5774:16:39", - "nodeType": "YulFunctionCall", - "src": "5774:16:39" - }, - { - "name": "pos", - "nativeSrc": "5792:3:39", - "nodeType": "YulIdentifier", - "src": "5792:3:39" - }, - { - "name": "length", - "nativeSrc": "5797:6:39", - "nodeType": "YulIdentifier", - "src": "5797:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5739:34:39", - "nodeType": "YulIdentifier", - "src": "5739:34:39" - }, - "nativeSrc": "5739:65:39", - "nodeType": "YulFunctionCall", - "src": "5739:65:39" - }, - "nativeSrc": "5739:65:39", - "nodeType": "YulExpressionStatement", - "src": "5739:65:39" - }, - { - "nativeSrc": "5813:23:39", - "nodeType": "YulAssignment", - "src": "5813:23:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5824:3:39", - "nodeType": "YulIdentifier", - "src": "5824:3:39" - }, - { - "name": "length", - "nativeSrc": "5829:6:39", - "nodeType": "YulIdentifier", - "src": "5829:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5820:3:39", - "nodeType": "YulIdentifier", - "src": "5820:3:39" - }, - "nativeSrc": "5820:16:39", - "nodeType": "YulFunctionCall", - "src": "5820:16:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5813:3:39", - "nodeType": "YulIdentifier", - "src": "5813:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5456:386:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5545:5:39", - "nodeType": "YulTypedName", - "src": "5545:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5552:3:39", - "nodeType": "YulTypedName", - "src": "5552:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5560:3:39", - "nodeType": "YulTypedName", - "src": "5560:3:39", - "type": "" - } - ], - "src": "5456:386:39" - }, - { - "body": { - "nativeSrc": "5982:137:39", - "nodeType": "YulBlock", - "src": "5982:137:39", - "statements": [ - { - "nativeSrc": "5993:100:39", - "nodeType": "YulAssignment", - "src": "5993:100:39", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6080:6:39", - "nodeType": "YulIdentifier", - "src": "6080:6:39" - }, - { - "name": "pos", - "nativeSrc": "6089:3:39", - "nodeType": "YulIdentifier", - "src": "6089:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "6000:79:39", - "nodeType": "YulIdentifier", - "src": "6000:79:39" - }, - "nativeSrc": "6000:93:39", - "nodeType": "YulFunctionCall", - "src": "6000:93:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5993:3:39", - "nodeType": "YulIdentifier", - "src": "5993:3:39" - } - ] - }, - { - "nativeSrc": "6103:10:39", - "nodeType": "YulAssignment", - "src": "6103:10:39", - "value": { - "name": "pos", - "nativeSrc": "6110:3:39", - "nodeType": "YulIdentifier", - "src": "6110:3:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "6103:3:39", - "nodeType": "YulIdentifier", - "src": "6103:3:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "5848:271:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "5961:3:39", - "nodeType": "YulTypedName", - "src": "5961:3:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5967:6:39", - "nodeType": "YulTypedName", - "src": "5967:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5978:3:39", - "nodeType": "YulTypedName", - "src": "5978:3:39", - "type": "" - } - ], - "src": "5848:271:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "3019": [ - { - "length": 32, - "start": 262 - } - ] - }, - "linkReferences": {}, - "object": "608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033", - "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 0xD6BDA27500000000000000000000000000000000000000000000000000000000 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 MSIZE 0xE0 SMOD SWAP11 0xA9 0x24 0xD5 DUP15 PUSH16 0xC55BC0A2CF0E8F28861F1F984C33A992 PUSH5 0x659A039994 GT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "4314:2231:18:-:0;;;2649:11:15;:9;:11::i;:::-;4314:2231:18;5755:369;5830:13;:11;:13::i;:::-;5816:27;;:10;:27;;;5812:306;;5874:54;;;5863:65;;;:7;;;;:65;;;;5859:201;;5955:24;;;;;;;;;;;;;;5859:201;6018:27;:25;:27::i;:::-;5812:306;;;6090:17;:15;:17::i;:::-;5812:306;5755:369::o;5520:93::-;5574:7;5600:6;5593:13;;5520:93;:::o;6326:217::-;6382:25;6409:17;6441:8;;6450:1;6441:12;;;;;;;;;:::i;:::-;6430:42;;;;;;;:::i;:::-;6381:91;;;;6482:54;6512:17;6531:4;6482:29;:54::i;:::-;6371:172;;6326:217::o;2323:83:15:-;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;2264:344:14:-;2355:37;2374:17;2355:18;:37::i;:::-;2425:17;2407:36;;;;;;;;;;;;2472:1;2458:4;:11;:15;2454:148;;;2489:53;2518:17;2537:4;2489:28;:53::i;:::-;;2454:148;;;2573:18;:16;:18::i;:::-;2454:148;2264:344;;:::o;1583:132:13:-;1650:7;1676:32;:30;:32::i;:::-;1669:39;;1583: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;1671:281:14;1781:1;1748:17;:29;;;:34;1744:119;;1834:17;1805:47;;;;;;;;;;;:::i;:::-;;;;;;;;1744:119;1928:17;1872:47;811:66;1899:19;;1872:26;:47::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;1671:281;:::o;3900:253:19:-;3983:12;4008;4022:23;4049:6;:19;;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;:::-;4084:62;;;;3900:253;;;;:::o;6113:122:14:-;6175:1;6163:9;:13;6159:70;;;6199:19;;;;;;;;;;;;;;6159:70;6113:122::o;1441:138::-;1493:7;1519:47;811:66;1546:19;;1519:26;:47::i;:::-;:53;;;;;;;;;;;;1512:60;;1441:138;:::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::o;4421:582:19:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4862:1;4841:10;:17;:22;:49;;;;;4889:1;4867:6;:18;;;:23;4841:49;4837:119;;;4934:6;4917:24;;;;;;;;;;;:::i;:::-;;;;;;;;4837:119;4976:10;4969:17;;;;4589:408;4421:582;;;;;;:::o;5543:487::-;5694:1;5674:10;:17;:21;5670:354;;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;;;;;;;;;;;;;7:75:39;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\":\"FailedCall\",\"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. Relying on the value of the admin slot is generally fine if the implementation is trusted. 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.\"}],\"FailedCall()\":[{\"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\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@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\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/Address.sol": { - "Address": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c3d621977f064e384d77a7f38001fcbf2e2b714139e5fb526a1fd3072a79689164736f6c634300081c0033", - "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 0xC3 0xD6 0x21 SWAP8 PUSH32 0x64E384D77A7F38001FCBF2E2B714139E5FB526A1FD3072A79689164736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "233:5799:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c3d621977f064e384d77a7f38001fcbf2e2b714139e5fb526a1fd3072a79689164736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xD6 0x21 SWAP8 PUSH32 0x64E384D77A7F38001FCBF2E2B714139E5FB526A1FD3072A79689164736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "233:5799: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\"}],\"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).\"}]},\"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\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"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/Errors.sol": { - "Errors": { - "abi": [ - { - "inputs": [], - "name": "FailedCall", - "type": "error" - }, - { - "inputs": [], - "name": "FailedDeployment", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "MissingPrecompile", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122004b89e72da43ab1ee05bd033fb62a621154a79713cd82d3cd8a0e9353695a64e64736f6c634300081c0033", - "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 DIV 0xB8 SWAP15 PUSH19 0xDA43AB1EE05BD033FB62A621154A79713CD82D EXTCODECOPY 0xD8 LOG0 0xE9 CALLDATALOAD CALLDATASIZE SWAP6 0xA6 0x4E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "411:484:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122004b89e72da43ab1ee05bd033fb62a621154a79713cd82d3cd8a0e9353695a64e64736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DIV 0xB8 SWAP15 PUSH19 0xDA43AB1EE05BD033FB62A621154A79713CD82D EXTCODECOPY 0xD8 LOG0 0xE9 CALLDATALOAD CALLDATASIZE SWAP6 0xA6 0x4E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "411:484:21:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"MissingPrecompile\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of common custom errors used in multiple contracts IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library. It is recommended to avoid relying on the error API for critical functionality. _Available since v5.1._\",\"errors\":{\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"MissingPrecompile(address)\":[{\"details\":\"A necessary precompile is missing.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Errors.sol\":\"Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/Panic.sol": { - "Panic": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044fd5c6dc22ace3217436b923d3288726ebe1f48ed972abfbb54a291caab641964736f6c634300081c0033", - "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 PREVRANDAO REVERT TLOAD PUSH14 0xC22ACE3217436B923D3288726EBE 0x1F BASEFEE 0xED SWAP8 0x2A 0xBF 0xBB SLOAD LOG2 SWAP2 0xCA 0xAB PUSH5 0x1964736F6C PUSH4 0x4300081C STOP CALLER ", - "sourceMap": "657:1315:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044fd5c6dc22ace3217436b923d3288726ebe1f48ed972abfbb54a291caab641964736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO REVERT TLOAD PUSH14 0xC22ACE3217436B923D3288726EBE 0x1F BASEFEE 0xED SWAP8 0x2A 0xBF 0xBB SLOAD LOG2 SWAP2 0xCA 0xAB PUSH5 0x1964736F6C PUSH4 0x4300081C STOP CALLER ", - "sourceMap": "657:1315:22:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"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": 3500, - "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": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b93eefa26a1cecc5003f9a8a0abb4a23d8503ef65d8338e7fd9d3442221a9e9c64736f6c634300081c0033", - "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 0xB9 RETURNDATACOPY 0xEF LOG2 PUSH11 0x1CECC5003F9A8A0ABB4A23 0xD8 POP RETURNDATACOPY 0xF6 TSTORE DUP4 CODESIZE 0xE7 REVERT SWAP14 CALLVALUE TIMESTAMP 0x22 BYTE SWAP15 SWAP13 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "1407:2774:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b93eefa26a1cecc5003f9a8a0abb4a23d8503ef65d8338e7fd9d3442221a9e9c64736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 RETURNDATACOPY 0xEF LOG2 PUSH11 0x1CECC5003F9A8A0ABB4A23 0xD8 POP RETURNDATACOPY 0xF6 TSTORE DUP4 CODESIZE 0xE7 REVERT SWAP14 CALLVALUE TIMESTAMP 0x22 BYTE SWAP15 SWAP13 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "1407:2774:24:-: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 ERC-1967 implementation slot: ```solidity contract ERC1967 { // Define the slot. Alternatively, use the SlotDerivation library to derive the slot. 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; } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"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\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"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 ERC-165 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\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"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 ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. 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[ERC 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\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/math/Math.sol": { - "Math": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f7d06953f5fe20dd24fbcb0fc8475806a42e254e8536e5da3358df77baeec5e64736f6c634300081c0033", - "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 0x4F PUSH30 0x6953F5FE20DD24FBCB0FC8475806A42E254E8536E5DA3358DF77BAEEC5E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "281:28026:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f7d06953f5fe20dd24fbcb0fc8475806a42e254e8536e5da3358df77baeec5e64736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F PUSH30 0x6953F5FE20DD24FBCB0FC8475806A42E254E8536E5DA3358DF77BAEEC5E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "281:28026:27:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"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/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"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": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b619700e36f8286c341dba52edf08c2ac628f28267f87863dc4a18698b0d4f3f64736f6c634300081c0033", - "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 0xB6 NOT PUSH17 0xE36F8286C341DBA52EDF08C2AC628F282 PUSH8 0xF87863DC4A18698B 0xD 0x4F EXTCODEHASH PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "769:34173:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b619700e36f8286c341dba52edf08c2ac628f28267f87863dc4a18698b0d4f3f64736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 NOT PUSH17 0xE36F8286C341DBA52EDF08C2AC628F282 PUSH8 0xF87863DC4A18698B 0xD 0x4F EXTCODEHASH PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "769:34173:28:-: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/bool 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\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"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": { - "@_7275": { - "entryPoint": null, - "id": 7275, - "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:39", - "nodeType": "YulBlock", - "src": "0:1355:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "939:413:39", - "nodeType": "YulBlock", - "src": "939:413:39", - "statements": [ - { - "body": { - "nativeSrc": "985:83:39", - "nodeType": "YulBlock", - "src": "985:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "987:77:39", - "nodeType": "YulIdentifier", - "src": "987:77:39" - }, - "nativeSrc": "987:79:39", - "nodeType": "YulFunctionCall", - "src": "987:79:39" - }, - "nativeSrc": "987:79:39", - "nodeType": "YulExpressionStatement", - "src": "987:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "960:7:39", - "nodeType": "YulIdentifier", - "src": "960:7:39" - }, - { - "name": "headStart", - "nativeSrc": "969:9:39", - "nodeType": "YulIdentifier", - "src": "969:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "956:3:39", - "nodeType": "YulIdentifier", - "src": "956:3:39" - }, - "nativeSrc": "956:23:39", - "nodeType": "YulFunctionCall", - "src": "956:23:39" - }, - { - "kind": "number", - "nativeSrc": "981:2:39", - "nodeType": "YulLiteral", - "src": "981:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "952:3:39", - "nodeType": "YulIdentifier", - "src": "952:3:39" - }, - "nativeSrc": "952:32:39", - "nodeType": "YulFunctionCall", - "src": "952:32:39" - }, - "nativeSrc": "949:119:39", - "nodeType": "YulIf", - "src": "949:119:39" - }, - { - "nativeSrc": "1078:128:39", - "nodeType": "YulBlock", - "src": "1078:128:39", - "statements": [ - { - "nativeSrc": "1093:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1093:15:39", - "value": { - "kind": "number", - "nativeSrc": "1107:1:39", - "nodeType": "YulLiteral", - "src": "1107:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1097:6:39", - "nodeType": "YulTypedName", - "src": "1097:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1122:74:39", - "nodeType": "YulAssignment", - "src": "1122:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1168:9:39", - "nodeType": "YulIdentifier", - "src": "1168:9:39" - }, - { - "name": "offset", - "nativeSrc": "1179:6:39", - "nodeType": "YulIdentifier", - "src": "1179:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1164:3:39", - "nodeType": "YulIdentifier", - "src": "1164:3:39" - }, - "nativeSrc": "1164:22:39", - "nodeType": "YulFunctionCall", - "src": "1164:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1188:7:39", - "nodeType": "YulIdentifier", - "src": "1188:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1132:31:39", - "nodeType": "YulIdentifier", - "src": "1132:31:39" - }, - "nativeSrc": "1132:64:39", - "nodeType": "YulFunctionCall", - "src": "1132:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1122:6:39", - "nodeType": "YulIdentifier", - "src": "1122:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "1216:129:39", - "nodeType": "YulBlock", - "src": "1216:129:39", - "statements": [ - { - "nativeSrc": "1231:16:39", - "nodeType": "YulVariableDeclaration", - "src": "1231:16:39", - "value": { - "kind": "number", - "nativeSrc": "1245:2:39", - "nodeType": "YulLiteral", - "src": "1245:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1235:6:39", - "nodeType": "YulTypedName", - "src": "1235:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1261:74:39", - "nodeType": "YulAssignment", - "src": "1261:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1307:9:39", - "nodeType": "YulIdentifier", - "src": "1307:9:39" - }, - { - "name": "offset", - "nativeSrc": "1318:6:39", - "nodeType": "YulIdentifier", - "src": "1318:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1303:3:39", - "nodeType": "YulIdentifier", - "src": "1303:3:39" - }, - "nativeSrc": "1303:22:39", - "nodeType": "YulFunctionCall", - "src": "1303:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1327:7:39", - "nodeType": "YulIdentifier", - "src": "1327:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1271:31:39", - "nodeType": "YulIdentifier", - "src": "1271:31:39" - }, - "nativeSrc": "1271:64:39", - "nodeType": "YulFunctionCall", - "src": "1271:64:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1261:6:39", - "nodeType": "YulIdentifier", - "src": "1261:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_address_fromMemory", - "nativeSrc": "845:507:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "901:9:39", - "nodeType": "YulTypedName", - "src": "901:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "912:7:39", - "nodeType": "YulTypedName", - "src": "912:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "924:6:39", - "nodeType": "YulTypedName", - "src": "924:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "932:6:39", - "nodeType": "YulTypedName", - "src": "932:6:39", - "type": "" - } - ], - "src": "845:507:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60c060405234801561001057600080fd5b5060405161082e38038061082e83398181016040528101906100329190610104565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250505050610144565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100d1826100a6565b9050919050565b6100e1816100c6565b81146100ec57600080fd5b50565b6000815190506100fe816100d8565b92915050565b6000806040838503121561011b5761011a6100a1565b5b6000610129858286016100ef565b925050602061013a858286016100ef565b9150509250929050565b60805160a0516106b161017d6000396000818160da0152818161017601526101ca01526000818161019a015261027c01526106b16000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea2646970667358221220c90dbfa0c27c6833e6ed98d1937d68c4ddcf4ef68d5d349eef2753821461b49064736f6c634300081c0033", - "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 0xC9 0xD 0xBF LOG0 0xC2 PUSH29 0x6833E6ED98D1937D68C4DDCF4EF68D5D349EEF2753821461B49064736F PUSH13 0x634300081C0033000000000000 ", - "sourceMap": "669:2681:32:-:0;;;1634:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1732:19;1714:38;;;;;;;;;;1786:19;1762:44;;;;;;;;;;1634:179;;669:2681;;88:117:39;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:32:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkEnsOwner_7341": { - "entryPoint": 611, - "id": 7341, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_msgSender_3399": { - "entryPoint": 603, - "id": 3399, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@ensRegistry_7230": { - "entryPoint": 408, - "id": 7230, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@registerDomainWithVerifier_7319": { - "entryPoint": 197, - "id": 7319, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@registerDomain_7295": { - "entryPoint": 444, - "id": 7295, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@registry_7233": { - "entryPoint": 372, - "id": 7233, - "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_$8101": { - "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_$8101": { - "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_$7736_to_t_address_fromStack": { - "entryPoint": 1197, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_IVerifier_$8101_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_$8101__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_$7736__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_$8101": { - "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_$7736_to_t_address": { - "entryPoint": 1179, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_IVerifier_$8101_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_$8101": { - "entryPoint": 1009, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:6282:39", - "nodeType": "YulBlock", - "src": "0:6282:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:32:39", - "nodeType": "YulBlock", - "src": "379:32:39", - "statements": [ - { - "nativeSrc": "389:16:39", - "nodeType": "YulAssignment", - "src": "389:16:39", - "value": { - "name": "value", - "nativeSrc": "400:5:39", - "nodeType": "YulIdentifier", - "src": "400:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "334:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:77:39" - }, - { - "body": { - "nativeSrc": "460:79:39", - "nodeType": "YulBlock", - "src": "460:79:39", - "statements": [ - { - "body": { - "nativeSrc": "517:16:39", - "nodeType": "YulBlock", - "src": "517:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "526:1:39", - "nodeType": "YulLiteral", - "src": "526:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "529:1:39", - "nodeType": "YulLiteral", - "src": "529:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "519:6:39", - "nodeType": "YulIdentifier", - "src": "519:6:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulFunctionCall", - "src": "519:12:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulExpressionStatement", - "src": "519:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "483:5:39", - "nodeType": "YulIdentifier", - "src": "483:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "508:5:39", - "nodeType": "YulIdentifier", - "src": "508:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "490:17:39", - "nodeType": "YulIdentifier", - "src": "490:17:39" - }, - "nativeSrc": "490:24:39", - "nodeType": "YulFunctionCall", - "src": "490:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "480:2:39", - "nodeType": "YulIdentifier", - "src": "480:2:39" - }, - "nativeSrc": "480:35:39", - "nodeType": "YulFunctionCall", - "src": "480:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "473:6:39", - "nodeType": "YulIdentifier", - "src": "473:6:39" - }, - "nativeSrc": "473:43:39", - "nodeType": "YulFunctionCall", - "src": "473:43:39" - }, - "nativeSrc": "470:63:39", - "nodeType": "YulIf", - "src": "470:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "417:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "453:5:39", - "nodeType": "YulTypedName", - "src": "453:5:39", - "type": "" - } - ], - "src": "417:122:39" - }, - { - "body": { - "nativeSrc": "597:87:39", - "nodeType": "YulBlock", - "src": "597:87:39", - "statements": [ - { - "nativeSrc": "607:29:39", - "nodeType": "YulAssignment", - "src": "607:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "629:6:39", - "nodeType": "YulIdentifier", - "src": "629:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "616:12:39", - "nodeType": "YulIdentifier", - "src": "616:12:39" - }, - "nativeSrc": "616:20:39", - "nodeType": "YulFunctionCall", - "src": "616:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "607:5:39", - "nodeType": "YulIdentifier", - "src": "607:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "672:5:39", - "nodeType": "YulIdentifier", - "src": "672:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "645:26:39", - "nodeType": "YulIdentifier", - "src": "645:26:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulFunctionCall", - "src": "645:33:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulExpressionStatement", - "src": "645:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "545:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "575:6:39", - "nodeType": "YulTypedName", - "src": "575:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "583:3:39", - "nodeType": "YulTypedName", - "src": "583:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "591:5:39", - "nodeType": "YulTypedName", - "src": "591:5:39", - "type": "" - } - ], - "src": "545:139:39" - }, - { - "body": { - "nativeSrc": "735:81:39", - "nodeType": "YulBlock", - "src": "735:81:39", - "statements": [ - { - "nativeSrc": "745:65:39", - "nodeType": "YulAssignment", - "src": "745:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "760:5:39", - "nodeType": "YulIdentifier", - "src": "760:5:39" - }, - { - "kind": "number", - "nativeSrc": "767:42:39", - "nodeType": "YulLiteral", - "src": "767:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "756:3:39", - "nodeType": "YulIdentifier", - "src": "756:3:39" - }, - "nativeSrc": "756:54:39", - "nodeType": "YulFunctionCall", - "src": "756:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "745:7:39", - "nodeType": "YulIdentifier", - "src": "745:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "690:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "717:5:39", - "nodeType": "YulTypedName", - "src": "717:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "727:7:39", - "nodeType": "YulTypedName", - "src": "727:7:39", - "type": "" - } - ], - "src": "690:126:39" - }, - { - "body": { - "nativeSrc": "867:51:39", - "nodeType": "YulBlock", - "src": "867:51:39", - "statements": [ - { - "nativeSrc": "877:35:39", - "nodeType": "YulAssignment", - "src": "877:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "906:5:39", - "nodeType": "YulIdentifier", - "src": "906:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "888:17:39", - "nodeType": "YulIdentifier", - "src": "888:17:39" - }, - "nativeSrc": "888:24:39", - "nodeType": "YulFunctionCall", - "src": "888:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "877:7:39", - "nodeType": "YulIdentifier", - "src": "877:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "822:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "849:5:39", - "nodeType": "YulTypedName", - "src": "849:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "859:7:39", - "nodeType": "YulTypedName", - "src": "859:7:39", - "type": "" - } - ], - "src": "822:96:39" - }, - { - "body": { - "nativeSrc": "987:51:39", - "nodeType": "YulBlock", - "src": "987:51:39", - "statements": [ - { - "nativeSrc": "997:35:39", - "nodeType": "YulAssignment", - "src": "997:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1026:5:39", - "nodeType": "YulIdentifier", - "src": "1026:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1008:17:39", - "nodeType": "YulIdentifier", - "src": "1008:17:39" - }, - "nativeSrc": "1008:24:39", - "nodeType": "YulFunctionCall", - "src": "1008:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "997:7:39", - "nodeType": "YulIdentifier", - "src": "997:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "924:114:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "969:5:39", - "nodeType": "YulTypedName", - "src": "969:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "979:7:39", - "nodeType": "YulTypedName", - "src": "979:7:39", - "type": "" - } - ], - "src": "924:114:39" - }, - { - "body": { - "nativeSrc": "1105:97:39", - "nodeType": "YulBlock", - "src": "1105:97:39", - "statements": [ - { - "body": { - "nativeSrc": "1180:16:39", - "nodeType": "YulBlock", - "src": "1180:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1189:1:39", - "nodeType": "YulLiteral", - "src": "1189:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1192:1:39", - "nodeType": "YulLiteral", - "src": "1192:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1182:6:39", - "nodeType": "YulIdentifier", - "src": "1182:6:39" - }, - "nativeSrc": "1182:12:39", - "nodeType": "YulFunctionCall", - "src": "1182:12:39" - }, - "nativeSrc": "1182:12:39", - "nodeType": "YulExpressionStatement", - "src": "1182:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1128:5:39", - "nodeType": "YulIdentifier", - "src": "1128:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1171:5:39", - "nodeType": "YulIdentifier", - "src": "1171:5:39" - } - ], - "functionName": { - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "1135:35:39", - "nodeType": "YulIdentifier", - "src": "1135:35:39" - }, - "nativeSrc": "1135:42:39", - "nodeType": "YulFunctionCall", - "src": "1135:42:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1125:2:39", - "nodeType": "YulIdentifier", - "src": "1125:2:39" - }, - "nativeSrc": "1125:53:39", - "nodeType": "YulFunctionCall", - "src": "1125:53:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1118:6:39", - "nodeType": "YulIdentifier", - "src": "1118:6:39" - }, - "nativeSrc": "1118:61:39", - "nodeType": "YulFunctionCall", - "src": "1118:61:39" - }, - "nativeSrc": "1115:81:39", - "nodeType": "YulIf", - "src": "1115:81:39" - } - ] - }, - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "1044:158:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1098:5:39", - "nodeType": "YulTypedName", - "src": "1098:5:39", - "type": "" - } - ], - "src": "1044:158:39" - }, - { - "body": { - "nativeSrc": "1278:105:39", - "nodeType": "YulBlock", - "src": "1278:105:39", - "statements": [ - { - "nativeSrc": "1288:29:39", - "nodeType": "YulAssignment", - "src": "1288:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1310:6:39", - "nodeType": "YulIdentifier", - "src": "1310:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1297:12:39", - "nodeType": "YulIdentifier", - "src": "1297:12:39" - }, - "nativeSrc": "1297:20:39", - "nodeType": "YulFunctionCall", - "src": "1297:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1288:5:39", - "nodeType": "YulIdentifier", - "src": "1288:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1371:5:39", - "nodeType": "YulIdentifier", - "src": "1371:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "1326:44:39", - "nodeType": "YulIdentifier", - "src": "1326:44:39" - }, - "nativeSrc": "1326:51:39", - "nodeType": "YulFunctionCall", - "src": "1326:51:39" - }, - "nativeSrc": "1326:51:39", - "nodeType": "YulExpressionStatement", - "src": "1326:51:39" - } - ] - }, - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "1208:175:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1256:6:39", - "nodeType": "YulTypedName", - "src": "1256:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1264:3:39", - "nodeType": "YulTypedName", - "src": "1264:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1272:5:39", - "nodeType": "YulTypedName", - "src": "1272:5:39", - "type": "" - } - ], - "src": "1208:175:39" - }, - { - "body": { - "nativeSrc": "1490:409:39", - "nodeType": "YulBlock", - "src": "1490:409:39", - "statements": [ - { - "body": { - "nativeSrc": "1536:83:39", - "nodeType": "YulBlock", - "src": "1536:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1538:77:39", - "nodeType": "YulIdentifier", - "src": "1538:77:39" - }, - "nativeSrc": "1538:79:39", - "nodeType": "YulFunctionCall", - "src": "1538:79:39" - }, - "nativeSrc": "1538:79:39", - "nodeType": "YulExpressionStatement", - "src": "1538:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1511:7:39", - "nodeType": "YulIdentifier", - "src": "1511:7:39" - }, - { - "name": "headStart", - "nativeSrc": "1520:9:39", - "nodeType": "YulIdentifier", - "src": "1520:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1507:3:39", - "nodeType": "YulIdentifier", - "src": "1507:3:39" - }, - "nativeSrc": "1507:23:39", - "nodeType": "YulFunctionCall", - "src": "1507:23:39" - }, - { - "kind": "number", - "nativeSrc": "1532:2:39", - "nodeType": "YulLiteral", - "src": "1532:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1503:3:39", - "nodeType": "YulIdentifier", - "src": "1503:3:39" - }, - "nativeSrc": "1503:32:39", - "nodeType": "YulFunctionCall", - "src": "1503:32:39" - }, - "nativeSrc": "1500:119:39", - "nodeType": "YulIf", - "src": "1500:119:39" - }, - { - "nativeSrc": "1629:117:39", - "nodeType": "YulBlock", - "src": "1629:117:39", - "statements": [ - { - "nativeSrc": "1644:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1644:15:39", - "value": { - "kind": "number", - "nativeSrc": "1658:1:39", - "nodeType": "YulLiteral", - "src": "1658:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1648:6:39", - "nodeType": "YulTypedName", - "src": "1648:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1673:63:39", - "nodeType": "YulAssignment", - "src": "1673:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1708:9:39", - "nodeType": "YulIdentifier", - "src": "1708:9:39" - }, - { - "name": "offset", - "nativeSrc": "1719:6:39", - "nodeType": "YulIdentifier", - "src": "1719:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1704:3:39", - "nodeType": "YulIdentifier", - "src": "1704:3:39" - }, - "nativeSrc": "1704:22:39", - "nodeType": "YulFunctionCall", - "src": "1704:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1728:7:39", - "nodeType": "YulIdentifier", - "src": "1728:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "1683:20:39", - "nodeType": "YulIdentifier", - "src": "1683:20:39" - }, - "nativeSrc": "1683:53:39", - "nodeType": "YulFunctionCall", - "src": "1683:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1673:6:39", - "nodeType": "YulIdentifier", - "src": "1673:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "1756:136:39", - "nodeType": "YulBlock", - "src": "1756:136:39", - "statements": [ - { - "nativeSrc": "1771:16:39", - "nodeType": "YulVariableDeclaration", - "src": "1771:16:39", - "value": { - "kind": "number", - "nativeSrc": "1785:2:39", - "nodeType": "YulLiteral", - "src": "1785:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1775:6:39", - "nodeType": "YulTypedName", - "src": "1775:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1801:81:39", - "nodeType": "YulAssignment", - "src": "1801:81:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1854:9:39", - "nodeType": "YulIdentifier", - "src": "1854:9:39" - }, - { - "name": "offset", - "nativeSrc": "1865:6:39", - "nodeType": "YulIdentifier", - "src": "1865:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1850:3:39", - "nodeType": "YulIdentifier", - "src": "1850:3:39" - }, - "nativeSrc": "1850:22:39", - "nodeType": "YulFunctionCall", - "src": "1850:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1874:7:39", - "nodeType": "YulIdentifier", - "src": "1874:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "1811:38:39", - "nodeType": "YulIdentifier", - "src": "1811:38:39" - }, - "nativeSrc": "1811:71:39", - "nodeType": "YulFunctionCall", - "src": "1811:71:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1801:6:39", - "nodeType": "YulIdentifier", - "src": "1801:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8101", - "nativeSrc": "1389:510:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1452:9:39", - "nodeType": "YulTypedName", - "src": "1452:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1463:7:39", - "nodeType": "YulTypedName", - "src": "1463:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1475:6:39", - "nodeType": "YulTypedName", - "src": "1475:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1483:6:39", - "nodeType": "YulTypedName", - "src": "1483:6:39", - "type": "" - } - ], - "src": "1389:510:39" - }, - { - "body": { - "nativeSrc": "1937:28:39", - "nodeType": "YulBlock", - "src": "1937:28:39", - "statements": [ - { - "nativeSrc": "1947:12:39", - "nodeType": "YulAssignment", - "src": "1947:12:39", - "value": { - "name": "value", - "nativeSrc": "1954:5:39", - "nodeType": "YulIdentifier", - "src": "1954:5:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "1947:3:39", - "nodeType": "YulIdentifier", - "src": "1947:3:39" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "1905:60:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1923:5:39", - "nodeType": "YulTypedName", - "src": "1923:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "1933:3:39", - "nodeType": "YulTypedName", - "src": "1933:3:39", - "type": "" - } - ], - "src": "1905:60:39" - }, - { - "body": { - "nativeSrc": "2031:82:39", - "nodeType": "YulBlock", - "src": "2031:82:39", - "statements": [ - { - "nativeSrc": "2041:66:39", - "nodeType": "YulAssignment", - "src": "2041:66:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2099:5:39", - "nodeType": "YulIdentifier", - "src": "2099:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "2081:17:39", - "nodeType": "YulIdentifier", - "src": "2081:17:39" - }, - "nativeSrc": "2081:24:39", - "nodeType": "YulFunctionCall", - "src": "2081:24:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "2072:8:39", - "nodeType": "YulIdentifier", - "src": "2072:8:39" - }, - "nativeSrc": "2072:34:39", - "nodeType": "YulFunctionCall", - "src": "2072:34:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "2054:17:39", - "nodeType": "YulIdentifier", - "src": "2054:17:39" - }, - "nativeSrc": "2054:53:39", - "nodeType": "YulFunctionCall", - "src": "2054:53:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "2041:9:39", - "nodeType": "YulIdentifier", - "src": "2041:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "1971:142:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2011:5:39", - "nodeType": "YulTypedName", - "src": "2011:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "2021:9:39", - "nodeType": "YulTypedName", - "src": "2021:9:39", - "type": "" - } - ], - "src": "1971:142:39" - }, - { - "body": { - "nativeSrc": "2179:66:39", - "nodeType": "YulBlock", - "src": "2179:66:39", - "statements": [ - { - "nativeSrc": "2189:50:39", - "nodeType": "YulAssignment", - "src": "2189:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2233:5:39", - "nodeType": "YulIdentifier", - "src": "2233:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "2202:30:39", - "nodeType": "YulIdentifier", - "src": "2202:30:39" - }, - "nativeSrc": "2202:37:39", - "nodeType": "YulFunctionCall", - "src": "2202:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "2189:9:39", - "nodeType": "YulIdentifier", - "src": "2189:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "2119:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2159:5:39", - "nodeType": "YulTypedName", - "src": "2159:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "2169:9:39", - "nodeType": "YulTypedName", - "src": "2169:9:39", - "type": "" - } - ], - "src": "2119:126:39" - }, - { - "body": { - "nativeSrc": "2332:66:39", - "nodeType": "YulBlock", - "src": "2332:66:39", - "statements": [ - { - "nativeSrc": "2342:50:39", - "nodeType": "YulAssignment", - "src": "2342:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2386:5:39", - "nodeType": "YulIdentifier", - "src": "2386:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "2355:30:39", - "nodeType": "YulIdentifier", - "src": "2355:30:39" - }, - "nativeSrc": "2355:37:39", - "nodeType": "YulFunctionCall", - "src": "2355:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "2342:9:39", - "nodeType": "YulIdentifier", - "src": "2342:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "2251:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2312:5:39", - "nodeType": "YulTypedName", - "src": "2312:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "2322:9:39", - "nodeType": "YulTypedName", - "src": "2322:9:39", - "type": "" - } - ], - "src": "2251:147:39" - }, - { - "body": { - "nativeSrc": "2490:87:39", - "nodeType": "YulBlock", - "src": "2490:87:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2507:3:39", - "nodeType": "YulIdentifier", - "src": "2507:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2564:5:39", - "nodeType": "YulIdentifier", - "src": "2564:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "2512:51:39", - "nodeType": "YulIdentifier", - "src": "2512:51:39" - }, - "nativeSrc": "2512:58:39", - "nodeType": "YulFunctionCall", - "src": "2512:58:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2500:6:39", - "nodeType": "YulIdentifier", - "src": "2500:6:39" - }, - "nativeSrc": "2500:71:39", - "nodeType": "YulFunctionCall", - "src": "2500:71:39" - }, - "nativeSrc": "2500:71:39", - "nodeType": "YulExpressionStatement", - "src": "2500:71:39" - } - ] - }, - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "2404:173:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2478:5:39", - "nodeType": "YulTypedName", - "src": "2478:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2485:3:39", - "nodeType": "YulTypedName", - "src": "2485:3:39", - "type": "" - } - ], - "src": "2404:173:39" - }, - { - "body": { - "nativeSrc": "2702:145:39", - "nodeType": "YulBlock", - "src": "2702:145:39", - "statements": [ - { - "nativeSrc": "2712:26:39", - "nodeType": "YulAssignment", - "src": "2712:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2724:9:39", - "nodeType": "YulIdentifier", - "src": "2724:9:39" - }, - { - "kind": "number", - "nativeSrc": "2735:2:39", - "nodeType": "YulLiteral", - "src": "2735:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2720:3:39", - "nodeType": "YulIdentifier", - "src": "2720:3:39" - }, - "nativeSrc": "2720:18:39", - "nodeType": "YulFunctionCall", - "src": "2720:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2712:4:39", - "nodeType": "YulIdentifier", - "src": "2712:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2813:6:39", - "nodeType": "YulIdentifier", - "src": "2813:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2826:9:39", - "nodeType": "YulIdentifier", - "src": "2826:9:39" - }, - { - "kind": "number", - "nativeSrc": "2837:1:39", - "nodeType": "YulLiteral", - "src": "2837:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2822:3:39", - "nodeType": "YulIdentifier", - "src": "2822:3:39" - }, - "nativeSrc": "2822:17:39", - "nodeType": "YulFunctionCall", - "src": "2822:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "2748:64:39", - "nodeType": "YulIdentifier", - "src": "2748:64:39" - }, - "nativeSrc": "2748:92:39", - "nodeType": "YulFunctionCall", - "src": "2748:92:39" - }, - "nativeSrc": "2748:92:39", - "nodeType": "YulExpressionStatement", - "src": "2748:92:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed", - "nativeSrc": "2583:264:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2674:9:39", - "nodeType": "YulTypedName", - "src": "2674:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2686:6:39", - "nodeType": "YulTypedName", - "src": "2686:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2697:4:39", - "nodeType": "YulTypedName", - "src": "2697:4:39", - "type": "" - } - ], - "src": "2583:264:39" - }, - { - "body": { - "nativeSrc": "2924:66:39", - "nodeType": "YulBlock", - "src": "2924:66:39", - "statements": [ - { - "nativeSrc": "2934:50:39", - "nodeType": "YulAssignment", - "src": "2934:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2978:5:39", - "nodeType": "YulIdentifier", - "src": "2978:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "2947:30:39", - "nodeType": "YulIdentifier", - "src": "2947:30:39" - }, - "nativeSrc": "2947:37:39", - "nodeType": "YulFunctionCall", - "src": "2947:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "2934:9:39", - "nodeType": "YulIdentifier", - "src": "2934:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ENS_$136_to_t_address", - "nativeSrc": "2853:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2904:5:39", - "nodeType": "YulTypedName", - "src": "2904:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "2914:9:39", - "nodeType": "YulTypedName", - "src": "2914:9:39", - "type": "" - } - ], - "src": "2853:137:39" - }, - { - "body": { - "nativeSrc": "3072:77:39", - "nodeType": "YulBlock", - "src": "3072:77:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3089:3:39", - "nodeType": "YulIdentifier", - "src": "3089:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3136:5:39", - "nodeType": "YulIdentifier", - "src": "3136:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ENS_$136_to_t_address", - "nativeSrc": "3094:41:39", - "nodeType": "YulIdentifier", - "src": "3094:41:39" - }, - "nativeSrc": "3094:48:39", - "nodeType": "YulFunctionCall", - "src": "3094:48:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3082:6:39", - "nodeType": "YulIdentifier", - "src": "3082:6:39" - }, - "nativeSrc": "3082:61:39", - "nodeType": "YulFunctionCall", - "src": "3082:61:39" - }, - "nativeSrc": "3082:61:39", - "nodeType": "YulExpressionStatement", - "src": "3082:61:39" - } - ] - }, - "name": "abi_encode_t_contract$_ENS_$136_to_t_address_fromStack", - "nativeSrc": "2996:153:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3060:5:39", - "nodeType": "YulTypedName", - "src": "3060:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "3067:3:39", - "nodeType": "YulTypedName", - "src": "3067:3:39", - "type": "" - } - ], - "src": "2996:153:39" - }, - { - "body": { - "nativeSrc": "3264:135:39", - "nodeType": "YulBlock", - "src": "3264:135:39", - "statements": [ - { - "nativeSrc": "3274:26:39", - "nodeType": "YulAssignment", - "src": "3274:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3286:9:39", - "nodeType": "YulIdentifier", - "src": "3286:9:39" - }, - { - "kind": "number", - "nativeSrc": "3297:2:39", - "nodeType": "YulLiteral", - "src": "3297:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3282:3:39", - "nodeType": "YulIdentifier", - "src": "3282:3:39" - }, - "nativeSrc": "3282:18:39", - "nodeType": "YulFunctionCall", - "src": "3282:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3274:4:39", - "nodeType": "YulIdentifier", - "src": "3274:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "3365:6:39", - "nodeType": "YulIdentifier", - "src": "3365:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3378:9:39", - "nodeType": "YulIdentifier", - "src": "3378:9:39" - }, - { - "kind": "number", - "nativeSrc": "3389:1:39", - "nodeType": "YulLiteral", - "src": "3389:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3374:3:39", - "nodeType": "YulIdentifier", - "src": "3374:3:39" - }, - "nativeSrc": "3374:17:39", - "nodeType": "YulFunctionCall", - "src": "3374:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ENS_$136_to_t_address_fromStack", - "nativeSrc": "3310:54:39", - "nodeType": "YulIdentifier", - "src": "3310:54:39" - }, - "nativeSrc": "3310:82:39", - "nodeType": "YulFunctionCall", - "src": "3310:82:39" - }, - "nativeSrc": "3310:82:39", - "nodeType": "YulExpressionStatement", - "src": "3310:82:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ENS_$136__to_t_address__fromStack_reversed", - "nativeSrc": "3155:244:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3236:9:39", - "nodeType": "YulTypedName", - "src": "3236:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "3248:6:39", - "nodeType": "YulTypedName", - "src": "3248:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "3259:4:39", - "nodeType": "YulTypedName", - "src": "3259:4:39", - "type": "" - } - ], - "src": "3155:244:39" - }, - { - "body": { - "nativeSrc": "3448:79:39", - "nodeType": "YulBlock", - "src": "3448:79:39", - "statements": [ - { - "body": { - "nativeSrc": "3505:16:39", - "nodeType": "YulBlock", - "src": "3505:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3514:1:39", - "nodeType": "YulLiteral", - "src": "3514:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3517:1:39", - "nodeType": "YulLiteral", - "src": "3517:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3507:6:39", - "nodeType": "YulIdentifier", - "src": "3507:6:39" - }, - "nativeSrc": "3507:12:39", - "nodeType": "YulFunctionCall", - "src": "3507:12:39" - }, - "nativeSrc": "3507:12:39", - "nodeType": "YulExpressionStatement", - "src": "3507:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3471:5:39", - "nodeType": "YulIdentifier", - "src": "3471:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3496:5:39", - "nodeType": "YulIdentifier", - "src": "3496:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "3478:17:39", - "nodeType": "YulIdentifier", - "src": "3478:17:39" - }, - "nativeSrc": "3478:24:39", - "nodeType": "YulFunctionCall", - "src": "3478:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3468:2:39", - "nodeType": "YulIdentifier", - "src": "3468:2:39" - }, - "nativeSrc": "3468:35:39", - "nodeType": "YulFunctionCall", - "src": "3468:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3461:6:39", - "nodeType": "YulIdentifier", - "src": "3461:6:39" - }, - "nativeSrc": "3461:43:39", - "nodeType": "YulFunctionCall", - "src": "3461:43:39" - }, - "nativeSrc": "3458:63:39", - "nodeType": "YulIf", - "src": "3458:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "3405:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3441:5:39", - "nodeType": "YulTypedName", - "src": "3441:5:39", - "type": "" - } - ], - "src": "3405:122:39" - }, - { - "body": { - "nativeSrc": "3585:87:39", - "nodeType": "YulBlock", - "src": "3585:87:39", - "statements": [ - { - "nativeSrc": "3595:29:39", - "nodeType": "YulAssignment", - "src": "3595:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3617:6:39", - "nodeType": "YulIdentifier", - "src": "3617:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3604:12:39", - "nodeType": "YulIdentifier", - "src": "3604:12:39" - }, - "nativeSrc": "3604:20:39", - "nodeType": "YulFunctionCall", - "src": "3604:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "3595:5:39", - "nodeType": "YulIdentifier", - "src": "3595:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3660:5:39", - "nodeType": "YulIdentifier", - "src": "3660:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "3633:26:39", - "nodeType": "YulIdentifier", - "src": "3633:26:39" - }, - "nativeSrc": "3633:33:39", - "nodeType": "YulFunctionCall", - "src": "3633:33:39" - }, - "nativeSrc": "3633:33:39", - "nodeType": "YulExpressionStatement", - "src": "3633:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "3533:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3563:6:39", - "nodeType": "YulTypedName", - "src": "3563:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3571:3:39", - "nodeType": "YulTypedName", - "src": "3571:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "3579:5:39", - "nodeType": "YulTypedName", - "src": "3579:5:39", - "type": "" - } - ], - "src": "3533:139:39" - }, - { - "body": { - "nativeSrc": "3761:391:39", - "nodeType": "YulBlock", - "src": "3761:391:39", - "statements": [ - { - "body": { - "nativeSrc": "3807:83:39", - "nodeType": "YulBlock", - "src": "3807:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3809:77:39", - "nodeType": "YulIdentifier", - "src": "3809:77:39" - }, - "nativeSrc": "3809:79:39", - "nodeType": "YulFunctionCall", - "src": "3809:79:39" - }, - "nativeSrc": "3809:79:39", - "nodeType": "YulExpressionStatement", - "src": "3809:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3782:7:39", - "nodeType": "YulIdentifier", - "src": "3782:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3791:9:39", - "nodeType": "YulIdentifier", - "src": "3791:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3778:3:39", - "nodeType": "YulIdentifier", - "src": "3778:3:39" - }, - "nativeSrc": "3778:23:39", - "nodeType": "YulFunctionCall", - "src": "3778:23:39" - }, - { - "kind": "number", - "nativeSrc": "3803:2:39", - "nodeType": "YulLiteral", - "src": "3803:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3774:3:39", - "nodeType": "YulIdentifier", - "src": "3774:3:39" - }, - "nativeSrc": "3774:32:39", - "nodeType": "YulFunctionCall", - "src": "3774:32:39" - }, - "nativeSrc": "3771:119:39", - "nodeType": "YulIf", - "src": "3771:119:39" - }, - { - "nativeSrc": "3900:117:39", - "nodeType": "YulBlock", - "src": "3900:117:39", - "statements": [ - { - "nativeSrc": "3915:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3915:15:39", - "value": { - "kind": "number", - "nativeSrc": "3929:1:39", - "nodeType": "YulLiteral", - "src": "3929:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3919:6:39", - "nodeType": "YulTypedName", - "src": "3919:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3944:63:39", - "nodeType": "YulAssignment", - "src": "3944:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3979:9:39", - "nodeType": "YulIdentifier", - "src": "3979:9:39" - }, - { - "name": "offset", - "nativeSrc": "3990:6:39", - "nodeType": "YulIdentifier", - "src": "3990:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3975:3:39", - "nodeType": "YulIdentifier", - "src": "3975:3:39" - }, - "nativeSrc": "3975:22:39", - "nodeType": "YulFunctionCall", - "src": "3975:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3999:7:39", - "nodeType": "YulIdentifier", - "src": "3999:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "3954:20:39", - "nodeType": "YulIdentifier", - "src": "3954:20:39" - }, - "nativeSrc": "3954:53:39", - "nodeType": "YulFunctionCall", - "src": "3954:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3944:6:39", - "nodeType": "YulIdentifier", - "src": "3944:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4027:118:39", - "nodeType": "YulBlock", - "src": "4027:118:39", - "statements": [ - { - "nativeSrc": "4042:16:39", - "nodeType": "YulVariableDeclaration", - "src": "4042:16:39", - "value": { - "kind": "number", - "nativeSrc": "4056:2:39", - "nodeType": "YulLiteral", - "src": "4056:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4046:6:39", - "nodeType": "YulTypedName", - "src": "4046:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4072:63:39", - "nodeType": "YulAssignment", - "src": "4072:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4107:9:39", - "nodeType": "YulIdentifier", - "src": "4107:9:39" - }, - { - "name": "offset", - "nativeSrc": "4118:6:39", - "nodeType": "YulIdentifier", - "src": "4118:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4103:3:39", - "nodeType": "YulIdentifier", - "src": "4103:3:39" - }, - "nativeSrc": "4103:22:39", - "nodeType": "YulFunctionCall", - "src": "4103:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4127:7:39", - "nodeType": "YulIdentifier", - "src": "4127:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "4082:20:39", - "nodeType": "YulIdentifier", - "src": "4082:20:39" - }, - "nativeSrc": "4082:53:39", - "nodeType": "YulFunctionCall", - "src": "4082:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4072:6:39", - "nodeType": "YulIdentifier", - "src": "4072:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32", - "nativeSrc": "3678:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3723:9:39", - "nodeType": "YulTypedName", - "src": "3723:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3734:7:39", - "nodeType": "YulTypedName", - "src": "3734:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3746:6:39", - "nodeType": "YulTypedName", - "src": "3746:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3754:6:39", - "nodeType": "YulTypedName", - "src": "3754:6:39", - "type": "" - } - ], - "src": "3678:474:39" - }, - { - "body": { - "nativeSrc": "4223:53:39", - "nodeType": "YulBlock", - "src": "4223:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4240:3:39", - "nodeType": "YulIdentifier", - "src": "4240:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4263:5:39", - "nodeType": "YulIdentifier", - "src": "4263:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "4245:17:39", - "nodeType": "YulIdentifier", - "src": "4245:17:39" - }, - "nativeSrc": "4245:24:39", - "nodeType": "YulFunctionCall", - "src": "4245:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4233:6:39", - "nodeType": "YulIdentifier", - "src": "4233:6:39" - }, - "nativeSrc": "4233:37:39", - "nodeType": "YulFunctionCall", - "src": "4233:37:39" - }, - "nativeSrc": "4233:37:39", - "nodeType": "YulExpressionStatement", - "src": "4233:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4158:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4211:5:39", - "nodeType": "YulTypedName", - "src": "4211:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4218:3:39", - "nodeType": "YulTypedName", - "src": "4218:3:39", - "type": "" - } - ], - "src": "4158:118:39" - }, - { - "body": { - "nativeSrc": "4347:53:39", - "nodeType": "YulBlock", - "src": "4347:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4364:3:39", - "nodeType": "YulIdentifier", - "src": "4364:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4387:5:39", - "nodeType": "YulIdentifier", - "src": "4387:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "4369:17:39", - "nodeType": "YulIdentifier", - "src": "4369:17:39" - }, - "nativeSrc": "4369:24:39", - "nodeType": "YulFunctionCall", - "src": "4369:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4357:6:39", - "nodeType": "YulIdentifier", - "src": "4357:6:39" - }, - "nativeSrc": "4357:37:39", - "nodeType": "YulFunctionCall", - "src": "4357:37:39" - }, - "nativeSrc": "4357:37:39", - "nodeType": "YulExpressionStatement", - "src": "4357:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "4282:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4335:5:39", - "nodeType": "YulTypedName", - "src": "4335:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4342:3:39", - "nodeType": "YulTypedName", - "src": "4342:3:39", - "type": "" - } - ], - "src": "4282:118:39" - }, - { - "body": { - "nativeSrc": "4484:66:39", - "nodeType": "YulBlock", - "src": "4484:66:39", - "statements": [ - { - "nativeSrc": "4494:50:39", - "nodeType": "YulAssignment", - "src": "4494:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4538:5:39", - "nodeType": "YulIdentifier", - "src": "4538:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "4507:30:39", - "nodeType": "YulIdentifier", - "src": "4507:30:39" - }, - "nativeSrc": "4507:37:39", - "nodeType": "YulFunctionCall", - "src": "4507:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "4494:9:39", - "nodeType": "YulIdentifier", - "src": "4494:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "4406:144:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4464:5:39", - "nodeType": "YulTypedName", - "src": "4464:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "4474:9:39", - "nodeType": "YulTypedName", - "src": "4474:9:39", - "type": "" - } - ], - "src": "4406:144:39" - }, - { - "body": { - "nativeSrc": "4639:84:39", - "nodeType": "YulBlock", - "src": "4639:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4656:3:39", - "nodeType": "YulIdentifier", - "src": "4656:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4710:5:39", - "nodeType": "YulIdentifier", - "src": "4710:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "4661:48:39", - "nodeType": "YulIdentifier", - "src": "4661:48:39" - }, - "nativeSrc": "4661:55:39", - "nodeType": "YulFunctionCall", - "src": "4661:55:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4649:6:39", - "nodeType": "YulIdentifier", - "src": "4649:6:39" - }, - "nativeSrc": "4649:68:39", - "nodeType": "YulFunctionCall", - "src": "4649:68:39" - }, - "nativeSrc": "4649:68:39", - "nodeType": "YulExpressionStatement", - "src": "4649:68:39" - } - ] - }, - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "4556:167:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4627:5:39", - "nodeType": "YulTypedName", - "src": "4627:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4634:3:39", - "nodeType": "YulTypedName", - "src": "4634:3:39", - "type": "" - } - ], - "src": "4556:167:39" - }, - { - "body": { - "nativeSrc": "4901:306:39", - "nodeType": "YulBlock", - "src": "4901:306:39", - "statements": [ - { - "nativeSrc": "4911:26:39", - "nodeType": "YulAssignment", - "src": "4911:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4923:9:39", - "nodeType": "YulIdentifier", - "src": "4923:9:39" - }, - { - "kind": "number", - "nativeSrc": "4934:2:39", - "nodeType": "YulLiteral", - "src": "4934:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4919:3:39", - "nodeType": "YulIdentifier", - "src": "4919:3:39" - }, - "nativeSrc": "4919:18:39", - "nodeType": "YulFunctionCall", - "src": "4919:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4911:4:39", - "nodeType": "YulIdentifier", - "src": "4911:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4991:6:39", - "nodeType": "YulIdentifier", - "src": "4991:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5004:9:39", - "nodeType": "YulIdentifier", - "src": "5004:9:39" - }, - { - "kind": "number", - "nativeSrc": "5015:1:39", - "nodeType": "YulLiteral", - "src": "5015:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5000:3:39", - "nodeType": "YulIdentifier", - "src": "5000:3:39" - }, - "nativeSrc": "5000:17:39", - "nodeType": "YulFunctionCall", - "src": "5000:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4947:43:39", - "nodeType": "YulIdentifier", - "src": "4947:43:39" - }, - "nativeSrc": "4947:71:39", - "nodeType": "YulFunctionCall", - "src": "4947:71:39" - }, - "nativeSrc": "4947:71:39", - "nodeType": "YulExpressionStatement", - "src": "4947:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "5072:6:39", - "nodeType": "YulIdentifier", - "src": "5072:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5085:9:39", - "nodeType": "YulIdentifier", - "src": "5085:9:39" - }, - { - "kind": "number", - "nativeSrc": "5096:2:39", - "nodeType": "YulLiteral", - "src": "5096:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5081:3:39", - "nodeType": "YulIdentifier", - "src": "5081:3:39" - }, - "nativeSrc": "5081:18:39", - "nodeType": "YulFunctionCall", - "src": "5081:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "5028:43:39", - "nodeType": "YulIdentifier", - "src": "5028:43:39" - }, - "nativeSrc": "5028:72:39", - "nodeType": "YulFunctionCall", - "src": "5028:72:39" - }, - "nativeSrc": "5028:72:39", - "nodeType": "YulExpressionStatement", - "src": "5028:72:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "5172:6:39", - "nodeType": "YulIdentifier", - "src": "5172:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5185:9:39", - "nodeType": "YulIdentifier", - "src": "5185:9:39" - }, - { - "kind": "number", - "nativeSrc": "5196:2:39", - "nodeType": "YulLiteral", - "src": "5196:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5181:3:39", - "nodeType": "YulIdentifier", - "src": "5181:3:39" - }, - "nativeSrc": "5181:18:39", - "nodeType": "YulFunctionCall", - "src": "5181:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "5110:61:39", - "nodeType": "YulIdentifier", - "src": "5110:61:39" - }, - "nativeSrc": "5110:90:39", - "nodeType": "YulFunctionCall", - "src": "5110:90:39" - }, - "nativeSrc": "5110:90:39", - "nodeType": "YulExpressionStatement", - "src": "5110:90:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8101__to_t_address_t_bytes32_t_address__fromStack_reversed", - "nativeSrc": "4729:478:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4857:9:39", - "nodeType": "YulTypedName", - "src": "4857:9:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4869:6:39", - "nodeType": "YulTypedName", - "src": "4869:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4877:6:39", - "nodeType": "YulTypedName", - "src": "4877:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4885:6:39", - "nodeType": "YulTypedName", - "src": "4885:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4896:4:39", - "nodeType": "YulTypedName", - "src": "4896:4:39", - "type": "" - } - ], - "src": "4729:478:39" - }, - { - "body": { - "nativeSrc": "5339:206:39", - "nodeType": "YulBlock", - "src": "5339:206:39", - "statements": [ - { - "nativeSrc": "5349:26:39", - "nodeType": "YulAssignment", - "src": "5349:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5361:9:39", - "nodeType": "YulIdentifier", - "src": "5361:9:39" - }, - { - "kind": "number", - "nativeSrc": "5372:2:39", - "nodeType": "YulLiteral", - "src": "5372:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5357:3:39", - "nodeType": "YulIdentifier", - "src": "5357:3:39" - }, - "nativeSrc": "5357:18:39", - "nodeType": "YulFunctionCall", - "src": "5357:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5349:4:39", - "nodeType": "YulIdentifier", - "src": "5349:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5429:6:39", - "nodeType": "YulIdentifier", - "src": "5429:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5442:9:39", - "nodeType": "YulIdentifier", - "src": "5442:9:39" - }, - { - "kind": "number", - "nativeSrc": "5453:1:39", - "nodeType": "YulLiteral", - "src": "5453:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5438:3:39", - "nodeType": "YulIdentifier", - "src": "5438:3:39" - }, - "nativeSrc": "5438:17:39", - "nodeType": "YulFunctionCall", - "src": "5438:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "5385:43:39", - "nodeType": "YulIdentifier", - "src": "5385:43:39" - }, - "nativeSrc": "5385:71:39", - "nodeType": "YulFunctionCall", - "src": "5385:71:39" - }, - "nativeSrc": "5385:71:39", - "nodeType": "YulExpressionStatement", - "src": "5385:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "5510:6:39", - "nodeType": "YulIdentifier", - "src": "5510:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5523:9:39", - "nodeType": "YulIdentifier", - "src": "5523:9:39" - }, - { - "kind": "number", - "nativeSrc": "5534:2:39", - "nodeType": "YulLiteral", - "src": "5534:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5519:3:39", - "nodeType": "YulIdentifier", - "src": "5519:3:39" - }, - "nativeSrc": "5519:18:39", - "nodeType": "YulFunctionCall", - "src": "5519:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "5466:43:39", - "nodeType": "YulIdentifier", - "src": "5466:43:39" - }, - "nativeSrc": "5466:72:39", - "nodeType": "YulFunctionCall", - "src": "5466:72:39" - }, - "nativeSrc": "5466:72:39", - "nodeType": "YulExpressionStatement", - "src": "5466:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "5213:332:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5303:9:39", - "nodeType": "YulTypedName", - "src": "5303:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "5315:6:39", - "nodeType": "YulTypedName", - "src": "5315:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5323:6:39", - "nodeType": "YulTypedName", - "src": "5323:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5334:4:39", - "nodeType": "YulTypedName", - "src": "5334:4:39", - "type": "" - } - ], - "src": "5213:332:39" - }, - { - "body": { - "nativeSrc": "5649:124:39", - "nodeType": "YulBlock", - "src": "5649:124:39", - "statements": [ - { - "nativeSrc": "5659:26:39", - "nodeType": "YulAssignment", - "src": "5659:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5671:9:39", - "nodeType": "YulIdentifier", - "src": "5671:9:39" - }, - { - "kind": "number", - "nativeSrc": "5682:2:39", - "nodeType": "YulLiteral", - "src": "5682:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5667:3:39", - "nodeType": "YulIdentifier", - "src": "5667:3:39" - }, - "nativeSrc": "5667:18:39", - "nodeType": "YulFunctionCall", - "src": "5667:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5659:4:39", - "nodeType": "YulIdentifier", - "src": "5659:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5739:6:39", - "nodeType": "YulIdentifier", - "src": "5739:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5752:9:39", - "nodeType": "YulIdentifier", - "src": "5752:9:39" - }, - { - "kind": "number", - "nativeSrc": "5763:1:39", - "nodeType": "YulLiteral", - "src": "5763:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5748:3:39", - "nodeType": "YulIdentifier", - "src": "5748:3:39" - }, - "nativeSrc": "5748:17:39", - "nodeType": "YulFunctionCall", - "src": "5748:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "5695:43:39", - "nodeType": "YulIdentifier", - "src": "5695:43:39" - }, - "nativeSrc": "5695:71:39", - "nodeType": "YulFunctionCall", - "src": "5695:71:39" - }, - "nativeSrc": "5695:71:39", - "nodeType": "YulExpressionStatement", - "src": "5695:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "5551:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5621:9:39", - "nodeType": "YulTypedName", - "src": "5621:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5633:6:39", - "nodeType": "YulTypedName", - "src": "5633:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5644:4:39", - "nodeType": "YulTypedName", - "src": "5644:4:39", - "type": "" - } - ], - "src": "5551:222:39" - }, - { - "body": { - "nativeSrc": "5842:80:39", - "nodeType": "YulBlock", - "src": "5842:80:39", - "statements": [ - { - "nativeSrc": "5852:22:39", - "nodeType": "YulAssignment", - "src": "5852:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "5867:6:39", - "nodeType": "YulIdentifier", - "src": "5867:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5861:5:39", - "nodeType": "YulIdentifier", - "src": "5861:5:39" - }, - "nativeSrc": "5861:13:39", - "nodeType": "YulFunctionCall", - "src": "5861:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "5852:5:39", - "nodeType": "YulIdentifier", - "src": "5852:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5910:5:39", - "nodeType": "YulIdentifier", - "src": "5910:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "5883:26:39", - "nodeType": "YulIdentifier", - "src": "5883:26:39" - }, - "nativeSrc": "5883:33:39", - "nodeType": "YulFunctionCall", - "src": "5883:33:39" - }, - "nativeSrc": "5883:33:39", - "nodeType": "YulExpressionStatement", - "src": "5883:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "5779:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "5820:6:39", - "nodeType": "YulTypedName", - "src": "5820:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "5828:3:39", - "nodeType": "YulTypedName", - "src": "5828:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "5836:5:39", - "nodeType": "YulTypedName", - "src": "5836:5:39", - "type": "" - } - ], - "src": "5779:143:39" - }, - { - "body": { - "nativeSrc": "6005:274:39", - "nodeType": "YulBlock", - "src": "6005:274:39", - "statements": [ - { - "body": { - "nativeSrc": "6051:83:39", - "nodeType": "YulBlock", - "src": "6051:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "6053:77:39", - "nodeType": "YulIdentifier", - "src": "6053:77:39" - }, - "nativeSrc": "6053:79:39", - "nodeType": "YulFunctionCall", - "src": "6053:79:39" - }, - "nativeSrc": "6053:79:39", - "nodeType": "YulExpressionStatement", - "src": "6053:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6026:7:39", - "nodeType": "YulIdentifier", - "src": "6026:7:39" - }, - { - "name": "headStart", - "nativeSrc": "6035:9:39", - "nodeType": "YulIdentifier", - "src": "6035:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6022:3:39", - "nodeType": "YulIdentifier", - "src": "6022:3:39" - }, - "nativeSrc": "6022:23:39", - "nodeType": "YulFunctionCall", - "src": "6022:23:39" - }, - { - "kind": "number", - "nativeSrc": "6047:2:39", - "nodeType": "YulLiteral", - "src": "6047:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6018:3:39", - "nodeType": "YulIdentifier", - "src": "6018:3:39" - }, - "nativeSrc": "6018:32:39", - "nodeType": "YulFunctionCall", - "src": "6018:32:39" - }, - "nativeSrc": "6015:119:39", - "nodeType": "YulIf", - "src": "6015:119:39" - }, - { - "nativeSrc": "6144:128:39", - "nodeType": "YulBlock", - "src": "6144:128:39", - "statements": [ - { - "nativeSrc": "6159:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6159:15:39", - "value": { - "kind": "number", - "nativeSrc": "6173:1:39", - "nodeType": "YulLiteral", - "src": "6173:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6163:6:39", - "nodeType": "YulTypedName", - "src": "6163:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6188:74:39", - "nodeType": "YulAssignment", - "src": "6188:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6234:9:39", - "nodeType": "YulIdentifier", - "src": "6234:9:39" - }, - { - "name": "offset", - "nativeSrc": "6245:6:39", - "nodeType": "YulIdentifier", - "src": "6245:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6230:3:39", - "nodeType": "YulIdentifier", - "src": "6230:3:39" - }, - "nativeSrc": "6230:22:39", - "nodeType": "YulFunctionCall", - "src": "6230:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6254:7:39", - "nodeType": "YulIdentifier", - "src": "6254:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "6198:31:39", - "nodeType": "YulIdentifier", - "src": "6198:31:39" - }, - "nativeSrc": "6198:64:39", - "nodeType": "YulFunctionCall", - "src": "6198:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6188:6:39", - "nodeType": "YulIdentifier", - "src": "6188:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "5928:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5975:9:39", - "nodeType": "YulTypedName", - "src": "5975:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "5986:7:39", - "nodeType": "YulTypedName", - "src": "5986:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "5998:6:39", - "nodeType": "YulTypedName", - "src": "5998:6:39", - "type": "" - } - ], - "src": "5928:351:39" - } - ] - }, - "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_$8101(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$8101(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$8101(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$8101(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IVerifier_$8101(value)\n }\n\n function abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8101(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_$8101(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_$7736_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7736_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7736_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_$8101_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$8101_to_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8101__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_$8101_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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "7230": [ - { - "length": 32, - "start": 410 - }, - { - "length": 32, - "start": 636 - } - ], - "7233": [ - { - "length": 32, - "start": 218 - }, - { - "length": 32, - "start": 374 - }, - { - "length": 32, - "start": 458 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea2646970667358221220c90dbfa0c27c6833e6ed98d1937d68c4ddcf4ef68d5d349eef2753821461b49064736f6c634300081c0033", - "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 0xC9 0xD 0xBF LOG0 0xC2 PUSH29 0x6833E6ED98D1937D68C4DDCF4EF68D5D349EEF2753821461B49064736F PUSH13 0x634300081C0033000000000000 ", - "sourceMap": "669:2681:32:-: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:32:-;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:39:-;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\":\"0x8e208b44d5dbf22552fe72d79b45c640855b84fbc9ee21f4c3bb4bfe81cbe8db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcf03e1a9386d80ff6b8e31870063424454f69d2626c0efb2c8cf55e69151489\",\"dweb:/ipfs/QmVYgfMSc1ve5JWePqiAGSXEfD76emw3oLsCM1krstmJq5\"]},\"@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 - }, - "@_7381": { - "entryPoint": null, - "id": 7381, - "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_3399": { - "entryPoint": 297, - "id": 3399, - "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:39", - "nodeType": "YulBlock", - "src": "0:2081:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "889:53:39", - "nodeType": "YulBlock", - "src": "889:53:39", - "statements": [ - { - "nativeSrc": "899:37:39", - "nodeType": "YulAssignment", - "src": "899:37:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "914:5:39", - "nodeType": "YulIdentifier", - "src": "914:5:39" - }, - { - "kind": "number", - "nativeSrc": "921:14:39", - "nodeType": "YulLiteral", - "src": "921:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "910:3:39", - "nodeType": "YulIdentifier", - "src": "910:3:39" - }, - "nativeSrc": "910:26:39", - "nodeType": "YulFunctionCall", - "src": "910:26:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "899:7:39", - "nodeType": "YulIdentifier", - "src": "899:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint48", - "nativeSrc": "845:97:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "871:5:39", - "nodeType": "YulTypedName", - "src": "871:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "881:7:39", - "nodeType": "YulTypedName", - "src": "881:7:39", - "type": "" - } - ], - "src": "845:97:39" - }, - { - "body": { - "nativeSrc": "990:78:39", - "nodeType": "YulBlock", - "src": "990:78:39", - "statements": [ - { - "body": { - "nativeSrc": "1046:16:39", - "nodeType": "YulBlock", - "src": "1046:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1055:1:39", - "nodeType": "YulLiteral", - "src": "1055:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1058:1:39", - "nodeType": "YulLiteral", - "src": "1058:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1048:6:39", - "nodeType": "YulIdentifier", - "src": "1048:6:39" - }, - "nativeSrc": "1048:12:39", - "nodeType": "YulFunctionCall", - "src": "1048:12:39" - }, - "nativeSrc": "1048:12:39", - "nodeType": "YulExpressionStatement", - "src": "1048:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1013:5:39", - "nodeType": "YulIdentifier", - "src": "1013:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1037:5:39", - "nodeType": "YulIdentifier", - "src": "1037:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "1020:16:39", - "nodeType": "YulIdentifier", - "src": "1020:16:39" - }, - "nativeSrc": "1020:23:39", - "nodeType": "YulFunctionCall", - "src": "1020:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1010:2:39", - "nodeType": "YulIdentifier", - "src": "1010:2:39" - }, - "nativeSrc": "1010:34:39", - "nodeType": "YulFunctionCall", - "src": "1010:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1003:6:39", - "nodeType": "YulIdentifier", - "src": "1003:6:39" - }, - "nativeSrc": "1003:42:39", - "nodeType": "YulFunctionCall", - "src": "1003:42:39" - }, - "nativeSrc": "1000:62:39", - "nodeType": "YulIf", - "src": "1000:62:39" - } - ] - }, - "name": "validator_revert_t_uint48", - "nativeSrc": "948:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "983:5:39", - "nodeType": "YulTypedName", - "src": "983:5:39", - "type": "" - } - ], - "src": "948:120:39" - }, - { - "body": { - "nativeSrc": "1136:79:39", - "nodeType": "YulBlock", - "src": "1136:79:39", - "statements": [ - { - "nativeSrc": "1146:22:39", - "nodeType": "YulAssignment", - "src": "1146:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1161:6:39", - "nodeType": "YulIdentifier", - "src": "1161:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "1155:5:39", - "nodeType": "YulIdentifier", - "src": "1155:5:39" - }, - "nativeSrc": "1155:13:39", - "nodeType": "YulFunctionCall", - "src": "1155:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1146:5:39", - "nodeType": "YulIdentifier", - "src": "1146:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1203:5:39", - "nodeType": "YulIdentifier", - "src": "1203:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint48", - "nativeSrc": "1177:25:39", - "nodeType": "YulIdentifier", - "src": "1177:25:39" - }, - "nativeSrc": "1177:32:39", - "nodeType": "YulFunctionCall", - "src": "1177:32:39" - }, - "nativeSrc": "1177:32:39", - "nodeType": "YulExpressionStatement", - "src": "1177:32:39" - } - ] - }, - "name": "abi_decode_t_uint48_fromMemory", - "nativeSrc": "1074:141:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1114:6:39", - "nodeType": "YulTypedName", - "src": "1114:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1122:3:39", - "nodeType": "YulTypedName", - "src": "1122:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1130:5:39", - "nodeType": "YulTypedName", - "src": "1130:5:39", - "type": "" - } - ], - "src": "1074:141:39" - }, - { - "body": { - "nativeSrc": "1314:412:39", - "nodeType": "YulBlock", - "src": "1314:412:39", - "statements": [ - { - "body": { - "nativeSrc": "1360:83:39", - "nodeType": "YulBlock", - "src": "1360:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1362:77:39", - "nodeType": "YulIdentifier", - "src": "1362:77:39" - }, - "nativeSrc": "1362:79:39", - "nodeType": "YulFunctionCall", - "src": "1362:79:39" - }, - "nativeSrc": "1362:79:39", - "nodeType": "YulExpressionStatement", - "src": "1362:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1335:7:39", - "nodeType": "YulIdentifier", - "src": "1335:7:39" - }, - { - "name": "headStart", - "nativeSrc": "1344:9:39", - "nodeType": "YulIdentifier", - "src": "1344:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1331:3:39", - "nodeType": "YulIdentifier", - "src": "1331:3:39" - }, - "nativeSrc": "1331:23:39", - "nodeType": "YulFunctionCall", - "src": "1331:23:39" - }, - { - "kind": "number", - "nativeSrc": "1356:2:39", - "nodeType": "YulLiteral", - "src": "1356:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1327:3:39", - "nodeType": "YulIdentifier", - "src": "1327:3:39" - }, - "nativeSrc": "1327:32:39", - "nodeType": "YulFunctionCall", - "src": "1327:32:39" - }, - "nativeSrc": "1324:119:39", - "nodeType": "YulIf", - "src": "1324:119:39" - }, - { - "nativeSrc": "1453:128:39", - "nodeType": "YulBlock", - "src": "1453:128:39", - "statements": [ - { - "nativeSrc": "1468:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1468:15:39", - "value": { - "kind": "number", - "nativeSrc": "1482:1:39", - "nodeType": "YulLiteral", - "src": "1482:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1472:6:39", - "nodeType": "YulTypedName", - "src": "1472:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1497:74:39", - "nodeType": "YulAssignment", - "src": "1497:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1543:9:39", - "nodeType": "YulIdentifier", - "src": "1543:9:39" - }, - { - "name": "offset", - "nativeSrc": "1554:6:39", - "nodeType": "YulIdentifier", - "src": "1554:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1539:3:39", - "nodeType": "YulIdentifier", - "src": "1539:3:39" - }, - "nativeSrc": "1539:22:39", - "nodeType": "YulFunctionCall", - "src": "1539:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1563:7:39", - "nodeType": "YulIdentifier", - "src": "1563:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1507:31:39", - "nodeType": "YulIdentifier", - "src": "1507:31:39" - }, - "nativeSrc": "1507:64:39", - "nodeType": "YulFunctionCall", - "src": "1507:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1497:6:39", - "nodeType": "YulIdentifier", - "src": "1497:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "1591:128:39", - "nodeType": "YulBlock", - "src": "1591:128:39", - "statements": [ - { - "nativeSrc": "1606:16:39", - "nodeType": "YulVariableDeclaration", - "src": "1606:16:39", - "value": { - "kind": "number", - "nativeSrc": "1620:2:39", - "nodeType": "YulLiteral", - "src": "1620:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1610:6:39", - "nodeType": "YulTypedName", - "src": "1610:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1636:73:39", - "nodeType": "YulAssignment", - "src": "1636:73:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1681:9:39", - "nodeType": "YulIdentifier", - "src": "1681:9:39" - }, - { - "name": "offset", - "nativeSrc": "1692:6:39", - "nodeType": "YulIdentifier", - "src": "1692:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1677:3:39", - "nodeType": "YulIdentifier", - "src": "1677:3:39" - }, - "nativeSrc": "1677:22:39", - "nodeType": "YulFunctionCall", - "src": "1677:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1701:7:39", - "nodeType": "YulIdentifier", - "src": "1701:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint48_fromMemory", - "nativeSrc": "1646:30:39", - "nodeType": "YulIdentifier", - "src": "1646:30:39" - }, - "nativeSrc": "1646:63:39", - "nodeType": "YulFunctionCall", - "src": "1646:63:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1636:6:39", - "nodeType": "YulIdentifier", - "src": "1636:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint48_fromMemory", - "nativeSrc": "1221:505:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1276:9:39", - "nodeType": "YulTypedName", - "src": "1276:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1287:7:39", - "nodeType": "YulTypedName", - "src": "1287:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1299:6:39", - "nodeType": "YulTypedName", - "src": "1299:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1307:6:39", - "nodeType": "YulTypedName", - "src": "1307:6:39", - "type": "" - } - ], - "src": "1221:505:39" - }, - { - "body": { - "nativeSrc": "1797:53:39", - "nodeType": "YulBlock", - "src": "1797:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1814:3:39", - "nodeType": "YulIdentifier", - "src": "1814:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1837:5:39", - "nodeType": "YulIdentifier", - "src": "1837:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1819:17:39", - "nodeType": "YulIdentifier", - "src": "1819:17:39" - }, - "nativeSrc": "1819:24:39", - "nodeType": "YulFunctionCall", - "src": "1819:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1807:6:39", - "nodeType": "YulIdentifier", - "src": "1807:6:39" - }, - "nativeSrc": "1807:37:39", - "nodeType": "YulFunctionCall", - "src": "1807:37:39" - }, - "nativeSrc": "1807:37:39", - "nodeType": "YulExpressionStatement", - "src": "1807:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1732:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1785:5:39", - "nodeType": "YulTypedName", - "src": "1785:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1792:3:39", - "nodeType": "YulTypedName", - "src": "1792:3:39", - "type": "" - } - ], - "src": "1732:118:39" - }, - { - "body": { - "nativeSrc": "1954:124:39", - "nodeType": "YulBlock", - "src": "1954:124:39", - "statements": [ - { - "nativeSrc": "1964:26:39", - "nodeType": "YulAssignment", - "src": "1964:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1976:9:39", - "nodeType": "YulIdentifier", - "src": "1976:9:39" - }, - { - "kind": "number", - "nativeSrc": "1987:2:39", - "nodeType": "YulLiteral", - "src": "1987:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1972:3:39", - "nodeType": "YulIdentifier", - "src": "1972:3:39" - }, - "nativeSrc": "1972:18:39", - "nodeType": "YulFunctionCall", - "src": "1972:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1964:4:39", - "nodeType": "YulIdentifier", - "src": "1964:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2044:6:39", - "nodeType": "YulIdentifier", - "src": "2044:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2057:9:39", - "nodeType": "YulIdentifier", - "src": "2057:9:39" - }, - { - "kind": "number", - "nativeSrc": "2068:1:39", - "nodeType": "YulLiteral", - "src": "2068:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2053:3:39", - "nodeType": "YulIdentifier", - "src": "2053:3:39" - }, - "nativeSrc": "2053:17:39", - "nodeType": "YulFunctionCall", - "src": "2053:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "2000:43:39", - "nodeType": "YulIdentifier", - "src": "2000:43:39" - }, - "nativeSrc": "2000:71:39", - "nodeType": "YulFunctionCall", - "src": "2000:71:39" - }, - "nativeSrc": "2000:71:39", - "nodeType": "YulExpressionStatement", - "src": "2000:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "1856:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1926:9:39", - "nodeType": "YulTypedName", - "src": "1926:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1938:6:39", - "nodeType": "YulTypedName", - "src": "1938:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1949:4:39", - "nodeType": "YulTypedName", - "src": "1949:4:39", - "type": "" - } - ], - "src": "1856:222:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60a060405234801561001057600080fd5b50604051611f85380380611f858339818101604052810190610032919061043c565b8061004161012960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b35760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100aa919061048b565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100eb6000801b8261013160201b60201c565b5050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506104a6565b600033905090565b60008060001b83036101f257600073ffffffffffffffffffffffffffffffffffffffff1661016361020a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146101b0576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610202838361023460201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610246838361033160201b60201c565b61032657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102c361012960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061032b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103cb826103a0565b9050919050565b6103db816103c0565b81146103e657600080fd5b50565b6000815190506103f8816103d2565b92915050565b600065ffffffffffff82169050919050565b610419816103fe565b811461042457600080fd5b50565b60008151905061043681610410565b92915050565b600080604083850312156104535761045261039b565b5b6000610461858286016103e9565b925050602061047285828601610427565b9150509250929050565b610485816103c0565b82525050565b60006020820190506104a0600083018461047c565b92915050565b608051611ab66104cf6000396000818161063e0152818161079601526109fb0152611ab66000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea2646970667358221220d44239aa553373132c81fc8c57e3b38437535b47175888a8cbee49e7e0b303e064736f6c634300081c0033", - "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1F85 CODESIZE SUB DUP1 PUSH2 0x1F85 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 0x1AB6 PUSH2 0x4CF PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x63E ADD MSTORE DUP2 DUP2 PUSH2 0x796 ADD MSTORE PUSH2 0x9FB ADD MSTORE PUSH2 0x1AB6 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 0x14BB JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x1503 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 0x153F 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 0x1590 JUMP JUMPDEST PUSH2 0x466 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x15CC 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 0x15CC 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 0x1645 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x223 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21E SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x4F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x1685 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x16DE JUMP JUMPDEST PUSH2 0x622 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x272 SWAP2 SWAP1 PUSH2 0x176A 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 0x1794 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 0x1794 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 0x1645 JUMP JUMPDEST PUSH2 0x699 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0x1503 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 0x17AF 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 0x15CC 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 0x17D8 JUMP JUMPDEST PUSH2 0x76A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x153F 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 0x1818 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 0x1645 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 0x187F 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 0x153F 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 0x18D2 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 0x1794 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 0x191C 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 0x1982 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 0x153F 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 0x1982 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 0x17AF 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 0x153F 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 0x18D2 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 0x1A1D 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 0x1A46 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 PUSH2 0x1430 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1438 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1443 DUP5 PUSH2 0x1452 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1498 DUP2 PUSH2 0x1463 JUMP JUMPDEST DUP2 EQ PUSH2 0x14A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14B5 DUP2 PUSH2 0x148F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D1 JUMPI PUSH2 0x14D0 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14DF DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14FD DUP2 PUSH2 0x14E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1518 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x14F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1539 DUP2 PUSH2 0x151E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1554 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x156D DUP2 PUSH2 0x155A JUMP JUMPDEST DUP2 EQ PUSH2 0x1578 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x158A DUP2 PUSH2 0x1564 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15A6 JUMPI PUSH2 0x15A5 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x15B4 DUP5 DUP3 DUP6 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15C6 DUP2 PUSH2 0x155A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15E1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1612 DUP3 PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1622 DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP2 EQ PUSH2 0x162D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x163F DUP2 PUSH2 0x1619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x165C JUMPI PUSH2 0x165B PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x166A DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x167B DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x169B JUMPI PUSH2 0x169A PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x16A9 DUP5 DUP3 DUP6 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16BB DUP2 PUSH2 0x151E JUMP JUMPDEST DUP2 EQ PUSH2 0x16C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16D8 DUP2 PUSH2 0x16B2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F4 JUMPI PUSH2 0x16F3 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1702 DUP5 DUP3 DUP6 ADD PUSH2 0x16C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1730 PUSH2 0x172B PUSH2 0x1726 DUP5 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1742 DUP3 PUSH2 0x1715 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1754 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1764 DUP2 PUSH2 0x1749 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x177F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x175B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178E DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17A9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1785 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17C4 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1530 JUMP JUMPDEST PUSH2 0x17D1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17EF JUMPI PUSH2 0x17EE PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17FD DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x180E DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x182D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x183A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x184C DUP3 PUSH2 0x1607 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x185C DUP2 PUSH2 0x1841 JUMP JUMPDEST DUP2 EQ PUSH2 0x1867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1879 DUP2 PUSH2 0x1853 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1898 JUMPI PUSH2 0x1897 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x18A6 DUP7 DUP3 DUP8 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x18B7 DUP7 DUP3 DUP8 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18C8 DUP7 DUP3 DUP8 ADD PUSH2 0x186A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x18E7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x18F4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1906 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1916 DUP2 PUSH2 0x18FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1931 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x193E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x15BD JUMP JUMPDEST PUSH2 0x194B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x190D 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 0x198D DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1998 DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19B6 JUMPI PUSH2 0x19B5 PUSH2 0x1953 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 0x19EE PUSH2 0x19E9 PUSH2 0x19E4 DUP5 PUSH2 0x19BC JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x19C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FE DUP2 PUSH2 0x19D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A17 DUP2 PUSH2 0x1A04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A32 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x19F5 JUMP JUMPDEST PUSH2 0x1A3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A0E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A51 DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1A5C DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7A JUMPI PUSH2 0x1A79 PUSH2 0x1953 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 TIMESTAMP CODECOPY 0xAA SSTORE CALLER PUSH20 0x132C81FC8C57E3B38437535B47175888A8CBEE49 0xE7 0xE0 0xB3 SUB 0xE0 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "743:1954:33:-: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:33::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:39:-;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:33:-;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@DEFAULT_ADMIN_ROLE_1222": { - "entryPoint": 1891, - "id": 1222, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@REGISTER_DOMAIN_ROLE_7358": { - "entryPoint": 1157, - "id": 7358, - "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_3399": { - "entryPoint": 3281, - "id": 3399, - "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_4003": { - "entryPoint": 5153, - "id": 4003, - "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_7423": { - "entryPoint": 2511, - "id": 7423, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@registerDomain_7400": { - "entryPoint": 1898, - "id": 7400, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@registry_7361": { - "entryPoint": 1596, - "id": 7361, - "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_3755": { - "entryPoint": 3543, - "id": 3755, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@ternary_3965": { - "entryPoint": 5176, - "id": 3965, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@toUint48_6129": { - "entryPoint": 4306, - "id": 6129, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@toUint_7138": { - "entryPoint": 5202, - "id": 7138, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_decode_t_address": { - "entryPoint": 5680, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes32": { - "entryPoint": 5499, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes4": { - "entryPoint": 5286, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_contract$_IVerifier_$8101": { - "entryPoint": 6250, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_uint48": { - "entryPoint": 5833, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 5765, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_bytes32": { - "entryPoint": 6104, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8101": { - "entryPoint": 6271, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_bytes32": { - "entryPoint": 5520, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32t_address": { - "entryPoint": 5701, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes4": { - "entryPoint": 5307, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint48": { - "entryPoint": 5854, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_address_to_t_address_fromStack": { - "entryPoint": 6021, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bool_to_t_bool_fromStack": { - "entryPoint": 5364, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bytes32_to_t_bytes32_fromStack": { - "entryPoint": 5565, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack": { - "entryPoint": 5979, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack": { - "entryPoint": 6413, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack": { - "entryPoint": 6645, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 6670, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint48_to_t_uint48_fromStack": { - "entryPoint": 5424, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": 6036, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { - "entryPoint": 6354, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8101__to_t_address_t_bytes32_t_address__fromStack_reversed": { - "entryPoint": 6428, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed": { - "entryPoint": 6168, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": 5379, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": 5580, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed": { - "entryPoint": 5994, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed": { - "entryPoint": 6685, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed": { - "entryPoint": 5439, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed": { - "entryPoint": 6063, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "checked_add_t_uint48": { - "entryPoint": 6530, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_sub_t_uint48": { - "entryPoint": 6726, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_address": { - "entryPoint": 5639, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bool": { - "entryPoint": 5352, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes32": { - "entryPoint": 5466, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes4": { - "entryPoint": 5219, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_contract$_IVerifier_$8101": { - "entryPoint": 6209, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_rational_48_by_1": { - "entryPoint": 6588, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 5607, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 6660, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint48": { - "entryPoint": 5406, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint8": { - "entryPoint": 6598, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_ISciRegistry_$7736_to_t_address": { - "entryPoint": 5961, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_IVerifier_$8101_to_t_address": { - "entryPoint": 6395, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_rational_48_by_1_to_t_uint8": { - "entryPoint": 6611, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_uint160_to_t_address": { - "entryPoint": 5943, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_uint160_to_t_uint160": { - "entryPoint": 5909, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "identity": { - "entryPoint": 5899, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x11": { - "entryPoint": 6483, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 5214, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "validator_revert_t_address": { - "entryPoint": 5657, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes32": { - "entryPoint": 5476, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes4": { - "entryPoint": 5263, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_contract$_IVerifier_$8101": { - "entryPoint": 6227, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint48": { - "entryPoint": 5810, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:11304:39", - "nodeType": "YulBlock", - "src": "0:11304:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "378:105:39", - "nodeType": "YulBlock", - "src": "378:105:39", - "statements": [ - { - "nativeSrc": "388:89:39", - "nodeType": "YulAssignment", - "src": "388:89:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "403:5:39", - "nodeType": "YulIdentifier", - "src": "403:5:39" - }, - { - "kind": "number", - "nativeSrc": "410:66:39", - "nodeType": "YulLiteral", - "src": "410:66:39", - "type": "", - "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "399:3:39", - "nodeType": "YulIdentifier", - "src": "399:3:39" - }, - "nativeSrc": "399:78:39", - "nodeType": "YulFunctionCall", - "src": "399:78:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "388:7:39", - "nodeType": "YulIdentifier", - "src": "388:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes4", - "nativeSrc": "334:149:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "360:5:39", - "nodeType": "YulTypedName", - "src": "360:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "370:7:39", - "nodeType": "YulTypedName", - "src": "370:7:39", - "type": "" - } - ], - "src": "334:149:39" - }, - { - "body": { - "nativeSrc": "531:78:39", - "nodeType": "YulBlock", - "src": "531:78:39", - "statements": [ - { - "body": { - "nativeSrc": "587:16:39", - "nodeType": "YulBlock", - "src": "587:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "596:1:39", - "nodeType": "YulLiteral", - "src": "596:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "599:1:39", - "nodeType": "YulLiteral", - "src": "599:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "589:6:39", - "nodeType": "YulIdentifier", - "src": "589:6:39" - }, - "nativeSrc": "589:12:39", - "nodeType": "YulFunctionCall", - "src": "589:12:39" - }, - "nativeSrc": "589:12:39", - "nodeType": "YulExpressionStatement", - "src": "589:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "554:5:39", - "nodeType": "YulIdentifier", - "src": "554:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "578:5:39", - "nodeType": "YulIdentifier", - "src": "578:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes4", - "nativeSrc": "561:16:39", - "nodeType": "YulIdentifier", - "src": "561:16:39" - }, - "nativeSrc": "561:23:39", - "nodeType": "YulFunctionCall", - "src": "561:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "551:2:39", - "nodeType": "YulIdentifier", - "src": "551:2:39" - }, - "nativeSrc": "551:34:39", - "nodeType": "YulFunctionCall", - "src": "551:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "544:6:39", - "nodeType": "YulIdentifier", - "src": "544:6:39" - }, - "nativeSrc": "544:42:39", - "nodeType": "YulFunctionCall", - "src": "544:42:39" - }, - "nativeSrc": "541:62:39", - "nodeType": "YulIf", - "src": "541:62:39" - } - ] - }, - "name": "validator_revert_t_bytes4", - "nativeSrc": "489:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "524:5:39", - "nodeType": "YulTypedName", - "src": "524:5:39", - "type": "" - } - ], - "src": "489:120:39" - }, - { - "body": { - "nativeSrc": "666:86:39", - "nodeType": "YulBlock", - "src": "666:86:39", - "statements": [ - { - "nativeSrc": "676:29:39", - "nodeType": "YulAssignment", - "src": "676:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "698:6:39", - "nodeType": "YulIdentifier", - "src": "698:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "685:12:39", - "nodeType": "YulIdentifier", - "src": "685:12:39" - }, - "nativeSrc": "685:20:39", - "nodeType": "YulFunctionCall", - "src": "685:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "676:5:39", - "nodeType": "YulIdentifier", - "src": "676:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "740:5:39", - "nodeType": "YulIdentifier", - "src": "740:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes4", - "nativeSrc": "714:25:39", - "nodeType": "YulIdentifier", - "src": "714:25:39" - }, - "nativeSrc": "714:32:39", - "nodeType": "YulFunctionCall", - "src": "714:32:39" - }, - "nativeSrc": "714:32:39", - "nodeType": "YulExpressionStatement", - "src": "714:32:39" - } - ] - }, - "name": "abi_decode_t_bytes4", - "nativeSrc": "615:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "644:6:39", - "nodeType": "YulTypedName", - "src": "644:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "652:3:39", - "nodeType": "YulTypedName", - "src": "652:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "660:5:39", - "nodeType": "YulTypedName", - "src": "660:5:39", - "type": "" - } - ], - "src": "615:137:39" - }, - { - "body": { - "nativeSrc": "823:262:39", - "nodeType": "YulBlock", - "src": "823:262:39", - "statements": [ - { - "body": { - "nativeSrc": "869:83:39", - "nodeType": "YulBlock", - "src": "869:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "871:77:39", - "nodeType": "YulIdentifier", - "src": "871:77:39" - }, - "nativeSrc": "871:79:39", - "nodeType": "YulFunctionCall", - "src": "871:79:39" - }, - "nativeSrc": "871:79:39", - "nodeType": "YulExpressionStatement", - "src": "871:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "844:7:39", - "nodeType": "YulIdentifier", - "src": "844:7:39" - }, - { - "name": "headStart", - "nativeSrc": "853:9:39", - "nodeType": "YulIdentifier", - "src": "853:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "840:3:39", - "nodeType": "YulIdentifier", - "src": "840:3:39" - }, - "nativeSrc": "840:23:39", - "nodeType": "YulFunctionCall", - "src": "840:23:39" - }, - { - "kind": "number", - "nativeSrc": "865:2:39", - "nodeType": "YulLiteral", - "src": "865:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "836:3:39", - "nodeType": "YulIdentifier", - "src": "836:3:39" - }, - "nativeSrc": "836:32:39", - "nodeType": "YulFunctionCall", - "src": "836:32:39" - }, - "nativeSrc": "833:119:39", - "nodeType": "YulIf", - "src": "833:119:39" - }, - { - "nativeSrc": "962:116:39", - "nodeType": "YulBlock", - "src": "962:116:39", - "statements": [ - { - "nativeSrc": "977:15:39", - "nodeType": "YulVariableDeclaration", - "src": "977:15:39", - "value": { - "kind": "number", - "nativeSrc": "991:1:39", - "nodeType": "YulLiteral", - "src": "991:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "981:6:39", - "nodeType": "YulTypedName", - "src": "981:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1006:62:39", - "nodeType": "YulAssignment", - "src": "1006:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1040:9:39", - "nodeType": "YulIdentifier", - "src": "1040:9:39" - }, - { - "name": "offset", - "nativeSrc": "1051:6:39", - "nodeType": "YulIdentifier", - "src": "1051:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1036:3:39", - "nodeType": "YulIdentifier", - "src": "1036:3:39" - }, - "nativeSrc": "1036:22:39", - "nodeType": "YulFunctionCall", - "src": "1036:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1060:7:39", - "nodeType": "YulIdentifier", - "src": "1060:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes4", - "nativeSrc": "1016:19:39", - "nodeType": "YulIdentifier", - "src": "1016:19:39" - }, - "nativeSrc": "1016:52:39", - "nodeType": "YulFunctionCall", - "src": "1016:52:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1006:6:39", - "nodeType": "YulIdentifier", - "src": "1006:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes4", - "nativeSrc": "758:327:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "793:9:39", - "nodeType": "YulTypedName", - "src": "793:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "804:7:39", - "nodeType": "YulTypedName", - "src": "804:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "816:6:39", - "nodeType": "YulTypedName", - "src": "816:6:39", - "type": "" - } - ], - "src": "758:327:39" - }, - { - "body": { - "nativeSrc": "1133:48:39", - "nodeType": "YulBlock", - "src": "1133:48:39", - "statements": [ - { - "nativeSrc": "1143:32:39", - "nodeType": "YulAssignment", - "src": "1143:32:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1168:5:39", - "nodeType": "YulIdentifier", - "src": "1168:5:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1161:6:39", - "nodeType": "YulIdentifier", - "src": "1161:6:39" - }, - "nativeSrc": "1161:13:39", - "nodeType": "YulFunctionCall", - "src": "1161:13:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1154:6:39", - "nodeType": "YulIdentifier", - "src": "1154:6:39" - }, - "nativeSrc": "1154:21:39", - "nodeType": "YulFunctionCall", - "src": "1154:21:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1143:7:39", - "nodeType": "YulIdentifier", - "src": "1143:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bool", - "nativeSrc": "1091:90:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1115:5:39", - "nodeType": "YulTypedName", - "src": "1115:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1125:7:39", - "nodeType": "YulTypedName", - "src": "1125:7:39", - "type": "" - } - ], - "src": "1091:90:39" - }, - { - "body": { - "nativeSrc": "1246:50:39", - "nodeType": "YulBlock", - "src": "1246:50:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1263:3:39", - "nodeType": "YulIdentifier", - "src": "1263:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1283:5:39", - "nodeType": "YulIdentifier", - "src": "1283:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "1268:14:39", - "nodeType": "YulIdentifier", - "src": "1268:14:39" - }, - "nativeSrc": "1268:21:39", - "nodeType": "YulFunctionCall", - "src": "1268:21:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1256:6:39", - "nodeType": "YulIdentifier", - "src": "1256:6:39" - }, - "nativeSrc": "1256:34:39", - "nodeType": "YulFunctionCall", - "src": "1256:34:39" - }, - "nativeSrc": "1256:34:39", - "nodeType": "YulExpressionStatement", - "src": "1256:34:39" - } - ] - }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "1187:109:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1234:5:39", - "nodeType": "YulTypedName", - "src": "1234:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1241:3:39", - "nodeType": "YulTypedName", - "src": "1241:3:39", - "type": "" - } - ], - "src": "1187:109:39" - }, - { - "body": { - "nativeSrc": "1394:118:39", - "nodeType": "YulBlock", - "src": "1394:118:39", - "statements": [ - { - "nativeSrc": "1404:26:39", - "nodeType": "YulAssignment", - "src": "1404:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1416:9:39", - "nodeType": "YulIdentifier", - "src": "1416:9:39" - }, - { - "kind": "number", - "nativeSrc": "1427:2:39", - "nodeType": "YulLiteral", - "src": "1427:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1412:3:39", - "nodeType": "YulIdentifier", - "src": "1412:3:39" - }, - "nativeSrc": "1412:18:39", - "nodeType": "YulFunctionCall", - "src": "1412:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1404:4:39", - "nodeType": "YulIdentifier", - "src": "1404:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1478:6:39", - "nodeType": "YulIdentifier", - "src": "1478:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1491:9:39", - "nodeType": "YulIdentifier", - "src": "1491:9:39" - }, - { - "kind": "number", - "nativeSrc": "1502:1:39", - "nodeType": "YulLiteral", - "src": "1502:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1487:3:39", - "nodeType": "YulIdentifier", - "src": "1487:3:39" - }, - "nativeSrc": "1487:17:39", - "nodeType": "YulFunctionCall", - "src": "1487:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "1440:37:39", - "nodeType": "YulIdentifier", - "src": "1440:37:39" - }, - "nativeSrc": "1440:65:39", - "nodeType": "YulFunctionCall", - "src": "1440:65:39" - }, - "nativeSrc": "1440:65:39", - "nodeType": "YulExpressionStatement", - "src": "1440:65:39" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "1302:210:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1366:9:39", - "nodeType": "YulTypedName", - "src": "1366:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1378:6:39", - "nodeType": "YulTypedName", - "src": "1378:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1389:4:39", - "nodeType": "YulTypedName", - "src": "1389:4:39", - "type": "" - } - ], - "src": "1302:210:39" - }, - { - "body": { - "nativeSrc": "1562:53:39", - "nodeType": "YulBlock", - "src": "1562:53:39", - "statements": [ - { - "nativeSrc": "1572:37:39", - "nodeType": "YulAssignment", - "src": "1572:37:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1587:5:39", - "nodeType": "YulIdentifier", - "src": "1587:5:39" - }, - { - "kind": "number", - "nativeSrc": "1594:14:39", - "nodeType": "YulLiteral", - "src": "1594:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1583:3:39", - "nodeType": "YulIdentifier", - "src": "1583:3:39" - }, - "nativeSrc": "1583:26:39", - "nodeType": "YulFunctionCall", - "src": "1583:26:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1572:7:39", - "nodeType": "YulIdentifier", - "src": "1572:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint48", - "nativeSrc": "1518:97:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1544:5:39", - "nodeType": "YulTypedName", - "src": "1544:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1554:7:39", - "nodeType": "YulTypedName", - "src": "1554:7:39", - "type": "" - } - ], - "src": "1518:97:39" - }, - { - "body": { - "nativeSrc": "1684:52:39", - "nodeType": "YulBlock", - "src": "1684:52:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1701:3:39", - "nodeType": "YulIdentifier", - "src": "1701:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1723:5:39", - "nodeType": "YulIdentifier", - "src": "1723:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "1706:16:39", - "nodeType": "YulIdentifier", - "src": "1706:16:39" - }, - "nativeSrc": "1706:23:39", - "nodeType": "YulFunctionCall", - "src": "1706:23:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1694:6:39", - "nodeType": "YulIdentifier", - "src": "1694:6:39" - }, - "nativeSrc": "1694:36:39", - "nodeType": "YulFunctionCall", - "src": "1694:36:39" - }, - "nativeSrc": "1694:36:39", - "nodeType": "YulExpressionStatement", - "src": "1694:36:39" - } - ] - }, - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "1621:115:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1672:5:39", - "nodeType": "YulTypedName", - "src": "1672:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1679:3:39", - "nodeType": "YulTypedName", - "src": "1679:3:39", - "type": "" - } - ], - "src": "1621:115:39" - }, - { - "body": { - "nativeSrc": "1838:122:39", - "nodeType": "YulBlock", - "src": "1838:122:39", - "statements": [ - { - "nativeSrc": "1848:26:39", - "nodeType": "YulAssignment", - "src": "1848:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1860:9:39", - "nodeType": "YulIdentifier", - "src": "1860:9:39" - }, - { - "kind": "number", - "nativeSrc": "1871:2:39", - "nodeType": "YulLiteral", - "src": "1871:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1856:3:39", - "nodeType": "YulIdentifier", - "src": "1856:3:39" - }, - "nativeSrc": "1856:18:39", - "nodeType": "YulFunctionCall", - "src": "1856:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1848:4:39", - "nodeType": "YulIdentifier", - "src": "1848:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1926:6:39", - "nodeType": "YulIdentifier", - "src": "1926:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1939:9:39", - "nodeType": "YulIdentifier", - "src": "1939:9:39" - }, - { - "kind": "number", - "nativeSrc": "1950:1:39", - "nodeType": "YulLiteral", - "src": "1950:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1935:3:39", - "nodeType": "YulIdentifier", - "src": "1935:3:39" - }, - "nativeSrc": "1935:17:39", - "nodeType": "YulFunctionCall", - "src": "1935:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "1884:41:39", - "nodeType": "YulIdentifier", - "src": "1884:41:39" - }, - "nativeSrc": "1884:69:39", - "nodeType": "YulFunctionCall", - "src": "1884:69:39" - }, - "nativeSrc": "1884:69:39", - "nodeType": "YulExpressionStatement", - "src": "1884:69:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed", - "nativeSrc": "1742:218:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1810:9:39", - "nodeType": "YulTypedName", - "src": "1810:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1822:6:39", - "nodeType": "YulTypedName", - "src": "1822:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1833:4:39", - "nodeType": "YulTypedName", - "src": "1833:4:39", - "type": "" - } - ], - "src": "1742:218:39" - }, - { - "body": { - "nativeSrc": "2011:32:39", - "nodeType": "YulBlock", - "src": "2011:32:39", - "statements": [ - { - "nativeSrc": "2021:16:39", - "nodeType": "YulAssignment", - "src": "2021:16:39", - "value": { - "name": "value", - "nativeSrc": "2032:5:39", - "nodeType": "YulIdentifier", - "src": "2032:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "2021:7:39", - "nodeType": "YulIdentifier", - "src": "2021:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "1966:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1993:5:39", - "nodeType": "YulTypedName", - "src": "1993:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "2003:7:39", - "nodeType": "YulTypedName", - "src": "2003:7:39", - "type": "" - } - ], - "src": "1966:77:39" - }, - { - "body": { - "nativeSrc": "2092:79:39", - "nodeType": "YulBlock", - "src": "2092:79:39", - "statements": [ - { - "body": { - "nativeSrc": "2149:16:39", - "nodeType": "YulBlock", - "src": "2149:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2158:1:39", - "nodeType": "YulLiteral", - "src": "2158:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2161:1:39", - "nodeType": "YulLiteral", - "src": "2161:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2151:6:39", - "nodeType": "YulIdentifier", - "src": "2151:6:39" - }, - "nativeSrc": "2151:12:39", - "nodeType": "YulFunctionCall", - "src": "2151:12:39" - }, - "nativeSrc": "2151:12:39", - "nodeType": "YulExpressionStatement", - "src": "2151:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2115:5:39", - "nodeType": "YulIdentifier", - "src": "2115:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2140:5:39", - "nodeType": "YulIdentifier", - "src": "2140:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "2122:17:39", - "nodeType": "YulIdentifier", - "src": "2122:17:39" - }, - "nativeSrc": "2122:24:39", - "nodeType": "YulFunctionCall", - "src": "2122:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "2112:2:39", - "nodeType": "YulIdentifier", - "src": "2112:2:39" - }, - "nativeSrc": "2112:35:39", - "nodeType": "YulFunctionCall", - "src": "2112:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2105:6:39", - "nodeType": "YulIdentifier", - "src": "2105:6:39" - }, - "nativeSrc": "2105:43:39", - "nodeType": "YulFunctionCall", - "src": "2105:43:39" - }, - "nativeSrc": "2102:63:39", - "nodeType": "YulIf", - "src": "2102:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "2049:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2085:5:39", - "nodeType": "YulTypedName", - "src": "2085:5:39", - "type": "" - } - ], - "src": "2049:122:39" - }, - { - "body": { - "nativeSrc": "2229:87:39", - "nodeType": "YulBlock", - "src": "2229:87:39", - "statements": [ - { - "nativeSrc": "2239:29:39", - "nodeType": "YulAssignment", - "src": "2239:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2261:6:39", - "nodeType": "YulIdentifier", - "src": "2261:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2248:12:39", - "nodeType": "YulIdentifier", - "src": "2248:12:39" - }, - "nativeSrc": "2248:20:39", - "nodeType": "YulFunctionCall", - "src": "2248:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "2239:5:39", - "nodeType": "YulIdentifier", - "src": "2239:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2304:5:39", - "nodeType": "YulIdentifier", - "src": "2304:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "2277:26:39", - "nodeType": "YulIdentifier", - "src": "2277:26:39" - }, - "nativeSrc": "2277:33:39", - "nodeType": "YulFunctionCall", - "src": "2277:33:39" - }, - "nativeSrc": "2277:33:39", - "nodeType": "YulExpressionStatement", - "src": "2277:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "2177:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2207:6:39", - "nodeType": "YulTypedName", - "src": "2207:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2215:3:39", - "nodeType": "YulTypedName", - "src": "2215:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "2223:5:39", - "nodeType": "YulTypedName", - "src": "2223:5:39", - "type": "" - } - ], - "src": "2177:139:39" - }, - { - "body": { - "nativeSrc": "2388:263:39", - "nodeType": "YulBlock", - "src": "2388:263:39", - "statements": [ - { - "body": { - "nativeSrc": "2434:83:39", - "nodeType": "YulBlock", - "src": "2434:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2436:77:39", - "nodeType": "YulIdentifier", - "src": "2436:77:39" - }, - "nativeSrc": "2436:79:39", - "nodeType": "YulFunctionCall", - "src": "2436:79:39" - }, - "nativeSrc": "2436:79:39", - "nodeType": "YulExpressionStatement", - "src": "2436:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2409:7:39", - "nodeType": "YulIdentifier", - "src": "2409:7:39" - }, - { - "name": "headStart", - "nativeSrc": "2418:9:39", - "nodeType": "YulIdentifier", - "src": "2418:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2405:3:39", - "nodeType": "YulIdentifier", - "src": "2405:3:39" - }, - "nativeSrc": "2405:23:39", - "nodeType": "YulFunctionCall", - "src": "2405:23:39" - }, - { - "kind": "number", - "nativeSrc": "2430:2:39", - "nodeType": "YulLiteral", - "src": "2430:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2401:3:39", - "nodeType": "YulIdentifier", - "src": "2401:3:39" - }, - "nativeSrc": "2401:32:39", - "nodeType": "YulFunctionCall", - "src": "2401:32:39" - }, - "nativeSrc": "2398:119:39", - "nodeType": "YulIf", - "src": "2398:119:39" - }, - { - "nativeSrc": "2527:117:39", - "nodeType": "YulBlock", - "src": "2527:117:39", - "statements": [ - { - "nativeSrc": "2542:15:39", - "nodeType": "YulVariableDeclaration", - "src": "2542:15:39", - "value": { - "kind": "number", - "nativeSrc": "2556:1:39", - "nodeType": "YulLiteral", - "src": "2556:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2546:6:39", - "nodeType": "YulTypedName", - "src": "2546:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2571:63:39", - "nodeType": "YulAssignment", - "src": "2571:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2606:9:39", - "nodeType": "YulIdentifier", - "src": "2606:9:39" - }, - { - "name": "offset", - "nativeSrc": "2617:6:39", - "nodeType": "YulIdentifier", - "src": "2617:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2602:3:39", - "nodeType": "YulIdentifier", - "src": "2602:3:39" - }, - "nativeSrc": "2602:22:39", - "nodeType": "YulFunctionCall", - "src": "2602:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2626:7:39", - "nodeType": "YulIdentifier", - "src": "2626:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "2581:20:39", - "nodeType": "YulIdentifier", - "src": "2581:20:39" - }, - "nativeSrc": "2581:53:39", - "nodeType": "YulFunctionCall", - "src": "2581:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2571:6:39", - "nodeType": "YulIdentifier", - "src": "2571:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "2322:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2358:9:39", - "nodeType": "YulTypedName", - "src": "2358:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "2369:7:39", - "nodeType": "YulTypedName", - "src": "2369:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "2381:6:39", - "nodeType": "YulTypedName", - "src": "2381:6:39", - "type": "" - } - ], - "src": "2322:329:39" - }, - { - "body": { - "nativeSrc": "2722:53:39", - "nodeType": "YulBlock", - "src": "2722:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2739:3:39", - "nodeType": "YulIdentifier", - "src": "2739:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2762:5:39", - "nodeType": "YulIdentifier", - "src": "2762:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "2744:17:39", - "nodeType": "YulIdentifier", - "src": "2744:17:39" - }, - "nativeSrc": "2744:24:39", - "nodeType": "YulFunctionCall", - "src": "2744:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2732:6:39", - "nodeType": "YulIdentifier", - "src": "2732:6:39" - }, - "nativeSrc": "2732:37:39", - "nodeType": "YulFunctionCall", - "src": "2732:37:39" - }, - "nativeSrc": "2732:37:39", - "nodeType": "YulExpressionStatement", - "src": "2732:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2657:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2710:5:39", - "nodeType": "YulTypedName", - "src": "2710:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2717:3:39", - "nodeType": "YulTypedName", - "src": "2717:3:39", - "type": "" - } - ], - "src": "2657:118:39" - }, - { - "body": { - "nativeSrc": "2879:124:39", - "nodeType": "YulBlock", - "src": "2879:124:39", - "statements": [ - { - "nativeSrc": "2889:26:39", - "nodeType": "YulAssignment", - "src": "2889:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2901:9:39", - "nodeType": "YulIdentifier", - "src": "2901:9:39" - }, - { - "kind": "number", - "nativeSrc": "2912:2:39", - "nodeType": "YulLiteral", - "src": "2912:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2897:3:39", - "nodeType": "YulIdentifier", - "src": "2897:3:39" - }, - "nativeSrc": "2897:18:39", - "nodeType": "YulFunctionCall", - "src": "2897:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2889:4:39", - "nodeType": "YulIdentifier", - "src": "2889:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2969:6:39", - "nodeType": "YulIdentifier", - "src": "2969:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2982:9:39", - "nodeType": "YulIdentifier", - "src": "2982:9:39" - }, - { - "kind": "number", - "nativeSrc": "2993:1:39", - "nodeType": "YulLiteral", - "src": "2993:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2978:3:39", - "nodeType": "YulIdentifier", - "src": "2978:3:39" - }, - "nativeSrc": "2978:17:39", - "nodeType": "YulFunctionCall", - "src": "2978:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2925:43:39", - "nodeType": "YulIdentifier", - "src": "2925:43:39" - }, - "nativeSrc": "2925:71:39", - "nodeType": "YulFunctionCall", - "src": "2925:71:39" - }, - "nativeSrc": "2925:71:39", - "nodeType": "YulExpressionStatement", - "src": "2925:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "2781:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2851:9:39", - "nodeType": "YulTypedName", - "src": "2851:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2863:6:39", - "nodeType": "YulTypedName", - "src": "2863:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2874:4:39", - "nodeType": "YulTypedName", - "src": "2874:4:39", - "type": "" - } - ], - "src": "2781:222:39" - }, - { - "body": { - "nativeSrc": "3054:81:39", - "nodeType": "YulBlock", - "src": "3054:81:39", - "statements": [ - { - "nativeSrc": "3064:65:39", - "nodeType": "YulAssignment", - "src": "3064:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3079:5:39", - "nodeType": "YulIdentifier", - "src": "3079:5:39" - }, - { - "kind": "number", - "nativeSrc": "3086:42:39", - "nodeType": "YulLiteral", - "src": "3086:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "3075:3:39", - "nodeType": "YulIdentifier", - "src": "3075:3:39" - }, - "nativeSrc": "3075:54:39", - "nodeType": "YulFunctionCall", - "src": "3075:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "3064:7:39", - "nodeType": "YulIdentifier", - "src": "3064:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "3009:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3036:5:39", - "nodeType": "YulTypedName", - "src": "3036:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "3046:7:39", - "nodeType": "YulTypedName", - "src": "3046:7:39", - "type": "" - } - ], - "src": "3009:126:39" - }, - { - "body": { - "nativeSrc": "3186:51:39", - "nodeType": "YulBlock", - "src": "3186:51:39", - "statements": [ - { - "nativeSrc": "3196:35:39", - "nodeType": "YulAssignment", - "src": "3196:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3225:5:39", - "nodeType": "YulIdentifier", - "src": "3225:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "3207:17:39", - "nodeType": "YulIdentifier", - "src": "3207:17:39" - }, - "nativeSrc": "3207:24:39", - "nodeType": "YulFunctionCall", - "src": "3207:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "3196:7:39", - "nodeType": "YulIdentifier", - "src": "3196:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "3141:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3168:5:39", - "nodeType": "YulTypedName", - "src": "3168:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "3178:7:39", - "nodeType": "YulTypedName", - "src": "3178:7:39", - "type": "" - } - ], - "src": "3141:96:39" - }, - { - "body": { - "nativeSrc": "3286:79:39", - "nodeType": "YulBlock", - "src": "3286:79:39", - "statements": [ - { - "body": { - "nativeSrc": "3343:16:39", - "nodeType": "YulBlock", - "src": "3343:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3352:1:39", - "nodeType": "YulLiteral", - "src": "3352:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3355:1:39", - "nodeType": "YulLiteral", - "src": "3355:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3345:6:39", - "nodeType": "YulIdentifier", - "src": "3345:6:39" - }, - "nativeSrc": "3345:12:39", - "nodeType": "YulFunctionCall", - "src": "3345:12:39" - }, - "nativeSrc": "3345:12:39", - "nodeType": "YulExpressionStatement", - "src": "3345:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3309:5:39", - "nodeType": "YulIdentifier", - "src": "3309:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3334:5:39", - "nodeType": "YulIdentifier", - "src": "3334:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "3316:17:39", - "nodeType": "YulIdentifier", - "src": "3316:17:39" - }, - "nativeSrc": "3316:24:39", - "nodeType": "YulFunctionCall", - "src": "3316:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3306:2:39", - "nodeType": "YulIdentifier", - "src": "3306:2:39" - }, - "nativeSrc": "3306:35:39", - "nodeType": "YulFunctionCall", - "src": "3306:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3299:6:39", - "nodeType": "YulIdentifier", - "src": "3299:6:39" - }, - "nativeSrc": "3299:43:39", - "nodeType": "YulFunctionCall", - "src": "3299:43:39" - }, - "nativeSrc": "3296:63:39", - "nodeType": "YulIf", - "src": "3296:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "3243:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3279:5:39", - "nodeType": "YulTypedName", - "src": "3279:5:39", - "type": "" - } - ], - "src": "3243:122:39" - }, - { - "body": { - "nativeSrc": "3423:87:39", - "nodeType": "YulBlock", - "src": "3423:87:39", - "statements": [ - { - "nativeSrc": "3433:29:39", - "nodeType": "YulAssignment", - "src": "3433:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3455:6:39", - "nodeType": "YulIdentifier", - "src": "3455:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3442:12:39", - "nodeType": "YulIdentifier", - "src": "3442:12:39" - }, - "nativeSrc": "3442:20:39", - "nodeType": "YulFunctionCall", - "src": "3442:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "3433:5:39", - "nodeType": "YulIdentifier", - "src": "3433:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3498:5:39", - "nodeType": "YulIdentifier", - "src": "3498:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "3471:26:39", - "nodeType": "YulIdentifier", - "src": "3471:26:39" - }, - "nativeSrc": "3471:33:39", - "nodeType": "YulFunctionCall", - "src": "3471:33:39" - }, - "nativeSrc": "3471:33:39", - "nodeType": "YulExpressionStatement", - "src": "3471:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "3371:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3401:6:39", - "nodeType": "YulTypedName", - "src": "3401:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3409:3:39", - "nodeType": "YulTypedName", - "src": "3409:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "3417:5:39", - "nodeType": "YulTypedName", - "src": "3417:5:39", - "type": "" - } - ], - "src": "3371:139:39" - }, - { - "body": { - "nativeSrc": "3599:391:39", - "nodeType": "YulBlock", - "src": "3599:391:39", - "statements": [ - { - "body": { - "nativeSrc": "3645:83:39", - "nodeType": "YulBlock", - "src": "3645:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3647:77:39", - "nodeType": "YulIdentifier", - "src": "3647:77:39" - }, - "nativeSrc": "3647:79:39", - "nodeType": "YulFunctionCall", - "src": "3647:79:39" - }, - "nativeSrc": "3647:79:39", - "nodeType": "YulExpressionStatement", - "src": "3647:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3620:7:39", - "nodeType": "YulIdentifier", - "src": "3620:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3629:9:39", - "nodeType": "YulIdentifier", - "src": "3629:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3616:3:39", - "nodeType": "YulIdentifier", - "src": "3616:3:39" - }, - "nativeSrc": "3616:23:39", - "nodeType": "YulFunctionCall", - "src": "3616:23:39" - }, - { - "kind": "number", - "nativeSrc": "3641:2:39", - "nodeType": "YulLiteral", - "src": "3641:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3612:3:39", - "nodeType": "YulIdentifier", - "src": "3612:3:39" - }, - "nativeSrc": "3612:32:39", - "nodeType": "YulFunctionCall", - "src": "3612:32:39" - }, - "nativeSrc": "3609:119:39", - "nodeType": "YulIf", - "src": "3609:119:39" - }, - { - "nativeSrc": "3738:117:39", - "nodeType": "YulBlock", - "src": "3738:117:39", - "statements": [ - { - "nativeSrc": "3753:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3753:15:39", - "value": { - "kind": "number", - "nativeSrc": "3767:1:39", - "nodeType": "YulLiteral", - "src": "3767:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3757:6:39", - "nodeType": "YulTypedName", - "src": "3757:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3782:63:39", - "nodeType": "YulAssignment", - "src": "3782:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3817:9:39", - "nodeType": "YulIdentifier", - "src": "3817:9:39" - }, - { - "name": "offset", - "nativeSrc": "3828:6:39", - "nodeType": "YulIdentifier", - "src": "3828:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3813:3:39", - "nodeType": "YulIdentifier", - "src": "3813:3:39" - }, - "nativeSrc": "3813:22:39", - "nodeType": "YulFunctionCall", - "src": "3813:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3837:7:39", - "nodeType": "YulIdentifier", - "src": "3837:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "3792:20:39", - "nodeType": "YulIdentifier", - "src": "3792:20:39" - }, - "nativeSrc": "3792:53:39", - "nodeType": "YulFunctionCall", - "src": "3792:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3782:6:39", - "nodeType": "YulIdentifier", - "src": "3782:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3865:118:39", - "nodeType": "YulBlock", - "src": "3865:118:39", - "statements": [ - { - "nativeSrc": "3880:16:39", - "nodeType": "YulVariableDeclaration", - "src": "3880:16:39", - "value": { - "kind": "number", - "nativeSrc": "3894:2:39", - "nodeType": "YulLiteral", - "src": "3894:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3884:6:39", - "nodeType": "YulTypedName", - "src": "3884:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3910:63:39", - "nodeType": "YulAssignment", - "src": "3910:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3945:9:39", - "nodeType": "YulIdentifier", - "src": "3945:9:39" - }, - { - "name": "offset", - "nativeSrc": "3956:6:39", - "nodeType": "YulIdentifier", - "src": "3956:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3941:3:39", - "nodeType": "YulIdentifier", - "src": "3941:3:39" - }, - "nativeSrc": "3941:22:39", - "nodeType": "YulFunctionCall", - "src": "3941:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3965:7:39", - "nodeType": "YulIdentifier", - "src": "3965:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "3920:20:39", - "nodeType": "YulIdentifier", - "src": "3920:20:39" - }, - "nativeSrc": "3920:53:39", - "nodeType": "YulFunctionCall", - "src": "3920:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3910:6:39", - "nodeType": "YulIdentifier", - "src": "3910:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_address", - "nativeSrc": "3516:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3561:9:39", - "nodeType": "YulTypedName", - "src": "3561:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3572:7:39", - "nodeType": "YulTypedName", - "src": "3572:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3584:6:39", - "nodeType": "YulTypedName", - "src": "3584:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3592:6:39", - "nodeType": "YulTypedName", - "src": "3592:6:39", - "type": "" - } - ], - "src": "3516:474:39" - }, - { - "body": { - "nativeSrc": "4062:263:39", - "nodeType": "YulBlock", - "src": "4062:263:39", - "statements": [ - { - "body": { - "nativeSrc": "4108:83:39", - "nodeType": "YulBlock", - "src": "4108:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4110:77:39", - "nodeType": "YulIdentifier", - "src": "4110:77:39" - }, - "nativeSrc": "4110:79:39", - "nodeType": "YulFunctionCall", - "src": "4110:79:39" - }, - "nativeSrc": "4110:79:39", - "nodeType": "YulExpressionStatement", - "src": "4110:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4083:7:39", - "nodeType": "YulIdentifier", - "src": "4083:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4092:9:39", - "nodeType": "YulIdentifier", - "src": "4092:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4079:3:39", - "nodeType": "YulIdentifier", - "src": "4079:3:39" - }, - "nativeSrc": "4079:23:39", - "nodeType": "YulFunctionCall", - "src": "4079:23:39" - }, - { - "kind": "number", - "nativeSrc": "4104:2:39", - "nodeType": "YulLiteral", - "src": "4104:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4075:3:39", - "nodeType": "YulIdentifier", - "src": "4075:3:39" - }, - "nativeSrc": "4075:32:39", - "nodeType": "YulFunctionCall", - "src": "4075:32:39" - }, - "nativeSrc": "4072:119:39", - "nodeType": "YulIf", - "src": "4072:119:39" - }, - { - "nativeSrc": "4201:117:39", - "nodeType": "YulBlock", - "src": "4201:117:39", - "statements": [ - { - "nativeSrc": "4216:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4216:15:39", - "value": { - "kind": "number", - "nativeSrc": "4230:1:39", - "nodeType": "YulLiteral", - "src": "4230:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4220:6:39", - "nodeType": "YulTypedName", - "src": "4220:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4245:63:39", - "nodeType": "YulAssignment", - "src": "4245:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4280:9:39", - "nodeType": "YulIdentifier", - "src": "4280:9:39" - }, - { - "name": "offset", - "nativeSrc": "4291:6:39", - "nodeType": "YulIdentifier", - "src": "4291:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4276:3:39", - "nodeType": "YulIdentifier", - "src": "4276:3:39" - }, - "nativeSrc": "4276:22:39", - "nodeType": "YulFunctionCall", - "src": "4276:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4300:7:39", - "nodeType": "YulIdentifier", - "src": "4300:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "4255:20:39", - "nodeType": "YulIdentifier", - "src": "4255:20:39" - }, - "nativeSrc": "4255:53:39", - "nodeType": "YulFunctionCall", - "src": "4255:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4245:6:39", - "nodeType": "YulIdentifier", - "src": "4245:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "3996:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4032:9:39", - "nodeType": "YulTypedName", - "src": "4032:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4043:7:39", - "nodeType": "YulTypedName", - "src": "4043:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4055:6:39", - "nodeType": "YulTypedName", - "src": "4055:6:39", - "type": "" - } - ], - "src": "3996:329:39" - }, - { - "body": { - "nativeSrc": "4373:78:39", - "nodeType": "YulBlock", - "src": "4373:78:39", - "statements": [ - { - "body": { - "nativeSrc": "4429:16:39", - "nodeType": "YulBlock", - "src": "4429:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4438:1:39", - "nodeType": "YulLiteral", - "src": "4438:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "4441:1:39", - "nodeType": "YulLiteral", - "src": "4441:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "4431:6:39", - "nodeType": "YulIdentifier", - "src": "4431:6:39" - }, - "nativeSrc": "4431:12:39", - "nodeType": "YulFunctionCall", - "src": "4431:12:39" - }, - "nativeSrc": "4431:12:39", - "nodeType": "YulExpressionStatement", - "src": "4431:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4396:5:39", - "nodeType": "YulIdentifier", - "src": "4396:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4420:5:39", - "nodeType": "YulIdentifier", - "src": "4420:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "4403:16:39", - "nodeType": "YulIdentifier", - "src": "4403:16:39" - }, - "nativeSrc": "4403:23:39", - "nodeType": "YulFunctionCall", - "src": "4403:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "4393:2:39", - "nodeType": "YulIdentifier", - "src": "4393:2:39" - }, - "nativeSrc": "4393:34:39", - "nodeType": "YulFunctionCall", - "src": "4393:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "4386:6:39", - "nodeType": "YulIdentifier", - "src": "4386:6:39" - }, - "nativeSrc": "4386:42:39", - "nodeType": "YulFunctionCall", - "src": "4386:42:39" - }, - "nativeSrc": "4383:62:39", - "nodeType": "YulIf", - "src": "4383:62:39" - } - ] - }, - "name": "validator_revert_t_uint48", - "nativeSrc": "4331:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4366:5:39", - "nodeType": "YulTypedName", - "src": "4366:5:39", - "type": "" - } - ], - "src": "4331:120:39" - }, - { - "body": { - "nativeSrc": "4508:86:39", - "nodeType": "YulBlock", - "src": "4508:86:39", - "statements": [ - { - "nativeSrc": "4518:29:39", - "nodeType": "YulAssignment", - "src": "4518:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "4540:6:39", - "nodeType": "YulIdentifier", - "src": "4540:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4527:12:39", - "nodeType": "YulIdentifier", - "src": "4527:12:39" - }, - "nativeSrc": "4527:20:39", - "nodeType": "YulFunctionCall", - "src": "4527:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "4518:5:39", - "nodeType": "YulIdentifier", - "src": "4518:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4582:5:39", - "nodeType": "YulIdentifier", - "src": "4582:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint48", - "nativeSrc": "4556:25:39", - "nodeType": "YulIdentifier", - "src": "4556:25:39" - }, - "nativeSrc": "4556:32:39", - "nodeType": "YulFunctionCall", - "src": "4556:32:39" - }, - "nativeSrc": "4556:32:39", - "nodeType": "YulExpressionStatement", - "src": "4556:32:39" - } - ] - }, - "name": "abi_decode_t_uint48", - "nativeSrc": "4457:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "4486:6:39", - "nodeType": "YulTypedName", - "src": "4486:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "4494:3:39", - "nodeType": "YulTypedName", - "src": "4494:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "4502:5:39", - "nodeType": "YulTypedName", - "src": "4502:5:39", - "type": "" - } - ], - "src": "4457:137:39" - }, - { - "body": { - "nativeSrc": "4665:262:39", - "nodeType": "YulBlock", - "src": "4665:262:39", - "statements": [ - { - "body": { - "nativeSrc": "4711:83:39", - "nodeType": "YulBlock", - "src": "4711:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4713:77:39", - "nodeType": "YulIdentifier", - "src": "4713:77:39" - }, - "nativeSrc": "4713:79:39", - "nodeType": "YulFunctionCall", - "src": "4713:79:39" - }, - "nativeSrc": "4713:79:39", - "nodeType": "YulExpressionStatement", - "src": "4713:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4686:7:39", - "nodeType": "YulIdentifier", - "src": "4686:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4695:9:39", - "nodeType": "YulIdentifier", - "src": "4695:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4682:3:39", - "nodeType": "YulIdentifier", - "src": "4682:3:39" - }, - "nativeSrc": "4682:23:39", - "nodeType": "YulFunctionCall", - "src": "4682:23:39" - }, - { - "kind": "number", - "nativeSrc": "4707:2:39", - "nodeType": "YulLiteral", - "src": "4707:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4678:3:39", - "nodeType": "YulIdentifier", - "src": "4678:3:39" - }, - "nativeSrc": "4678:32:39", - "nodeType": "YulFunctionCall", - "src": "4678:32:39" - }, - "nativeSrc": "4675:119:39", - "nodeType": "YulIf", - "src": "4675:119:39" - }, - { - "nativeSrc": "4804:116:39", - "nodeType": "YulBlock", - "src": "4804:116:39", - "statements": [ - { - "nativeSrc": "4819:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4819:15:39", - "value": { - "kind": "number", - "nativeSrc": "4833:1:39", - "nodeType": "YulLiteral", - "src": "4833:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4823:6:39", - "nodeType": "YulTypedName", - "src": "4823:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4848:62:39", - "nodeType": "YulAssignment", - "src": "4848:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4882:9:39", - "nodeType": "YulIdentifier", - "src": "4882:9:39" - }, - { - "name": "offset", - "nativeSrc": "4893:6:39", - "nodeType": "YulIdentifier", - "src": "4893:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4878:3:39", - "nodeType": "YulIdentifier", - "src": "4878:3:39" - }, - "nativeSrc": "4878:22:39", - "nodeType": "YulFunctionCall", - "src": "4878:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4902:7:39", - "nodeType": "YulIdentifier", - "src": "4902:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint48", - "nativeSrc": "4858:19:39", - "nodeType": "YulIdentifier", - "src": "4858:19:39" - }, - "nativeSrc": "4858:52:39", - "nodeType": "YulFunctionCall", - "src": "4858:52:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4848:6:39", - "nodeType": "YulIdentifier", - "src": "4848:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint48", - "nativeSrc": "4600:327:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4635:9:39", - "nodeType": "YulTypedName", - "src": "4635:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4646:7:39", - "nodeType": "YulTypedName", - "src": "4646:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4658:6:39", - "nodeType": "YulTypedName", - "src": "4658:6:39", - "type": "" - } - ], - "src": "4600:327:39" - }, - { - "body": { - "nativeSrc": "4965:28:39", - "nodeType": "YulBlock", - "src": "4965:28:39", - "statements": [ - { - "nativeSrc": "4975:12:39", - "nodeType": "YulAssignment", - "src": "4975:12:39", - "value": { - "name": "value", - "nativeSrc": "4982:5:39", - "nodeType": "YulIdentifier", - "src": "4982:5:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "4975:3:39", - "nodeType": "YulIdentifier", - "src": "4975:3:39" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "4933:60:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4951:5:39", - "nodeType": "YulTypedName", - "src": "4951:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "4961:3:39", - "nodeType": "YulTypedName", - "src": "4961:3:39", - "type": "" - } - ], - "src": "4933:60:39" - }, - { - "body": { - "nativeSrc": "5059:82:39", - "nodeType": "YulBlock", - "src": "5059:82:39", - "statements": [ - { - "nativeSrc": "5069:66:39", - "nodeType": "YulAssignment", - "src": "5069:66:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5127:5:39", - "nodeType": "YulIdentifier", - "src": "5127:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "5109:17:39", - "nodeType": "YulIdentifier", - "src": "5109:17:39" - }, - "nativeSrc": "5109:24:39", - "nodeType": "YulFunctionCall", - "src": "5109:24:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "5100:8:39", - "nodeType": "YulIdentifier", - "src": "5100:8:39" - }, - "nativeSrc": "5100:34:39", - "nodeType": "YulFunctionCall", - "src": "5100:34:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "5082:17:39", - "nodeType": "YulIdentifier", - "src": "5082:17:39" - }, - "nativeSrc": "5082:53:39", - "nodeType": "YulFunctionCall", - "src": "5082:53:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5069:9:39", - "nodeType": "YulIdentifier", - "src": "5069:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "4999:142:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5039:5:39", - "nodeType": "YulTypedName", - "src": "5039:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5049:9:39", - "nodeType": "YulTypedName", - "src": "5049:9:39", - "type": "" - } - ], - "src": "4999:142:39" - }, - { - "body": { - "nativeSrc": "5207:66:39", - "nodeType": "YulBlock", - "src": "5207:66:39", - "statements": [ - { - "nativeSrc": "5217:50:39", - "nodeType": "YulAssignment", - "src": "5217:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5261:5:39", - "nodeType": "YulIdentifier", - "src": "5261:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "5230:30:39", - "nodeType": "YulIdentifier", - "src": "5230:30:39" - }, - "nativeSrc": "5230:37:39", - "nodeType": "YulFunctionCall", - "src": "5230:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5217:9:39", - "nodeType": "YulIdentifier", - "src": "5217:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "5147:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5187:5:39", - "nodeType": "YulTypedName", - "src": "5187:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5197:9:39", - "nodeType": "YulTypedName", - "src": "5197:9:39", - "type": "" - } - ], - "src": "5147:126:39" - }, - { - "body": { - "nativeSrc": "5360:66:39", - "nodeType": "YulBlock", - "src": "5360:66:39", - "statements": [ - { - "nativeSrc": "5370:50:39", - "nodeType": "YulAssignment", - "src": "5370:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5414:5:39", - "nodeType": "YulIdentifier", - "src": "5414:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "5383:30:39", - "nodeType": "YulIdentifier", - "src": "5383:30:39" - }, - "nativeSrc": "5383:37:39", - "nodeType": "YulFunctionCall", - "src": "5383:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5370:9:39", - "nodeType": "YulIdentifier", - "src": "5370:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "5279:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5340:5:39", - "nodeType": "YulTypedName", - "src": "5340:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5350:9:39", - "nodeType": "YulTypedName", - "src": "5350:9:39", - "type": "" - } - ], - "src": "5279:147:39" - }, - { - "body": { - "nativeSrc": "5518:87:39", - "nodeType": "YulBlock", - "src": "5518:87:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5535:3:39", - "nodeType": "YulIdentifier", - "src": "5535:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5592:5:39", - "nodeType": "YulIdentifier", - "src": "5592:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "5540:51:39", - "nodeType": "YulIdentifier", - "src": "5540:51:39" - }, - "nativeSrc": "5540:58:39", - "nodeType": "YulFunctionCall", - "src": "5540:58:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5528:6:39", - "nodeType": "YulIdentifier", - "src": "5528:6:39" - }, - "nativeSrc": "5528:71:39", - "nodeType": "YulFunctionCall", - "src": "5528:71:39" - }, - "nativeSrc": "5528:71:39", - "nodeType": "YulExpressionStatement", - "src": "5528:71:39" - } - ] - }, - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "5432:173:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5506:5:39", - "nodeType": "YulTypedName", - "src": "5506:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5513:3:39", - "nodeType": "YulTypedName", - "src": "5513:3:39", - "type": "" - } - ], - "src": "5432:173:39" - }, - { - "body": { - "nativeSrc": "5730:145:39", - "nodeType": "YulBlock", - "src": "5730:145:39", - "statements": [ - { - "nativeSrc": "5740:26:39", - "nodeType": "YulAssignment", - "src": "5740:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5752:9:39", - "nodeType": "YulIdentifier", - "src": "5752:9:39" - }, - { - "kind": "number", - "nativeSrc": "5763:2:39", - "nodeType": "YulLiteral", - "src": "5763:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5748:3:39", - "nodeType": "YulIdentifier", - "src": "5748:3:39" - }, - "nativeSrc": "5748:18:39", - "nodeType": "YulFunctionCall", - "src": "5748:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5740:4:39", - "nodeType": "YulIdentifier", - "src": "5740:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5841:6:39", - "nodeType": "YulIdentifier", - "src": "5841:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5854:9:39", - "nodeType": "YulIdentifier", - "src": "5854:9:39" - }, - { - "kind": "number", - "nativeSrc": "5865:1:39", - "nodeType": "YulLiteral", - "src": "5865:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5850:3:39", - "nodeType": "YulIdentifier", - "src": "5850:3:39" - }, - "nativeSrc": "5850:17:39", - "nodeType": "YulFunctionCall", - "src": "5850:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "5776:64:39", - "nodeType": "YulIdentifier", - "src": "5776:64:39" - }, - "nativeSrc": "5776:92:39", - "nodeType": "YulFunctionCall", - "src": "5776:92:39" - }, - "nativeSrc": "5776:92:39", - "nodeType": "YulExpressionStatement", - "src": "5776:92:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed", - "nativeSrc": "5611:264:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5702:9:39", - "nodeType": "YulTypedName", - "src": "5702:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5714:6:39", - "nodeType": "YulTypedName", - "src": "5714:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5725:4:39", - "nodeType": "YulTypedName", - "src": "5725:4:39", - "type": "" - } - ], - "src": "5611:264:39" - }, - { - "body": { - "nativeSrc": "5946:53:39", - "nodeType": "YulBlock", - "src": "5946:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5963:3:39", - "nodeType": "YulIdentifier", - "src": "5963:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5986:5:39", - "nodeType": "YulIdentifier", - "src": "5986:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "5968:17:39", - "nodeType": "YulIdentifier", - "src": "5968:17:39" - }, - "nativeSrc": "5968:24:39", - "nodeType": "YulFunctionCall", - "src": "5968:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5956:6:39", - "nodeType": "YulIdentifier", - "src": "5956:6:39" - }, - "nativeSrc": "5956:37:39", - "nodeType": "YulFunctionCall", - "src": "5956:37:39" - }, - "nativeSrc": "5956:37:39", - "nodeType": "YulExpressionStatement", - "src": "5956:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "5881:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5934:5:39", - "nodeType": "YulTypedName", - "src": "5934:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5941:3:39", - "nodeType": "YulTypedName", - "src": "5941:3:39", - "type": "" - } - ], - "src": "5881:118:39" - }, - { - "body": { - "nativeSrc": "6103:124:39", - "nodeType": "YulBlock", - "src": "6103:124:39", - "statements": [ - { - "nativeSrc": "6113:26:39", - "nodeType": "YulAssignment", - "src": "6113:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6125:9:39", - "nodeType": "YulIdentifier", - "src": "6125:9:39" - }, - { - "kind": "number", - "nativeSrc": "6136:2:39", - "nodeType": "YulLiteral", - "src": "6136:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6121:3:39", - "nodeType": "YulIdentifier", - "src": "6121:3:39" - }, - "nativeSrc": "6121:18:39", - "nodeType": "YulFunctionCall", - "src": "6121:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6113:4:39", - "nodeType": "YulIdentifier", - "src": "6113:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6193:6:39", - "nodeType": "YulIdentifier", - "src": "6193:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6206:9:39", - "nodeType": "YulIdentifier", - "src": "6206:9:39" - }, - { - "kind": "number", - "nativeSrc": "6217:1:39", - "nodeType": "YulLiteral", - "src": "6217:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6202:3:39", - "nodeType": "YulIdentifier", - "src": "6202:3:39" - }, - "nativeSrc": "6202:17:39", - "nodeType": "YulFunctionCall", - "src": "6202:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "6149:43:39", - "nodeType": "YulIdentifier", - "src": "6149:43:39" - }, - "nativeSrc": "6149:71:39", - "nodeType": "YulFunctionCall", - "src": "6149:71:39" - }, - "nativeSrc": "6149:71:39", - "nodeType": "YulExpressionStatement", - "src": "6149:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "6005:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6075:9:39", - "nodeType": "YulTypedName", - "src": "6075:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "6087:6:39", - "nodeType": "YulTypedName", - "src": "6087:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "6098:4:39", - "nodeType": "YulTypedName", - "src": "6098:4:39", - "type": "" - } - ], - "src": "6005:222:39" - }, - { - "body": { - "nativeSrc": "6355:202:39", - "nodeType": "YulBlock", - "src": "6355:202:39", - "statements": [ - { - "nativeSrc": "6365:26:39", - "nodeType": "YulAssignment", - "src": "6365:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6377:9:39", - "nodeType": "YulIdentifier", - "src": "6377:9:39" - }, - { - "kind": "number", - "nativeSrc": "6388:2:39", - "nodeType": "YulLiteral", - "src": "6388:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6373:3:39", - "nodeType": "YulIdentifier", - "src": "6373:3:39" - }, - "nativeSrc": "6373:18:39", - "nodeType": "YulFunctionCall", - "src": "6373:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6365:4:39", - "nodeType": "YulIdentifier", - "src": "6365:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6443:6:39", - "nodeType": "YulIdentifier", - "src": "6443:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6456:9:39", - "nodeType": "YulIdentifier", - "src": "6456:9:39" - }, - { - "kind": "number", - "nativeSrc": "6467:1:39", - "nodeType": "YulLiteral", - "src": "6467:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6452:3:39", - "nodeType": "YulIdentifier", - "src": "6452:3:39" - }, - "nativeSrc": "6452:17:39", - "nodeType": "YulFunctionCall", - "src": "6452:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "6401:41:39", - "nodeType": "YulIdentifier", - "src": "6401:41:39" - }, - "nativeSrc": "6401:69:39", - "nodeType": "YulFunctionCall", - "src": "6401:69:39" - }, - "nativeSrc": "6401:69:39", - "nodeType": "YulExpressionStatement", - "src": "6401:69:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "6522:6:39", - "nodeType": "YulIdentifier", - "src": "6522:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6535:9:39", - "nodeType": "YulIdentifier", - "src": "6535:9:39" - }, - { - "kind": "number", - "nativeSrc": "6546:2:39", - "nodeType": "YulLiteral", - "src": "6546:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6531:3:39", - "nodeType": "YulIdentifier", - "src": "6531:3:39" - }, - "nativeSrc": "6531:18:39", - "nodeType": "YulFunctionCall", - "src": "6531:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "6480:41:39", - "nodeType": "YulIdentifier", - "src": "6480:41:39" - }, - "nativeSrc": "6480:70:39", - "nodeType": "YulFunctionCall", - "src": "6480:70:39" - }, - "nativeSrc": "6480:70:39", - "nodeType": "YulExpressionStatement", - "src": "6480:70:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed", - "nativeSrc": "6233:324:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6319:9:39", - "nodeType": "YulTypedName", - "src": "6319:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "6331:6:39", - "nodeType": "YulTypedName", - "src": "6331:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "6339:6:39", - "nodeType": "YulTypedName", - "src": "6339:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "6350:4:39", - "nodeType": "YulTypedName", - "src": "6350:4:39", - "type": "" - } - ], - "src": "6233:324:39" - }, - { - "body": { - "nativeSrc": "6646:391:39", - "nodeType": "YulBlock", - "src": "6646:391:39", - "statements": [ - { - "body": { - "nativeSrc": "6692:83:39", - "nodeType": "YulBlock", - "src": "6692:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "6694:77:39", - "nodeType": "YulIdentifier", - "src": "6694:77:39" - }, - "nativeSrc": "6694:79:39", - "nodeType": "YulFunctionCall", - "src": "6694:79:39" - }, - "nativeSrc": "6694:79:39", - "nodeType": "YulExpressionStatement", - "src": "6694:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6667:7:39", - "nodeType": "YulIdentifier", - "src": "6667:7:39" - }, - { - "name": "headStart", - "nativeSrc": "6676:9:39", - "nodeType": "YulIdentifier", - "src": "6676:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6663:3:39", - "nodeType": "YulIdentifier", - "src": "6663:3:39" - }, - "nativeSrc": "6663:23:39", - "nodeType": "YulFunctionCall", - "src": "6663:23:39" - }, - { - "kind": "number", - "nativeSrc": "6688:2:39", - "nodeType": "YulLiteral", - "src": "6688:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6659:3:39", - "nodeType": "YulIdentifier", - "src": "6659:3:39" - }, - "nativeSrc": "6659:32:39", - "nodeType": "YulFunctionCall", - "src": "6659:32:39" - }, - "nativeSrc": "6656:119:39", - "nodeType": "YulIf", - "src": "6656:119:39" - }, - { - "nativeSrc": "6785:117:39", - "nodeType": "YulBlock", - "src": "6785:117:39", - "statements": [ - { - "nativeSrc": "6800:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6800:15:39", - "value": { - "kind": "number", - "nativeSrc": "6814:1:39", - "nodeType": "YulLiteral", - "src": "6814:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6804:6:39", - "nodeType": "YulTypedName", - "src": "6804:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6829:63:39", - "nodeType": "YulAssignment", - "src": "6829:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6864:9:39", - "nodeType": "YulIdentifier", - "src": "6864:9:39" - }, - { - "name": "offset", - "nativeSrc": "6875:6:39", - "nodeType": "YulIdentifier", - "src": "6875:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6860:3:39", - "nodeType": "YulIdentifier", - "src": "6860:3:39" - }, - "nativeSrc": "6860:22:39", - "nodeType": "YulFunctionCall", - "src": "6860:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6884:7:39", - "nodeType": "YulIdentifier", - "src": "6884:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6839:20:39", - "nodeType": "YulIdentifier", - "src": "6839:20:39" - }, - "nativeSrc": "6839:53:39", - "nodeType": "YulFunctionCall", - "src": "6839:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6829:6:39", - "nodeType": "YulIdentifier", - "src": "6829:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "6912:118:39", - "nodeType": "YulBlock", - "src": "6912:118:39", - "statements": [ - { - "nativeSrc": "6927:16:39", - "nodeType": "YulVariableDeclaration", - "src": "6927:16:39", - "value": { - "kind": "number", - "nativeSrc": "6941:2:39", - "nodeType": "YulLiteral", - "src": "6941:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6931:6:39", - "nodeType": "YulTypedName", - "src": "6931:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6957:63:39", - "nodeType": "YulAssignment", - "src": "6957:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6992:9:39", - "nodeType": "YulIdentifier", - "src": "6992:9:39" - }, - { - "name": "offset", - "nativeSrc": "7003:6:39", - "nodeType": "YulIdentifier", - "src": "7003:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6988:3:39", - "nodeType": "YulIdentifier", - "src": "6988:3:39" - }, - "nativeSrc": "6988:22:39", - "nodeType": "YulFunctionCall", - "src": "6988:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "7012:7:39", - "nodeType": "YulIdentifier", - "src": "7012:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "6967:20:39", - "nodeType": "YulIdentifier", - "src": "6967:20:39" - }, - "nativeSrc": "6967:53:39", - "nodeType": "YulFunctionCall", - "src": "6967:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "6957:6:39", - "nodeType": "YulIdentifier", - "src": "6957:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32", - "nativeSrc": "6563:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6608:9:39", - "nodeType": "YulTypedName", - "src": "6608:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "6619:7:39", - "nodeType": "YulTypedName", - "src": "6619:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "6631:6:39", - "nodeType": "YulTypedName", - "src": "6631:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "6639:6:39", - "nodeType": "YulTypedName", - "src": "6639:6:39", - "type": "" - } - ], - "src": "6563:474:39" - }, - { - "body": { - "nativeSrc": "7167:204:39", - "nodeType": "YulBlock", - "src": "7167:204:39", - "statements": [ - { - "nativeSrc": "7177:26:39", - "nodeType": "YulAssignment", - "src": "7177:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7189:9:39", - "nodeType": "YulIdentifier", - "src": "7189:9:39" - }, - { - "kind": "number", - "nativeSrc": "7200:2:39", - "nodeType": "YulLiteral", - "src": "7200:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7185:3:39", - "nodeType": "YulIdentifier", - "src": "7185:3:39" - }, - "nativeSrc": "7185:18:39", - "nodeType": "YulFunctionCall", - "src": "7185:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7177:4:39", - "nodeType": "YulIdentifier", - "src": "7177:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7257:6:39", - "nodeType": "YulIdentifier", - "src": "7257:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7270:9:39", - "nodeType": "YulIdentifier", - "src": "7270:9:39" - }, - { - "kind": "number", - "nativeSrc": "7281:1:39", - "nodeType": "YulLiteral", - "src": "7281:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7266:3:39", - "nodeType": "YulIdentifier", - "src": "7266:3:39" - }, - "nativeSrc": "7266:17:39", - "nodeType": "YulFunctionCall", - "src": "7266:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "7213:43:39", - "nodeType": "YulIdentifier", - "src": "7213:43:39" - }, - "nativeSrc": "7213:71:39", - "nodeType": "YulFunctionCall", - "src": "7213:71:39" - }, - "nativeSrc": "7213:71:39", - "nodeType": "YulExpressionStatement", - "src": "7213:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "7336:6:39", - "nodeType": "YulIdentifier", - "src": "7336:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7349:9:39", - "nodeType": "YulIdentifier", - "src": "7349:9:39" - }, - { - "kind": "number", - "nativeSrc": "7360:2:39", - "nodeType": "YulLiteral", - "src": "7360:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7345:3:39", - "nodeType": "YulIdentifier", - "src": "7345:3:39" - }, - "nativeSrc": "7345:18:39", - "nodeType": "YulFunctionCall", - "src": "7345:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "7294:41:39", - "nodeType": "YulIdentifier", - "src": "7294:41:39" - }, - "nativeSrc": "7294:70:39", - "nodeType": "YulFunctionCall", - "src": "7294:70:39" - }, - "nativeSrc": "7294:70:39", - "nodeType": "YulExpressionStatement", - "src": "7294:70:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed", - "nativeSrc": "7043:328:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7131:9:39", - "nodeType": "YulTypedName", - "src": "7131:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7143:6:39", - "nodeType": "YulTypedName", - "src": "7143:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7151:6:39", - "nodeType": "YulTypedName", - "src": "7151:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7162:4:39", - "nodeType": "YulTypedName", - "src": "7162:4:39", - "type": "" - } - ], - "src": "7043:328:39" - }, - { - "body": { - "nativeSrc": "7440:51:39", - "nodeType": "YulBlock", - "src": "7440:51:39", - "statements": [ - { - "nativeSrc": "7450:35:39", - "nodeType": "YulAssignment", - "src": "7450:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "7479:5:39", - "nodeType": "YulIdentifier", - "src": "7479:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "7461:17:39", - "nodeType": "YulIdentifier", - "src": "7461:17:39" - }, - "nativeSrc": "7461:24:39", - "nodeType": "YulFunctionCall", - "src": "7461:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "7450:7:39", - "nodeType": "YulIdentifier", - "src": "7450:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "7377:114:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7422:5:39", - "nodeType": "YulTypedName", - "src": "7422:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "7432:7:39", - "nodeType": "YulTypedName", - "src": "7432:7:39", - "type": "" - } - ], - "src": "7377:114:39" - }, - { - "body": { - "nativeSrc": "7558:97:39", - "nodeType": "YulBlock", - "src": "7558:97:39", - "statements": [ - { - "body": { - "nativeSrc": "7633:16:39", - "nodeType": "YulBlock", - "src": "7633:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7642:1:39", - "nodeType": "YulLiteral", - "src": "7642:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7645:1:39", - "nodeType": "YulLiteral", - "src": "7645:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7635:6:39", - "nodeType": "YulIdentifier", - "src": "7635:6:39" - }, - "nativeSrc": "7635:12:39", - "nodeType": "YulFunctionCall", - "src": "7635:12:39" - }, - "nativeSrc": "7635:12:39", - "nodeType": "YulExpressionStatement", - "src": "7635:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "7581:5:39", - "nodeType": "YulIdentifier", - "src": "7581:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "7624:5:39", - "nodeType": "YulIdentifier", - "src": "7624:5:39" - } - ], - "functionName": { - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "7588:35:39", - "nodeType": "YulIdentifier", - "src": "7588:35:39" - }, - "nativeSrc": "7588:42:39", - "nodeType": "YulFunctionCall", - "src": "7588:42:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "7578:2:39", - "nodeType": "YulIdentifier", - "src": "7578:2:39" - }, - "nativeSrc": "7578:53:39", - "nodeType": "YulFunctionCall", - "src": "7578:53:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "7571:6:39", - "nodeType": "YulIdentifier", - "src": "7571:6:39" - }, - "nativeSrc": "7571:61:39", - "nodeType": "YulFunctionCall", - "src": "7571:61:39" - }, - "nativeSrc": "7568:81:39", - "nodeType": "YulIf", - "src": "7568:81:39" - } - ] - }, - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "7497:158:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7551:5:39", - "nodeType": "YulTypedName", - "src": "7551:5:39", - "type": "" - } - ], - "src": "7497:158:39" - }, - { - "body": { - "nativeSrc": "7731:105:39", - "nodeType": "YulBlock", - "src": "7731:105:39", - "statements": [ - { - "nativeSrc": "7741:29:39", - "nodeType": "YulAssignment", - "src": "7741:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7763:6:39", - "nodeType": "YulIdentifier", - "src": "7763:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7750:12:39", - "nodeType": "YulIdentifier", - "src": "7750:12:39" - }, - "nativeSrc": "7750:20:39", - "nodeType": "YulFunctionCall", - "src": "7750:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "7741:5:39", - "nodeType": "YulIdentifier", - "src": "7741:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "7824:5:39", - "nodeType": "YulIdentifier", - "src": "7824:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "7779:44:39", - "nodeType": "YulIdentifier", - "src": "7779:44:39" - }, - "nativeSrc": "7779:51:39", - "nodeType": "YulFunctionCall", - "src": "7779:51:39" - }, - "nativeSrc": "7779:51:39", - "nodeType": "YulExpressionStatement", - "src": "7779:51:39" - } - ] - }, - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "7661:175:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "7709:6:39", - "nodeType": "YulTypedName", - "src": "7709:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "7717:3:39", - "nodeType": "YulTypedName", - "src": "7717:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "7725:5:39", - "nodeType": "YulTypedName", - "src": "7725:5:39", - "type": "" - } - ], - "src": "7661:175:39" - }, - { - "body": { - "nativeSrc": "7960:537:39", - "nodeType": "YulBlock", - "src": "7960:537:39", - "statements": [ - { - "body": { - "nativeSrc": "8006:83:39", - "nodeType": "YulBlock", - "src": "8006:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "8008:77:39", - "nodeType": "YulIdentifier", - "src": "8008:77:39" - }, - "nativeSrc": "8008:79:39", - "nodeType": "YulFunctionCall", - "src": "8008:79:39" - }, - "nativeSrc": "8008:79:39", - "nodeType": "YulExpressionStatement", - "src": "8008:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "7981:7:39", - "nodeType": "YulIdentifier", - "src": "7981:7:39" - }, - { - "name": "headStart", - "nativeSrc": "7990:9:39", - "nodeType": "YulIdentifier", - "src": "7990:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7977:3:39", - "nodeType": "YulIdentifier", - "src": "7977:3:39" - }, - "nativeSrc": "7977:23:39", - "nodeType": "YulFunctionCall", - "src": "7977:23:39" - }, - { - "kind": "number", - "nativeSrc": "8002:2:39", - "nodeType": "YulLiteral", - "src": "8002:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "7973:3:39", - "nodeType": "YulIdentifier", - "src": "7973:3:39" - }, - "nativeSrc": "7973:32:39", - "nodeType": "YulFunctionCall", - "src": "7973:32:39" - }, - "nativeSrc": "7970:119:39", - "nodeType": "YulIf", - "src": "7970:119:39" - }, - { - "nativeSrc": "8099:117:39", - "nodeType": "YulBlock", - "src": "8099:117:39", - "statements": [ - { - "nativeSrc": "8114:15:39", - "nodeType": "YulVariableDeclaration", - "src": "8114:15:39", - "value": { - "kind": "number", - "nativeSrc": "8128:1:39", - "nodeType": "YulLiteral", - "src": "8128:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8118:6:39", - "nodeType": "YulTypedName", - "src": "8118:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8143:63:39", - "nodeType": "YulAssignment", - "src": "8143:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8178:9:39", - "nodeType": "YulIdentifier", - "src": "8178:9:39" - }, - { - "name": "offset", - "nativeSrc": "8189:6:39", - "nodeType": "YulIdentifier", - "src": "8189:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8174:3:39", - "nodeType": "YulIdentifier", - "src": "8174:3:39" - }, - "nativeSrc": "8174:22:39", - "nodeType": "YulFunctionCall", - "src": "8174:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8198:7:39", - "nodeType": "YulIdentifier", - "src": "8198:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "8153:20:39", - "nodeType": "YulIdentifier", - "src": "8153:20:39" - }, - "nativeSrc": "8153:53:39", - "nodeType": "YulFunctionCall", - "src": "8153:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "8143:6:39", - "nodeType": "YulIdentifier", - "src": "8143:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "8226:118:39", - "nodeType": "YulBlock", - "src": "8226:118:39", - "statements": [ - { - "nativeSrc": "8241:16:39", - "nodeType": "YulVariableDeclaration", - "src": "8241:16:39", - "value": { - "kind": "number", - "nativeSrc": "8255:2:39", - "nodeType": "YulLiteral", - "src": "8255:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8245:6:39", - "nodeType": "YulTypedName", - "src": "8245:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8271:63:39", - "nodeType": "YulAssignment", - "src": "8271:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8306:9:39", - "nodeType": "YulIdentifier", - "src": "8306:9:39" - }, - { - "name": "offset", - "nativeSrc": "8317:6:39", - "nodeType": "YulIdentifier", - "src": "8317:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8302:3:39", - "nodeType": "YulIdentifier", - "src": "8302:3:39" - }, - "nativeSrc": "8302:22:39", - "nodeType": "YulFunctionCall", - "src": "8302:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8326:7:39", - "nodeType": "YulIdentifier", - "src": "8326:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "8281:20:39", - "nodeType": "YulIdentifier", - "src": "8281:20:39" - }, - "nativeSrc": "8281:53:39", - "nodeType": "YulFunctionCall", - "src": "8281:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "8271:6:39", - "nodeType": "YulIdentifier", - "src": "8271:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "8354:136:39", - "nodeType": "YulBlock", - "src": "8354:136:39", - "statements": [ - { - "nativeSrc": "8369:16:39", - "nodeType": "YulVariableDeclaration", - "src": "8369:16:39", - "value": { - "kind": "number", - "nativeSrc": "8383:2:39", - "nodeType": "YulLiteral", - "src": "8383:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8373:6:39", - "nodeType": "YulTypedName", - "src": "8373:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8399:81:39", - "nodeType": "YulAssignment", - "src": "8399:81:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8452:9:39", - "nodeType": "YulIdentifier", - "src": "8452:9:39" - }, - { - "name": "offset", - "nativeSrc": "8463:6:39", - "nodeType": "YulIdentifier", - "src": "8463:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8448:3:39", - "nodeType": "YulIdentifier", - "src": "8448:3:39" - }, - "nativeSrc": "8448:22:39", - "nodeType": "YulFunctionCall", - "src": "8448:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8472:7:39", - "nodeType": "YulIdentifier", - "src": "8472:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "8409:38:39", - "nodeType": "YulIdentifier", - "src": "8409:38:39" - }, - "nativeSrc": "8409:71:39", - "nodeType": "YulFunctionCall", - "src": "8409:71:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "8399:6:39", - "nodeType": "YulIdentifier", - "src": "8399:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8101", - "nativeSrc": "7842:655:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7914:9:39", - "nodeType": "YulTypedName", - "src": "7914:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "7925:7:39", - "nodeType": "YulTypedName", - "src": "7925:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "7937:6:39", - "nodeType": "YulTypedName", - "src": "7937:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7945:6:39", - "nodeType": "YulTypedName", - "src": "7945:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "7953:6:39", - "nodeType": "YulTypedName", - "src": "7953:6:39", - "type": "" - } - ], - "src": "7842:655:39" - }, - { - "body": { - "nativeSrc": "8629:206:39", - "nodeType": "YulBlock", - "src": "8629:206:39", - "statements": [ - { - "nativeSrc": "8639:26:39", - "nodeType": "YulAssignment", - "src": "8639:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8651:9:39", - "nodeType": "YulIdentifier", - "src": "8651:9:39" - }, - { - "kind": "number", - "nativeSrc": "8662:2:39", - "nodeType": "YulLiteral", - "src": "8662:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8647:3:39", - "nodeType": "YulIdentifier", - "src": "8647:3:39" - }, - "nativeSrc": "8647:18:39", - "nodeType": "YulFunctionCall", - "src": "8647:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8639:4:39", - "nodeType": "YulIdentifier", - "src": "8639:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8719:6:39", - "nodeType": "YulIdentifier", - "src": "8719:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8732:9:39", - "nodeType": "YulIdentifier", - "src": "8732:9:39" - }, - { - "kind": "number", - "nativeSrc": "8743:1:39", - "nodeType": "YulLiteral", - "src": "8743:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8728:3:39", - "nodeType": "YulIdentifier", - "src": "8728:3:39" - }, - "nativeSrc": "8728:17:39", - "nodeType": "YulFunctionCall", - "src": "8728:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "8675:43:39", - "nodeType": "YulIdentifier", - "src": "8675:43:39" - }, - "nativeSrc": "8675:71:39", - "nodeType": "YulFunctionCall", - "src": "8675:71:39" - }, - "nativeSrc": "8675:71:39", - "nodeType": "YulExpressionStatement", - "src": "8675:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "8800:6:39", - "nodeType": "YulIdentifier", - "src": "8800:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8813:9:39", - "nodeType": "YulIdentifier", - "src": "8813:9:39" - }, - { - "kind": "number", - "nativeSrc": "8824:2:39", - "nodeType": "YulLiteral", - "src": "8824:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8809:3:39", - "nodeType": "YulIdentifier", - "src": "8809:3:39" - }, - "nativeSrc": "8809:18:39", - "nodeType": "YulFunctionCall", - "src": "8809:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "8756:43:39", - "nodeType": "YulIdentifier", - "src": "8756:43:39" - }, - "nativeSrc": "8756:72:39", - "nodeType": "YulFunctionCall", - "src": "8756:72:39" - }, - "nativeSrc": "8756:72:39", - "nodeType": "YulExpressionStatement", - "src": "8756:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "8503:332:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8593:9:39", - "nodeType": "YulTypedName", - "src": "8593:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8605:6:39", - "nodeType": "YulTypedName", - "src": "8605:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8613:6:39", - "nodeType": "YulTypedName", - "src": "8613:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8624:4:39", - "nodeType": "YulTypedName", - "src": "8624:4:39", - "type": "" - } - ], - "src": "8503:332:39" - }, - { - "body": { - "nativeSrc": "8919:66:39", - "nodeType": "YulBlock", - "src": "8919:66:39", - "statements": [ - { - "nativeSrc": "8929:50:39", - "nodeType": "YulAssignment", - "src": "8929:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8973:5:39", - "nodeType": "YulIdentifier", - "src": "8973:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "8942:30:39", - "nodeType": "YulIdentifier", - "src": "8942:30:39" - }, - "nativeSrc": "8942:37:39", - "nodeType": "YulFunctionCall", - "src": "8942:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "8929:9:39", - "nodeType": "YulIdentifier", - "src": "8929:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "8841:144:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8899:5:39", - "nodeType": "YulTypedName", - "src": "8899:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "8909:9:39", - "nodeType": "YulTypedName", - "src": "8909:9:39", - "type": "" - } - ], - "src": "8841:144:39" - }, - { - "body": { - "nativeSrc": "9074:84:39", - "nodeType": "YulBlock", - "src": "9074:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9091:3:39", - "nodeType": "YulIdentifier", - "src": "9091:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "9145:5:39", - "nodeType": "YulIdentifier", - "src": "9145:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "9096:48:39", - "nodeType": "YulIdentifier", - "src": "9096:48:39" - }, - "nativeSrc": "9096:55:39", - "nodeType": "YulFunctionCall", - "src": "9096:55:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9084:6:39", - "nodeType": "YulIdentifier", - "src": "9084:6:39" - }, - "nativeSrc": "9084:68:39", - "nodeType": "YulFunctionCall", - "src": "9084:68:39" - }, - "nativeSrc": "9084:68:39", - "nodeType": "YulExpressionStatement", - "src": "9084:68:39" - } - ] - }, - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "8991:167:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "9062:5:39", - "nodeType": "YulTypedName", - "src": "9062:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "9069:3:39", - "nodeType": "YulTypedName", - "src": "9069:3:39", - "type": "" - } - ], - "src": "8991:167:39" - }, - { - "body": { - "nativeSrc": "9336:306:39", - "nodeType": "YulBlock", - "src": "9336:306:39", - "statements": [ - { - "nativeSrc": "9346:26:39", - "nodeType": "YulAssignment", - "src": "9346:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9358:9:39", - "nodeType": "YulIdentifier", - "src": "9358:9:39" - }, - { - "kind": "number", - "nativeSrc": "9369:2:39", - "nodeType": "YulLiteral", - "src": "9369:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9354:3:39", - "nodeType": "YulIdentifier", - "src": "9354:3:39" - }, - "nativeSrc": "9354:18:39", - "nodeType": "YulFunctionCall", - "src": "9354:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "9346:4:39", - "nodeType": "YulIdentifier", - "src": "9346:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "9426:6:39", - "nodeType": "YulIdentifier", - "src": "9426:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9439:9:39", - "nodeType": "YulIdentifier", - "src": "9439:9:39" - }, - { - "kind": "number", - "nativeSrc": "9450:1:39", - "nodeType": "YulLiteral", - "src": "9450:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9435:3:39", - "nodeType": "YulIdentifier", - "src": "9435:3:39" - }, - "nativeSrc": "9435:17:39", - "nodeType": "YulFunctionCall", - "src": "9435:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "9382:43:39", - "nodeType": "YulIdentifier", - "src": "9382:43:39" - }, - "nativeSrc": "9382:71:39", - "nodeType": "YulFunctionCall", - "src": "9382:71:39" - }, - "nativeSrc": "9382:71:39", - "nodeType": "YulExpressionStatement", - "src": "9382:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "9507:6:39", - "nodeType": "YulIdentifier", - "src": "9507:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9520:9:39", - "nodeType": "YulIdentifier", - "src": "9520:9:39" - }, - { - "kind": "number", - "nativeSrc": "9531:2:39", - "nodeType": "YulLiteral", - "src": "9531:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9516:3:39", - "nodeType": "YulIdentifier", - "src": "9516:3:39" - }, - "nativeSrc": "9516:18:39", - "nodeType": "YulFunctionCall", - "src": "9516:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "9463:43:39", - "nodeType": "YulIdentifier", - "src": "9463:43:39" - }, - "nativeSrc": "9463:72:39", - "nodeType": "YulFunctionCall", - "src": "9463:72:39" - }, - "nativeSrc": "9463:72:39", - "nodeType": "YulExpressionStatement", - "src": "9463:72:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "9607:6:39", - "nodeType": "YulIdentifier", - "src": "9607:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9620:9:39", - "nodeType": "YulIdentifier", - "src": "9620:9:39" - }, - { - "kind": "number", - "nativeSrc": "9631:2:39", - "nodeType": "YulLiteral", - "src": "9631:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9616:3:39", - "nodeType": "YulIdentifier", - "src": "9616:3:39" - }, - "nativeSrc": "9616:18:39", - "nodeType": "YulFunctionCall", - "src": "9616:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "9545:61:39", - "nodeType": "YulIdentifier", - "src": "9545:61:39" - }, - "nativeSrc": "9545:90:39", - "nodeType": "YulFunctionCall", - "src": "9545:90:39" - }, - "nativeSrc": "9545:90:39", - "nodeType": "YulExpressionStatement", - "src": "9545:90:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8101__to_t_address_t_bytes32_t_address__fromStack_reversed", - "nativeSrc": "9164:478:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9292:9:39", - "nodeType": "YulTypedName", - "src": "9292:9:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "9304:6:39", - "nodeType": "YulTypedName", - "src": "9304:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "9312:6:39", - "nodeType": "YulTypedName", - "src": "9312:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "9320:6:39", - "nodeType": "YulTypedName", - "src": "9320:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "9331:4:39", - "nodeType": "YulTypedName", - "src": "9331:4:39", - "type": "" - } - ], - "src": "9164:478:39" - }, - { - "body": { - "nativeSrc": "9676:152:39", - "nodeType": "YulBlock", - "src": "9676:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9693:1:39", - "nodeType": "YulLiteral", - "src": "9693:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "9696:77:39", - "nodeType": "YulLiteral", - "src": "9696:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9686:6:39", - "nodeType": "YulIdentifier", - "src": "9686:6:39" - }, - "nativeSrc": "9686:88:39", - "nodeType": "YulFunctionCall", - "src": "9686:88:39" - }, - "nativeSrc": "9686:88:39", - "nodeType": "YulExpressionStatement", - "src": "9686:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9790:1:39", - "nodeType": "YulLiteral", - "src": "9790:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "9793:4:39", - "nodeType": "YulLiteral", - "src": "9793:4:39", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9783:6:39", - "nodeType": "YulIdentifier", - "src": "9783:6:39" - }, - "nativeSrc": "9783:15:39", - "nodeType": "YulFunctionCall", - "src": "9783:15:39" - }, - "nativeSrc": "9783:15:39", - "nodeType": "YulExpressionStatement", - "src": "9783:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9814:1:39", - "nodeType": "YulLiteral", - "src": "9814:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "9817:4:39", - "nodeType": "YulLiteral", - "src": "9817:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "9807:6:39", - "nodeType": "YulIdentifier", - "src": "9807:6:39" - }, - "nativeSrc": "9807:15:39", - "nodeType": "YulFunctionCall", - "src": "9807:15:39" - }, - "nativeSrc": "9807:15:39", - "nodeType": "YulExpressionStatement", - "src": "9807:15:39" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "9648:180:39", - "nodeType": "YulFunctionDefinition", - "src": "9648:180:39" - }, - { - "body": { - "nativeSrc": "9877:158:39", - "nodeType": "YulBlock", - "src": "9877:158:39", - "statements": [ - { - "nativeSrc": "9887:24:39", - "nodeType": "YulAssignment", - "src": "9887:24:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "9909:1:39", - "nodeType": "YulIdentifier", - "src": "9909:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "9892:16:39", - "nodeType": "YulIdentifier", - "src": "9892:16:39" - }, - "nativeSrc": "9892:19:39", - "nodeType": "YulFunctionCall", - "src": "9892:19:39" - }, - "variableNames": [ - { - "name": "x", - "nativeSrc": "9887:1:39", - "nodeType": "YulIdentifier", - "src": "9887:1:39" - } - ] - }, - { - "nativeSrc": "9920:24:39", - "nodeType": "YulAssignment", - "src": "9920:24:39", - "value": { - "arguments": [ - { - "name": "y", - "nativeSrc": "9942:1:39", - "nodeType": "YulIdentifier", - "src": "9942:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "9925:16:39", - "nodeType": "YulIdentifier", - "src": "9925:16:39" - }, - "nativeSrc": "9925:19:39", - "nodeType": "YulFunctionCall", - "src": "9925:19:39" - }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "9920:1:39", - "nodeType": "YulIdentifier", - "src": "9920:1:39" - } - ] - }, - { - "nativeSrc": "9953:16:39", - "nodeType": "YulAssignment", - "src": "9953:16:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "9964:1:39", - "nodeType": "YulIdentifier", - "src": "9964:1:39" - }, - { - "name": "y", - "nativeSrc": "9967:1:39", - "nodeType": "YulIdentifier", - "src": "9967:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9960:3:39", - "nodeType": "YulIdentifier", - "src": "9960:3:39" - }, - "nativeSrc": "9960:9:39", - "nodeType": "YulFunctionCall", - "src": "9960:9:39" - }, - "variableNames": [ - { - "name": "sum", - "nativeSrc": "9953:3:39", - "nodeType": "YulIdentifier", - "src": "9953:3:39" - } - ] - }, - { - "body": { - "nativeSrc": "10006:22:39", - "nodeType": "YulBlock", - "src": "10006:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "10008:16:39", - "nodeType": "YulIdentifier", - "src": "10008:16:39" - }, - "nativeSrc": "10008:18:39", - "nodeType": "YulFunctionCall", - "src": "10008:18:39" - }, - "nativeSrc": "10008:18:39", - "nodeType": "YulExpressionStatement", - "src": "10008:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "sum", - "nativeSrc": "9985:3:39", - "nodeType": "YulIdentifier", - "src": "9985:3:39" - }, - { - "kind": "number", - "nativeSrc": "9990:14:39", - "nodeType": "YulLiteral", - "src": "9990:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "9982:2:39", - "nodeType": "YulIdentifier", - "src": "9982:2:39" - }, - "nativeSrc": "9982:23:39", - "nodeType": "YulFunctionCall", - "src": "9982:23:39" - }, - "nativeSrc": "9979:49:39", - "nodeType": "YulIf", - "src": "9979:49:39" - } - ] - }, - "name": "checked_add_t_uint48", - "nativeSrc": "9834:201:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "9864:1:39", - "nodeType": "YulTypedName", - "src": "9864:1:39", - "type": "" - }, - { - "name": "y", - "nativeSrc": "9867:1:39", - "nodeType": "YulTypedName", - "src": "9867:1:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nativeSrc": "9873:3:39", - "nodeType": "YulTypedName", - "src": "9873:3:39", - "type": "" - } - ], - "src": "9834:201:39" - }, - { - "body": { - "nativeSrc": "10095:32:39", - "nodeType": "YulBlock", - "src": "10095:32:39", - "statements": [ - { - "nativeSrc": "10105:16:39", - "nodeType": "YulAssignment", - "src": "10105:16:39", - "value": { - "name": "value", - "nativeSrc": "10116:5:39", - "nodeType": "YulIdentifier", - "src": "10116:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "10105:7:39", - "nodeType": "YulIdentifier", - "src": "10105:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_rational_48_by_1", - "nativeSrc": "10041:86:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10077:5:39", - "nodeType": "YulTypedName", - "src": "10077:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "10087:7:39", - "nodeType": "YulTypedName", - "src": "10087:7:39", - "type": "" - } - ], - "src": "10041:86:39" - }, - { - "body": { - "nativeSrc": "10176:43:39", - "nodeType": "YulBlock", - "src": "10176:43:39", - "statements": [ - { - "nativeSrc": "10186:27:39", - "nodeType": "YulAssignment", - "src": "10186:27:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "10201:5:39", - "nodeType": "YulIdentifier", - "src": "10201:5:39" - }, - { - "kind": "number", - "nativeSrc": "10208:4:39", - "nodeType": "YulLiteral", - "src": "10208:4:39", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "10197:3:39", - "nodeType": "YulIdentifier", - "src": "10197:3:39" - }, - "nativeSrc": "10197:16:39", - "nodeType": "YulFunctionCall", - "src": "10197:16:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "10186:7:39", - "nodeType": "YulIdentifier", - "src": "10186:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint8", - "nativeSrc": "10133:86:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10158:5:39", - "nodeType": "YulTypedName", - "src": "10158:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "10168:7:39", - "nodeType": "YulTypedName", - "src": "10168:7:39", - "type": "" - } - ], - "src": "10133:86:39" - }, - { - "body": { - "nativeSrc": "10292:89:39", - "nodeType": "YulBlock", - "src": "10292:89:39", - "statements": [ - { - "nativeSrc": "10302:73:39", - "nodeType": "YulAssignment", - "src": "10302:73:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "10367:5:39", - "nodeType": "YulIdentifier", - "src": "10367:5:39" - } - ], - "functionName": { - "name": "cleanup_t_rational_48_by_1", - "nativeSrc": "10340:26:39", - "nodeType": "YulIdentifier", - "src": "10340:26:39" - }, - "nativeSrc": "10340:33:39", - "nodeType": "YulFunctionCall", - "src": "10340:33:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "10331:8:39", - "nodeType": "YulIdentifier", - "src": "10331:8:39" - }, - "nativeSrc": "10331:43:39", - "nodeType": "YulFunctionCall", - "src": "10331:43:39" - } - ], - "functionName": { - "name": "cleanup_t_uint8", - "nativeSrc": "10315:15:39", - "nodeType": "YulIdentifier", - "src": "10315:15:39" - }, - "nativeSrc": "10315:60:39", - "nodeType": "YulFunctionCall", - "src": "10315:60:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "10302:9:39", - "nodeType": "YulIdentifier", - "src": "10302:9:39" - } - ] - } - ] - }, - "name": "convert_t_rational_48_by_1_to_t_uint8", - "nativeSrc": "10225:156:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10272:5:39", - "nodeType": "YulTypedName", - "src": "10272:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "10282:9:39", - "nodeType": "YulTypedName", - "src": "10282:9:39", - "type": "" - } - ], - "src": "10225:156:39" - }, - { - "body": { - "nativeSrc": "10459:73:39", - "nodeType": "YulBlock", - "src": "10459:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "10476:3:39", - "nodeType": "YulIdentifier", - "src": "10476:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "10519:5:39", - "nodeType": "YulIdentifier", - "src": "10519:5:39" - } - ], - "functionName": { - "name": "convert_t_rational_48_by_1_to_t_uint8", - "nativeSrc": "10481:37:39", - "nodeType": "YulIdentifier", - "src": "10481:37:39" - }, - "nativeSrc": "10481:44:39", - "nodeType": "YulFunctionCall", - "src": "10481:44:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10469:6:39", - "nodeType": "YulIdentifier", - "src": "10469:6:39" - }, - "nativeSrc": "10469:57:39", - "nodeType": "YulFunctionCall", - "src": "10469:57:39" - }, - "nativeSrc": "10469:57:39", - "nodeType": "YulExpressionStatement", - "src": "10469:57:39" - } - ] - }, - "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", - "nativeSrc": "10387:145:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10447:5:39", - "nodeType": "YulTypedName", - "src": "10447:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "10454:3:39", - "nodeType": "YulTypedName", - "src": "10454:3:39", - "type": "" - } - ], - "src": "10387:145:39" - }, - { - "body": { - "nativeSrc": "10583:32:39", - "nodeType": "YulBlock", - "src": "10583:32:39", - "statements": [ - { - "nativeSrc": "10593:16:39", - "nodeType": "YulAssignment", - "src": "10593:16:39", - "value": { - "name": "value", - "nativeSrc": "10604:5:39", - "nodeType": "YulIdentifier", - "src": "10604:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "10593:7:39", - "nodeType": "YulIdentifier", - "src": "10593:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "10538:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10565:5:39", - "nodeType": "YulTypedName", - "src": "10565:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "10575:7:39", - "nodeType": "YulTypedName", - "src": "10575:7:39", - "type": "" - } - ], - "src": "10538:77:39" - }, - { - "body": { - "nativeSrc": "10686:53:39", - "nodeType": "YulBlock", - "src": "10686:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "10703:3:39", - "nodeType": "YulIdentifier", - "src": "10703:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "10726:5:39", - "nodeType": "YulIdentifier", - "src": "10726:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "10708:17:39", - "nodeType": "YulIdentifier", - "src": "10708:17:39" - }, - "nativeSrc": "10708:24:39", - "nodeType": "YulFunctionCall", - "src": "10708:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10696:6:39", - "nodeType": "YulIdentifier", - "src": "10696:6:39" - }, - "nativeSrc": "10696:37:39", - "nodeType": "YulFunctionCall", - "src": "10696:37:39" - }, - "nativeSrc": "10696:37:39", - "nodeType": "YulExpressionStatement", - "src": "10696:37:39" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "10621:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10674:5:39", - "nodeType": "YulTypedName", - "src": "10674:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "10681:3:39", - "nodeType": "YulTypedName", - "src": "10681:3:39", - "type": "" - } - ], - "src": "10621:118:39" - }, - { - "body": { - "nativeSrc": "10878:213:39", - "nodeType": "YulBlock", - "src": "10878:213:39", - "statements": [ - { - "nativeSrc": "10888:26:39", - "nodeType": "YulAssignment", - "src": "10888:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10900:9:39", - "nodeType": "YulIdentifier", - "src": "10900:9:39" - }, - { - "kind": "number", - "nativeSrc": "10911:2:39", - "nodeType": "YulLiteral", - "src": "10911:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10896:3:39", - "nodeType": "YulIdentifier", - "src": "10896:3:39" - }, - "nativeSrc": "10896:18:39", - "nodeType": "YulFunctionCall", - "src": "10896:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "10888:4:39", - "nodeType": "YulIdentifier", - "src": "10888:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "10975:6:39", - "nodeType": "YulIdentifier", - "src": "10975:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10988:9:39", - "nodeType": "YulIdentifier", - "src": "10988:9:39" - }, - { - "kind": "number", - "nativeSrc": "10999:1:39", - "nodeType": "YulLiteral", - "src": "10999:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10984:3:39", - "nodeType": "YulIdentifier", - "src": "10984:3:39" - }, - "nativeSrc": "10984:17:39", - "nodeType": "YulFunctionCall", - "src": "10984:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", - "nativeSrc": "10924:50:39", - "nodeType": "YulIdentifier", - "src": "10924:50:39" - }, - "nativeSrc": "10924:78:39", - "nodeType": "YulFunctionCall", - "src": "10924:78:39" - }, - "nativeSrc": "10924:78:39", - "nodeType": "YulExpressionStatement", - "src": "10924:78:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "11056:6:39", - "nodeType": "YulIdentifier", - "src": "11056:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11069:9:39", - "nodeType": "YulIdentifier", - "src": "11069:9:39" - }, - { - "kind": "number", - "nativeSrc": "11080:2:39", - "nodeType": "YulLiteral", - "src": "11080:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11065:3:39", - "nodeType": "YulIdentifier", - "src": "11065:3:39" - }, - "nativeSrc": "11065:18:39", - "nodeType": "YulFunctionCall", - "src": "11065:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "11012:43:39", - "nodeType": "YulIdentifier", - "src": "11012:43:39" - }, - "nativeSrc": "11012:72:39", - "nodeType": "YulFunctionCall", - "src": "11012:72:39" - }, - "nativeSrc": "11012:72:39", - "nodeType": "YulExpressionStatement", - "src": "11012:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed", - "nativeSrc": "10745:346:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10842:9:39", - "nodeType": "YulTypedName", - "src": "10842:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "10854:6:39", - "nodeType": "YulTypedName", - "src": "10854:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "10862:6:39", - "nodeType": "YulTypedName", - "src": "10862:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "10873:4:39", - "nodeType": "YulTypedName", - "src": "10873:4:39", - "type": "" - } - ], - "src": "10745:346:39" - }, - { - "body": { - "nativeSrc": "11141:160:39", - "nodeType": "YulBlock", - "src": "11141:160:39", - "statements": [ - { - "nativeSrc": "11151:24:39", - "nodeType": "YulAssignment", - "src": "11151:24:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "11173:1:39", - "nodeType": "YulIdentifier", - "src": "11173:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "11156:16:39", - "nodeType": "YulIdentifier", - "src": "11156:16:39" - }, - "nativeSrc": "11156:19:39", - "nodeType": "YulFunctionCall", - "src": "11156:19:39" - }, - "variableNames": [ - { - "name": "x", - "nativeSrc": "11151:1:39", - "nodeType": "YulIdentifier", - "src": "11151:1:39" - } - ] - }, - { - "nativeSrc": "11184:24:39", - "nodeType": "YulAssignment", - "src": "11184:24:39", - "value": { - "arguments": [ - { - "name": "y", - "nativeSrc": "11206:1:39", - "nodeType": "YulIdentifier", - "src": "11206:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "11189:16:39", - "nodeType": "YulIdentifier", - "src": "11189:16:39" - }, - "nativeSrc": "11189:19:39", - "nodeType": "YulFunctionCall", - "src": "11189:19:39" - }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "11184:1:39", - "nodeType": "YulIdentifier", - "src": "11184:1:39" - } - ] - }, - { - "nativeSrc": "11217:17:39", - "nodeType": "YulAssignment", - "src": "11217:17:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "11229:1:39", - "nodeType": "YulIdentifier", - "src": "11229:1:39" - }, - { - "name": "y", - "nativeSrc": "11232:1:39", - "nodeType": "YulIdentifier", - "src": "11232:1:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11225:3:39", - "nodeType": "YulIdentifier", - "src": "11225:3:39" - }, - "nativeSrc": "11225:9:39", - "nodeType": "YulFunctionCall", - "src": "11225:9:39" - }, - "variableNames": [ - { - "name": "diff", - "nativeSrc": "11217:4:39", - "nodeType": "YulIdentifier", - "src": "11217:4:39" - } - ] - }, - { - "body": { - "nativeSrc": "11272:22:39", - "nodeType": "YulBlock", - "src": "11272:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "11274:16:39", - "nodeType": "YulIdentifier", - "src": "11274:16:39" - }, - "nativeSrc": "11274:18:39", - "nodeType": "YulFunctionCall", - "src": "11274:18:39" - }, - "nativeSrc": "11274:18:39", - "nodeType": "YulExpressionStatement", - "src": "11274:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "diff", - "nativeSrc": "11250:4:39", - "nodeType": "YulIdentifier", - "src": "11250:4:39" - }, - { - "kind": "number", - "nativeSrc": "11256:14:39", - "nodeType": "YulLiteral", - "src": "11256:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "11247:2:39", - "nodeType": "YulIdentifier", - "src": "11247:2:39" - }, - "nativeSrc": "11247:24:39", - "nodeType": "YulFunctionCall", - "src": "11247:24:39" - }, - "nativeSrc": "11244:50:39", - "nodeType": "YulIf", - "src": "11244:50:39" - } - ] - }, - "name": "checked_sub_t_uint48", - "nativeSrc": "11097:204:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "11127:1:39", - "nodeType": "YulTypedName", - "src": "11127:1:39", - "type": "" - }, - { - "name": "y", - "nativeSrc": "11130:1:39", - "nodeType": "YulTypedName", - "src": "11130:1:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "diff", - "nativeSrc": "11136:4:39", - "nodeType": "YulTypedName", - "src": "11136:4:39", - "type": "" - } - ], - "src": "11097:204:39" - } - ] - }, - "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_$7736_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7736_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7736_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_$8101(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$8101(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$8101(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$8101(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IVerifier_$8101(value)\n }\n\n function abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8101(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_$8101(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_$8101_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$8101_to_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8101__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_$8101_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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "7361": [ - { - "length": 32, - "start": 1598 - }, - { - "length": 32, - "start": 1942 - }, - { - "length": 32, - "start": 2555 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea2646970667358221220d44239aa553373132c81fc8c57e3b38437535b47175888a8cbee49e7e0b303e064736f6c634300081c0033", - "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 0x14BB JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x1503 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 0x153F 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 0x1590 JUMP JUMPDEST PUSH2 0x466 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x15CC 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 0x15CC 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 0x1645 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x223 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21E SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x4F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x1685 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x16DE JUMP JUMPDEST PUSH2 0x622 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x272 SWAP2 SWAP1 PUSH2 0x176A 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 0x1794 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 0x1794 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 0x1645 JUMP JUMPDEST PUSH2 0x699 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0x1503 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 0x17AF 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 0x15CC 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 0x17D8 JUMP JUMPDEST PUSH2 0x76A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x153F 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 0x1818 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 0x1645 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 0x187F 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 0x153F 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 0x18D2 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 0x1794 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 0x191C 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 0x1982 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 0x153F 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 0x1982 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 0x17AF 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 0x153F 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 0x18D2 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 0x1A1D 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 0x1A46 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 PUSH2 0x1430 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1438 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1443 DUP5 PUSH2 0x1452 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1498 DUP2 PUSH2 0x1463 JUMP JUMPDEST DUP2 EQ PUSH2 0x14A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14B5 DUP2 PUSH2 0x148F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D1 JUMPI PUSH2 0x14D0 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14DF DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14FD DUP2 PUSH2 0x14E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1518 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x14F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1539 DUP2 PUSH2 0x151E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1554 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x156D DUP2 PUSH2 0x155A JUMP JUMPDEST DUP2 EQ PUSH2 0x1578 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x158A DUP2 PUSH2 0x1564 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15A6 JUMPI PUSH2 0x15A5 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x15B4 DUP5 DUP3 DUP6 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15C6 DUP2 PUSH2 0x155A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15E1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1612 DUP3 PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1622 DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP2 EQ PUSH2 0x162D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x163F DUP2 PUSH2 0x1619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x165C JUMPI PUSH2 0x165B PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x166A DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x167B DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x169B JUMPI PUSH2 0x169A PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x16A9 DUP5 DUP3 DUP6 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16BB DUP2 PUSH2 0x151E JUMP JUMPDEST DUP2 EQ PUSH2 0x16C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16D8 DUP2 PUSH2 0x16B2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F4 JUMPI PUSH2 0x16F3 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1702 DUP5 DUP3 DUP6 ADD PUSH2 0x16C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1730 PUSH2 0x172B PUSH2 0x1726 DUP5 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1742 DUP3 PUSH2 0x1715 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1754 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1764 DUP2 PUSH2 0x1749 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x177F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x175B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178E DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17A9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1785 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17C4 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1530 JUMP JUMPDEST PUSH2 0x17D1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17EF JUMPI PUSH2 0x17EE PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17FD DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x180E DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x182D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x183A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x184C DUP3 PUSH2 0x1607 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x185C DUP2 PUSH2 0x1841 JUMP JUMPDEST DUP2 EQ PUSH2 0x1867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1879 DUP2 PUSH2 0x1853 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1898 JUMPI PUSH2 0x1897 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x18A6 DUP7 DUP3 DUP8 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x18B7 DUP7 DUP3 DUP8 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18C8 DUP7 DUP3 DUP8 ADD PUSH2 0x186A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x18E7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x18F4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1906 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1916 DUP2 PUSH2 0x18FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1931 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x193E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x15BD JUMP JUMPDEST PUSH2 0x194B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x190D 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 0x198D DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1998 DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19B6 JUMPI PUSH2 0x19B5 PUSH2 0x1953 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 0x19EE PUSH2 0x19E9 PUSH2 0x19E4 DUP5 PUSH2 0x19BC JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x19C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FE DUP2 PUSH2 0x19D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A17 DUP2 PUSH2 0x1A04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A32 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x19F5 JUMP JUMPDEST PUSH2 0x1A3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A0E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A51 DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1A5C DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7A JUMPI PUSH2 0x1A79 PUSH2 0x1953 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 TIMESTAMP CODECOPY 0xAA SSTORE CALLER PUSH20 0x132C81FC8C57E3B38437535B47175888A8CBEE49 0xE7 0xE0 0xB3 SUB 0xE0 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "743:1954:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:219:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:126;;;:::i;:::-;;3810:120:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;849:80:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3198:265:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:566;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8068:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;936:38:33;;;:::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:33;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7130:229:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9146:344;;;:::i;:::-;;6886:171;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3563:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8706:128;;;:::i;:::-;;2453:242:33;;;;;;;;;;;;;:::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:33:-;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:33:-;;;:::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:33:-;896:33;2464:16:6;2475:4;2464:10;:16::i;:::-;1920:8:33::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:33:-;896:33;2464:16:6;2475:4;2464:10;:16::i;:::-;2624:8:33::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;763:146:25:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763: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;14296:213:28:-;14352:6;14382:16;14374:24;;:5;:24;14370:103;;;14452:2;14456:5;14421:41;;;;;;;;;;;;:::i;:::-;;;;;;;;14370:103;14496:5;14482:20;;14296: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;3371:111:27:-;3429:7;3455:20;3467:1;3463;:5;3470:1;3473;3455:7;:20::i;:::-;3448:27;;3371:111;;;;:::o;2825:294::-;2903:7;3075:26;3091:9;3075:15;:26::i;:::-;3070:1;3066;:5;3065:36;3060:1;:42;3053:49;;2825:294;;;;;:::o;34795:145:28:-;34842:9;34921:1;34914:9;34907:17;34902:22;;34795:145;;;:::o;88:117:39:-;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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@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/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"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": "6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "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 0x27 0x2C 0xE1 CHAINID MUL 0xF7 JUMP EQ 0xB1 DUP13 CALLCODE 0xBF NOT 0xAB PUSH9 0xC14B11F226E3A446F PUSH23 0xE4FE0C0E360DC764736F6C634300081C00330000000000 ", - "sourceMap": "708:3783:34:-: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_7492": { - "entryPoint": 1293, - "id": 7492, - "parameterSlots": 1, - "returnSlots": 4 - }, - "@initialize_7471": { - "entryPoint": 876, - "id": 7471, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@isVerifiedForDomainHash_7591": { - "entryPoint": 515, - "id": 7591, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@isVerifiedForMultipleDomainHashes_7550": { - "entryPoint": 1723, - "id": 7550, - "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_7442": { - "entryPoint": 1631, - "id": 7442, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@renounceOwnership_834": { - "entryPoint": 1468, - "id": 834, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@setRegistry_7618": { - "entryPoint": 1912, - "id": 7618, - "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_$8101_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_$8101t_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_$7736_to_t_address_fromStack": { - "entryPoint": 3815, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_IVerifier_$8101_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_$8101_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_$7736__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_$8101": { - "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_$7736_to_t_address": { - "entryPoint": 3797, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_IVerifier_$8101_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_$8101": { - "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:39", - "nodeType": "YulBlock", - "src": "0:14873:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:32:39", - "nodeType": "YulBlock", - "src": "379:32:39", - "statements": [ - { - "nativeSrc": "389:16:39", - "nodeType": "YulAssignment", - "src": "389:16:39", - "value": { - "name": "value", - "nativeSrc": "400:5:39", - "nodeType": "YulIdentifier", - "src": "400:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "334:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:77:39" - }, - { - "body": { - "nativeSrc": "460:79:39", - "nodeType": "YulBlock", - "src": "460:79:39", - "statements": [ - { - "body": { - "nativeSrc": "517:16:39", - "nodeType": "YulBlock", - "src": "517:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "526:1:39", - "nodeType": "YulLiteral", - "src": "526:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "529:1:39", - "nodeType": "YulLiteral", - "src": "529:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "519:6:39", - "nodeType": "YulIdentifier", - "src": "519:6:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulFunctionCall", - "src": "519:12:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulExpressionStatement", - "src": "519:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "483:5:39", - "nodeType": "YulIdentifier", - "src": "483:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "508:5:39", - "nodeType": "YulIdentifier", - "src": "508:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "490:17:39", - "nodeType": "YulIdentifier", - "src": "490:17:39" - }, - "nativeSrc": "490:24:39", - "nodeType": "YulFunctionCall", - "src": "490:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "480:2:39", - "nodeType": "YulIdentifier", - "src": "480:2:39" - }, - "nativeSrc": "480:35:39", - "nodeType": "YulFunctionCall", - "src": "480:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "473:6:39", - "nodeType": "YulIdentifier", - "src": "473:6:39" - }, - "nativeSrc": "473:43:39", - "nodeType": "YulFunctionCall", - "src": "473:43:39" - }, - "nativeSrc": "470:63:39", - "nodeType": "YulIf", - "src": "470:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "417:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "453:5:39", - "nodeType": "YulTypedName", - "src": "453:5:39", - "type": "" - } - ], - "src": "417:122:39" - }, - { - "body": { - "nativeSrc": "597:87:39", - "nodeType": "YulBlock", - "src": "597:87:39", - "statements": [ - { - "nativeSrc": "607:29:39", - "nodeType": "YulAssignment", - "src": "607:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "629:6:39", - "nodeType": "YulIdentifier", - "src": "629:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "616:12:39", - "nodeType": "YulIdentifier", - "src": "616:12:39" - }, - "nativeSrc": "616:20:39", - "nodeType": "YulFunctionCall", - "src": "616:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "607:5:39", - "nodeType": "YulIdentifier", - "src": "607:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "672:5:39", - "nodeType": "YulIdentifier", - "src": "672:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "645:26:39", - "nodeType": "YulIdentifier", - "src": "645:26:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulFunctionCall", - "src": "645:33:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulExpressionStatement", - "src": "645:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "545:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "575:6:39", - "nodeType": "YulTypedName", - "src": "575:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "583:3:39", - "nodeType": "YulTypedName", - "src": "583:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "591:5:39", - "nodeType": "YulTypedName", - "src": "591:5:39", - "type": "" - } - ], - "src": "545:139:39" - }, - { - "body": { - "nativeSrc": "735:81:39", - "nodeType": "YulBlock", - "src": "735:81:39", - "statements": [ - { - "nativeSrc": "745:65:39", - "nodeType": "YulAssignment", - "src": "745:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "760:5:39", - "nodeType": "YulIdentifier", - "src": "760:5:39" - }, - { - "kind": "number", - "nativeSrc": "767:42:39", - "nodeType": "YulLiteral", - "src": "767:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "756:3:39", - "nodeType": "YulIdentifier", - "src": "756:3:39" - }, - "nativeSrc": "756:54:39", - "nodeType": "YulFunctionCall", - "src": "756:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "745:7:39", - "nodeType": "YulIdentifier", - "src": "745:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "690:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "717:5:39", - "nodeType": "YulTypedName", - "src": "717:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "727:7:39", - "nodeType": "YulTypedName", - "src": "727:7:39", - "type": "" - } - ], - "src": "690:126:39" - }, - { - "body": { - "nativeSrc": "867:51:39", - "nodeType": "YulBlock", - "src": "867:51:39", - "statements": [ - { - "nativeSrc": "877:35:39", - "nodeType": "YulAssignment", - "src": "877:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "906:5:39", - "nodeType": "YulIdentifier", - "src": "906:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "888:17:39", - "nodeType": "YulIdentifier", - "src": "888:17:39" - }, - "nativeSrc": "888:24:39", - "nodeType": "YulFunctionCall", - "src": "888:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "877:7:39", - "nodeType": "YulIdentifier", - "src": "877:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "822:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "849:5:39", - "nodeType": "YulTypedName", - "src": "849:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "859:7:39", - "nodeType": "YulTypedName", - "src": "859:7:39", - "type": "" - } - ], - "src": "822:96:39" - }, - { - "body": { - "nativeSrc": "967:79:39", - "nodeType": "YulBlock", - "src": "967:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1024:16:39", - "nodeType": "YulBlock", - "src": "1024:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1033:1:39", - "nodeType": "YulLiteral", - "src": "1033:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1036:1:39", - "nodeType": "YulLiteral", - "src": "1036:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1026:6:39", - "nodeType": "YulIdentifier", - "src": "1026:6:39" - }, - "nativeSrc": "1026:12:39", - "nodeType": "YulFunctionCall", - "src": "1026:12:39" - }, - "nativeSrc": "1026:12:39", - "nodeType": "YulExpressionStatement", - "src": "1026:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "990:5:39", - "nodeType": "YulIdentifier", - "src": "990:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1015:5:39", - "nodeType": "YulIdentifier", - "src": "1015:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "997:17:39", - "nodeType": "YulIdentifier", - "src": "997:17:39" - }, - "nativeSrc": "997:24:39", - "nodeType": "YulFunctionCall", - "src": "997:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "987:2:39", - "nodeType": "YulIdentifier", - "src": "987:2:39" - }, - "nativeSrc": "987:35:39", - "nodeType": "YulFunctionCall", - "src": "987:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "980:6:39", - "nodeType": "YulIdentifier", - "src": "980:6:39" - }, - "nativeSrc": "980:43:39", - "nodeType": "YulFunctionCall", - "src": "980:43:39" - }, - "nativeSrc": "977:63:39", - "nodeType": "YulIf", - "src": "977:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "924:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "960:5:39", - "nodeType": "YulTypedName", - "src": "960:5:39", - "type": "" - } - ], - "src": "924:122:39" - }, - { - "body": { - "nativeSrc": "1104:87:39", - "nodeType": "YulBlock", - "src": "1104:87:39", - "statements": [ - { - "nativeSrc": "1114:29:39", - "nodeType": "YulAssignment", - "src": "1114:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1136:6:39", - "nodeType": "YulIdentifier", - "src": "1136:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1123:12:39", - "nodeType": "YulIdentifier", - "src": "1123:12:39" - }, - "nativeSrc": "1123:20:39", - "nodeType": "YulFunctionCall", - "src": "1123:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1114:5:39", - "nodeType": "YulIdentifier", - "src": "1114:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1179:5:39", - "nodeType": "YulIdentifier", - "src": "1179:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "1152:26:39", - "nodeType": "YulIdentifier", - "src": "1152:26:39" - }, - "nativeSrc": "1152:33:39", - "nodeType": "YulFunctionCall", - "src": "1152:33:39" - }, - "nativeSrc": "1152:33:39", - "nodeType": "YulExpressionStatement", - "src": "1152:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "1052:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1082:6:39", - "nodeType": "YulTypedName", - "src": "1082:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1090:3:39", - "nodeType": "YulTypedName", - "src": "1090:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1098:5:39", - "nodeType": "YulTypedName", - "src": "1098:5:39", - "type": "" - } - ], - "src": "1052:139:39" - }, - { - "body": { - "nativeSrc": "1242:32:39", - "nodeType": "YulBlock", - "src": "1242:32:39", - "statements": [ - { - "nativeSrc": "1252:16:39", - "nodeType": "YulAssignment", - "src": "1252:16:39", - "value": { - "name": "value", - "nativeSrc": "1263:5:39", - "nodeType": "YulIdentifier", - "src": "1263:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1252:7:39", - "nodeType": "YulIdentifier", - "src": "1252:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "1197:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1224:5:39", - "nodeType": "YulTypedName", - "src": "1224:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1234:7:39", - "nodeType": "YulTypedName", - "src": "1234:7:39", - "type": "" - } - ], - "src": "1197:77:39" - }, - { - "body": { - "nativeSrc": "1323:79:39", - "nodeType": "YulBlock", - "src": "1323:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1380:16:39", - "nodeType": "YulBlock", - "src": "1380:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1389:1:39", - "nodeType": "YulLiteral", - "src": "1389:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1392:1:39", - "nodeType": "YulLiteral", - "src": "1392:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1382:6:39", - "nodeType": "YulIdentifier", - "src": "1382:6:39" - }, - "nativeSrc": "1382:12:39", - "nodeType": "YulFunctionCall", - "src": "1382:12:39" - }, - "nativeSrc": "1382:12:39", - "nodeType": "YulExpressionStatement", - "src": "1382:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1346:5:39", - "nodeType": "YulIdentifier", - "src": "1346:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1371:5:39", - "nodeType": "YulIdentifier", - "src": "1371:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "1353:17:39", - "nodeType": "YulIdentifier", - "src": "1353:17:39" - }, - "nativeSrc": "1353:24:39", - "nodeType": "YulFunctionCall", - "src": "1353:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1343:2:39", - "nodeType": "YulIdentifier", - "src": "1343:2:39" - }, - "nativeSrc": "1343:35:39", - "nodeType": "YulFunctionCall", - "src": "1343:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1336:6:39", - "nodeType": "YulIdentifier", - "src": "1336:6:39" - }, - "nativeSrc": "1336:43:39", - "nodeType": "YulFunctionCall", - "src": "1336:43:39" - }, - "nativeSrc": "1333:63:39", - "nodeType": "YulIf", - "src": "1333:63:39" - } - ] - }, - "name": "validator_revert_t_uint256", - "nativeSrc": "1280:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1316:5:39", - "nodeType": "YulTypedName", - "src": "1316:5:39", - "type": "" - } - ], - "src": "1280:122:39" - }, - { - "body": { - "nativeSrc": "1460:87:39", - "nodeType": "YulBlock", - "src": "1460:87:39", - "statements": [ - { - "nativeSrc": "1470:29:39", - "nodeType": "YulAssignment", - "src": "1470:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1492:6:39", - "nodeType": "YulIdentifier", - "src": "1492:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1479:12:39", - "nodeType": "YulIdentifier", - "src": "1479:12:39" - }, - "nativeSrc": "1479:20:39", - "nodeType": "YulFunctionCall", - "src": "1479:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1470:5:39", - "nodeType": "YulIdentifier", - "src": "1470:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1535:5:39", - "nodeType": "YulIdentifier", - "src": "1535:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "1508:26:39", - "nodeType": "YulIdentifier", - "src": "1508:26:39" - }, - "nativeSrc": "1508:33:39", - "nodeType": "YulFunctionCall", - "src": "1508:33:39" - }, - "nativeSrc": "1508:33:39", - "nodeType": "YulExpressionStatement", - "src": "1508:33:39" - } - ] - }, - "name": "abi_decode_t_uint256", - "nativeSrc": "1408:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1438:6:39", - "nodeType": "YulTypedName", - "src": "1438:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1446:3:39", - "nodeType": "YulTypedName", - "src": "1446:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1454:5:39", - "nodeType": "YulTypedName", - "src": "1454:5:39", - "type": "" - } - ], - "src": "1408:139:39" - }, - { - "body": { - "nativeSrc": "1653:519:39", - "nodeType": "YulBlock", - "src": "1653:519:39", - "statements": [ - { - "body": { - "nativeSrc": "1699:83:39", - "nodeType": "YulBlock", - "src": "1699:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1701:77:39", - "nodeType": "YulIdentifier", - "src": "1701:77:39" - }, - "nativeSrc": "1701:79:39", - "nodeType": "YulFunctionCall", - "src": "1701:79:39" - }, - "nativeSrc": "1701:79:39", - "nodeType": "YulExpressionStatement", - "src": "1701:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1674:7:39", - "nodeType": "YulIdentifier", - "src": "1674:7:39" - }, - { - "name": "headStart", - "nativeSrc": "1683:9:39", - "nodeType": "YulIdentifier", - "src": "1683:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1670:3:39", - "nodeType": "YulIdentifier", - "src": "1670:3:39" - }, - "nativeSrc": "1670:23:39", - "nodeType": "YulFunctionCall", - "src": "1670:23:39" - }, - { - "kind": "number", - "nativeSrc": "1695:2:39", - "nodeType": "YulLiteral", - "src": "1695:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1666:3:39", - "nodeType": "YulIdentifier", - "src": "1666:3:39" - }, - "nativeSrc": "1666:32:39", - "nodeType": "YulFunctionCall", - "src": "1666:32:39" - }, - "nativeSrc": "1663:119:39", - "nodeType": "YulIf", - "src": "1663:119:39" - }, - { - "nativeSrc": "1792:117:39", - "nodeType": "YulBlock", - "src": "1792:117:39", - "statements": [ - { - "nativeSrc": "1807:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1807:15:39", - "value": { - "kind": "number", - "nativeSrc": "1821:1:39", - "nodeType": "YulLiteral", - "src": "1821:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1811:6:39", - "nodeType": "YulTypedName", - "src": "1811:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1836:63:39", - "nodeType": "YulAssignment", - "src": "1836:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1871:9:39", - "nodeType": "YulIdentifier", - "src": "1871:9:39" - }, - { - "name": "offset", - "nativeSrc": "1882:6:39", - "nodeType": "YulIdentifier", - "src": "1882:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1867:3:39", - "nodeType": "YulIdentifier", - "src": "1867:3:39" - }, - "nativeSrc": "1867:22:39", - "nodeType": "YulFunctionCall", - "src": "1867:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1891:7:39", - "nodeType": "YulIdentifier", - "src": "1891:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "1846:20:39", - "nodeType": "YulIdentifier", - "src": "1846:20:39" - }, - "nativeSrc": "1846:53:39", - "nodeType": "YulFunctionCall", - "src": "1846:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1836:6:39", - "nodeType": "YulIdentifier", - "src": "1836:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "1919:118:39", - "nodeType": "YulBlock", - "src": "1919:118:39", - "statements": [ - { - "nativeSrc": "1934:16:39", - "nodeType": "YulVariableDeclaration", - "src": "1934:16:39", - "value": { - "kind": "number", - "nativeSrc": "1948:2:39", - "nodeType": "YulLiteral", - "src": "1948:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1938:6:39", - "nodeType": "YulTypedName", - "src": "1938:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1964:63:39", - "nodeType": "YulAssignment", - "src": "1964:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1999:9:39", - "nodeType": "YulIdentifier", - "src": "1999:9:39" - }, - { - "name": "offset", - "nativeSrc": "2010:6:39", - "nodeType": "YulIdentifier", - "src": "2010:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1995:3:39", - "nodeType": "YulIdentifier", - "src": "1995:3:39" - }, - "nativeSrc": "1995:22:39", - "nodeType": "YulFunctionCall", - "src": "1995:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2019:7:39", - "nodeType": "YulIdentifier", - "src": "2019:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "1974:20:39", - "nodeType": "YulIdentifier", - "src": "1974:20:39" - }, - "nativeSrc": "1974:53:39", - "nodeType": "YulFunctionCall", - "src": "1974:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1964:6:39", - "nodeType": "YulIdentifier", - "src": "1964:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "2047:118:39", - "nodeType": "YulBlock", - "src": "2047:118:39", - "statements": [ - { - "nativeSrc": "2062:16:39", - "nodeType": "YulVariableDeclaration", - "src": "2062:16:39", - "value": { - "kind": "number", - "nativeSrc": "2076:2:39", - "nodeType": "YulLiteral", - "src": "2076:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2066:6:39", - "nodeType": "YulTypedName", - "src": "2066:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2092:63:39", - "nodeType": "YulAssignment", - "src": "2092:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2127:9:39", - "nodeType": "YulIdentifier", - "src": "2127:9:39" - }, - { - "name": "offset", - "nativeSrc": "2138:6:39", - "nodeType": "YulIdentifier", - "src": "2138:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2123:3:39", - "nodeType": "YulIdentifier", - "src": "2123:3:39" - }, - "nativeSrc": "2123:22:39", - "nodeType": "YulFunctionCall", - "src": "2123:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2147:7:39", - "nodeType": "YulIdentifier", - "src": "2147:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "2102:20:39", - "nodeType": "YulIdentifier", - "src": "2102:20:39" - }, - "nativeSrc": "2102:53:39", - "nodeType": "YulFunctionCall", - "src": "2102:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "2092:6:39", - "nodeType": "YulIdentifier", - "src": "2092:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_addresst_uint256", - "nativeSrc": "1553:619:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1607:9:39", - "nodeType": "YulTypedName", - "src": "1607:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1618:7:39", - "nodeType": "YulTypedName", - "src": "1618:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1630:6:39", - "nodeType": "YulTypedName", - "src": "1630:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1638:6:39", - "nodeType": "YulTypedName", - "src": "1638:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1646:6:39", - "nodeType": "YulTypedName", - "src": "1646:6:39", - "type": "" - } - ], - "src": "1553:619:39" - }, - { - "body": { - "nativeSrc": "2243:53:39", - "nodeType": "YulBlock", - "src": "2243:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2260:3:39", - "nodeType": "YulIdentifier", - "src": "2260:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2283:5:39", - "nodeType": "YulIdentifier", - "src": "2283:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "2265:17:39", - "nodeType": "YulIdentifier", - "src": "2265:17:39" - }, - "nativeSrc": "2265:24:39", - "nodeType": "YulFunctionCall", - "src": "2265:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2253:6:39", - "nodeType": "YulIdentifier", - "src": "2253:6:39" - }, - "nativeSrc": "2253:37:39", - "nodeType": "YulFunctionCall", - "src": "2253:37:39" - }, - "nativeSrc": "2253:37:39", - "nodeType": "YulExpressionStatement", - "src": "2253:37:39" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "2178:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2231:5:39", - "nodeType": "YulTypedName", - "src": "2231:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2238:3:39", - "nodeType": "YulTypedName", - "src": "2238:3:39", - "type": "" - } - ], - "src": "2178:118:39" - }, - { - "body": { - "nativeSrc": "2400:124:39", - "nodeType": "YulBlock", - "src": "2400:124:39", - "statements": [ - { - "nativeSrc": "2410:26:39", - "nodeType": "YulAssignment", - "src": "2410:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2422:9:39", - "nodeType": "YulIdentifier", - "src": "2422:9:39" - }, - { - "kind": "number", - "nativeSrc": "2433:2:39", - "nodeType": "YulLiteral", - "src": "2433:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2418:3:39", - "nodeType": "YulIdentifier", - "src": "2418:3:39" - }, - "nativeSrc": "2418:18:39", - "nodeType": "YulFunctionCall", - "src": "2418:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2410:4:39", - "nodeType": "YulIdentifier", - "src": "2410:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2490:6:39", - "nodeType": "YulIdentifier", - "src": "2490:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2503:9:39", - "nodeType": "YulIdentifier", - "src": "2503:9:39" - }, - { - "kind": "number", - "nativeSrc": "2514:1:39", - "nodeType": "YulLiteral", - "src": "2514:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2499:3:39", - "nodeType": "YulIdentifier", - "src": "2499:3:39" - }, - "nativeSrc": "2499:17:39", - "nodeType": "YulFunctionCall", - "src": "2499:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "2446:43:39", - "nodeType": "YulIdentifier", - "src": "2446:43:39" - }, - "nativeSrc": "2446:71:39", - "nodeType": "YulFunctionCall", - "src": "2446:71:39" - }, - "nativeSrc": "2446:71:39", - "nodeType": "YulExpressionStatement", - "src": "2446:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "2302:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2372:9:39", - "nodeType": "YulTypedName", - "src": "2372:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2384:6:39", - "nodeType": "YulTypedName", - "src": "2384:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2395:4:39", - "nodeType": "YulTypedName", - "src": "2395:4:39", - "type": "" - } - ], - "src": "2302:222:39" - }, - { - "body": { - "nativeSrc": "2613:391:39", - "nodeType": "YulBlock", - "src": "2613:391:39", - "statements": [ - { - "body": { - "nativeSrc": "2659:83:39", - "nodeType": "YulBlock", - "src": "2659:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2661:77:39", - "nodeType": "YulIdentifier", - "src": "2661:77:39" - }, - "nativeSrc": "2661:79:39", - "nodeType": "YulFunctionCall", - "src": "2661:79:39" - }, - "nativeSrc": "2661:79:39", - "nodeType": "YulExpressionStatement", - "src": "2661:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2634:7:39", - "nodeType": "YulIdentifier", - "src": "2634:7:39" - }, - { - "name": "headStart", - "nativeSrc": "2643:9:39", - "nodeType": "YulIdentifier", - "src": "2643:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2630:3:39", - "nodeType": "YulIdentifier", - "src": "2630:3:39" - }, - "nativeSrc": "2630:23:39", - "nodeType": "YulFunctionCall", - "src": "2630:23:39" - }, - { - "kind": "number", - "nativeSrc": "2655:2:39", - "nodeType": "YulLiteral", - "src": "2655:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2626:3:39", - "nodeType": "YulIdentifier", - "src": "2626:3:39" - }, - "nativeSrc": "2626:32:39", - "nodeType": "YulFunctionCall", - "src": "2626:32:39" - }, - "nativeSrc": "2623:119:39", - "nodeType": "YulIf", - "src": "2623:119:39" - }, - { - "nativeSrc": "2752:117:39", - "nodeType": "YulBlock", - "src": "2752:117:39", - "statements": [ - { - "nativeSrc": "2767:15:39", - "nodeType": "YulVariableDeclaration", - "src": "2767:15:39", - "value": { - "kind": "number", - "nativeSrc": "2781:1:39", - "nodeType": "YulLiteral", - "src": "2781:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2771:6:39", - "nodeType": "YulTypedName", - "src": "2771:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2796:63:39", - "nodeType": "YulAssignment", - "src": "2796:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2831:9:39", - "nodeType": "YulIdentifier", - "src": "2831:9:39" - }, - { - "name": "offset", - "nativeSrc": "2842:6:39", - "nodeType": "YulIdentifier", - "src": "2842:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2827:3:39", - "nodeType": "YulIdentifier", - "src": "2827:3:39" - }, - "nativeSrc": "2827:22:39", - "nodeType": "YulFunctionCall", - "src": "2827:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2851:7:39", - "nodeType": "YulIdentifier", - "src": "2851:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "2806:20:39", - "nodeType": "YulIdentifier", - "src": "2806:20:39" - }, - "nativeSrc": "2806:53:39", - "nodeType": "YulFunctionCall", - "src": "2806:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2796:6:39", - "nodeType": "YulIdentifier", - "src": "2796:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "2879:118:39", - "nodeType": "YulBlock", - "src": "2879:118:39", - "statements": [ - { - "nativeSrc": "2894:16:39", - "nodeType": "YulVariableDeclaration", - "src": "2894:16:39", - "value": { - "kind": "number", - "nativeSrc": "2908:2:39", - "nodeType": "YulLiteral", - "src": "2908:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2898:6:39", - "nodeType": "YulTypedName", - "src": "2898:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2924:63:39", - "nodeType": "YulAssignment", - "src": "2924:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2959:9:39", - "nodeType": "YulIdentifier", - "src": "2959:9:39" - }, - { - "name": "offset", - "nativeSrc": "2970:6:39", - "nodeType": "YulIdentifier", - "src": "2970:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2955:3:39", - "nodeType": "YulIdentifier", - "src": "2955:3:39" - }, - "nativeSrc": "2955:22:39", - "nodeType": "YulFunctionCall", - "src": "2955:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2979:7:39", - "nodeType": "YulIdentifier", - "src": "2979:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "2934:20:39", - "nodeType": "YulIdentifier", - "src": "2934:20:39" - }, - "nativeSrc": "2934:53:39", - "nodeType": "YulFunctionCall", - "src": "2934:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "2924:6:39", - "nodeType": "YulIdentifier", - "src": "2924:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_address", - "nativeSrc": "2530:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2575:9:39", - "nodeType": "YulTypedName", - "src": "2575:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "2586:7:39", - "nodeType": "YulTypedName", - "src": "2586:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "2598:6:39", - "nodeType": "YulTypedName", - "src": "2598:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "2606:6:39", - "nodeType": "YulTypedName", - "src": "2606:6:39", - "type": "" - } - ], - "src": "2530:474:39" - }, - { - "body": { - "nativeSrc": "3076:263:39", - "nodeType": "YulBlock", - "src": "3076:263:39", - "statements": [ - { - "body": { - "nativeSrc": "3122:83:39", - "nodeType": "YulBlock", - "src": "3122:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3124:77:39", - "nodeType": "YulIdentifier", - "src": "3124:77:39" - }, - "nativeSrc": "3124:79:39", - "nodeType": "YulFunctionCall", - "src": "3124:79:39" - }, - "nativeSrc": "3124:79:39", - "nodeType": "YulExpressionStatement", - "src": "3124:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3097:7:39", - "nodeType": "YulIdentifier", - "src": "3097:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3106:9:39", - "nodeType": "YulIdentifier", - "src": "3106:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3093:3:39", - "nodeType": "YulIdentifier", - "src": "3093:3:39" - }, - "nativeSrc": "3093:23:39", - "nodeType": "YulFunctionCall", - "src": "3093:23:39" - }, - { - "kind": "number", - "nativeSrc": "3118:2:39", - "nodeType": "YulLiteral", - "src": "3118:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3089:3:39", - "nodeType": "YulIdentifier", - "src": "3089:3:39" - }, - "nativeSrc": "3089:32:39", - "nodeType": "YulFunctionCall", - "src": "3089:32:39" - }, - "nativeSrc": "3086:119:39", - "nodeType": "YulIf", - "src": "3086:119:39" - }, - { - "nativeSrc": "3215:117:39", - "nodeType": "YulBlock", - "src": "3215:117:39", - "statements": [ - { - "nativeSrc": "3230:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3230:15:39", - "value": { - "kind": "number", - "nativeSrc": "3244:1:39", - "nodeType": "YulLiteral", - "src": "3244:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3234:6:39", - "nodeType": "YulTypedName", - "src": "3234:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3259:63:39", - "nodeType": "YulAssignment", - "src": "3259:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3294:9:39", - "nodeType": "YulIdentifier", - "src": "3294:9:39" - }, - { - "name": "offset", - "nativeSrc": "3305:6:39", - "nodeType": "YulIdentifier", - "src": "3305:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3290:3:39", - "nodeType": "YulIdentifier", - "src": "3290:3:39" - }, - "nativeSrc": "3290:22:39", - "nodeType": "YulFunctionCall", - "src": "3290:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3314:7:39", - "nodeType": "YulIdentifier", - "src": "3314:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "3269:20:39", - "nodeType": "YulIdentifier", - "src": "3269:20:39" - }, - "nativeSrc": "3269:53:39", - "nodeType": "YulFunctionCall", - "src": "3269:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3259:6:39", - "nodeType": "YulIdentifier", - "src": "3259:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "3010:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3046:9:39", - "nodeType": "YulTypedName", - "src": "3046:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3057:7:39", - "nodeType": "YulTypedName", - "src": "3057:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3069:6:39", - "nodeType": "YulTypedName", - "src": "3069:6:39", - "type": "" - } - ], - "src": "3010:329:39" - }, - { - "body": { - "nativeSrc": "3410:53:39", - "nodeType": "YulBlock", - "src": "3410:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3427:3:39", - "nodeType": "YulIdentifier", - "src": "3427:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3450:5:39", - "nodeType": "YulIdentifier", - "src": "3450:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "3432:17:39", - "nodeType": "YulIdentifier", - "src": "3432:17:39" - }, - "nativeSrc": "3432:24:39", - "nodeType": "YulFunctionCall", - "src": "3432:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3420:6:39", - "nodeType": "YulIdentifier", - "src": "3420:6:39" - }, - "nativeSrc": "3420:37:39", - "nodeType": "YulFunctionCall", - "src": "3420:37:39" - }, - "nativeSrc": "3420:37:39", - "nodeType": "YulExpressionStatement", - "src": "3420:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "3345:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3398:5:39", - "nodeType": "YulTypedName", - "src": "3398:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "3405:3:39", - "nodeType": "YulTypedName", - "src": "3405:3:39", - "type": "" - } - ], - "src": "3345:118:39" - }, - { - "body": { - "nativeSrc": "3501:28:39", - "nodeType": "YulBlock", - "src": "3501:28:39", - "statements": [ - { - "nativeSrc": "3511:12:39", - "nodeType": "YulAssignment", - "src": "3511:12:39", - "value": { - "name": "value", - "nativeSrc": "3518:5:39", - "nodeType": "YulIdentifier", - "src": "3518:5:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "3511:3:39", - "nodeType": "YulIdentifier", - "src": "3511:3:39" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "3469:60:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3487:5:39", - "nodeType": "YulTypedName", - "src": "3487:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "3497:3:39", - "nodeType": "YulTypedName", - "src": "3497:3:39", - "type": "" - } - ], - "src": "3469:60:39" - }, - { - "body": { - "nativeSrc": "3595:82:39", - "nodeType": "YulBlock", - "src": "3595:82:39", - "statements": [ - { - "nativeSrc": "3605:66:39", - "nodeType": "YulAssignment", - "src": "3605:66:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3663:5:39", - "nodeType": "YulIdentifier", - "src": "3663:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "3645:17:39", - "nodeType": "YulIdentifier", - "src": "3645:17:39" - }, - "nativeSrc": "3645:24:39", - "nodeType": "YulFunctionCall", - "src": "3645:24:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "3636:8:39", - "nodeType": "YulIdentifier", - "src": "3636:8:39" - }, - "nativeSrc": "3636:34:39", - "nodeType": "YulFunctionCall", - "src": "3636:34:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "3618:17:39", - "nodeType": "YulIdentifier", - "src": "3618:17:39" - }, - "nativeSrc": "3618:53:39", - "nodeType": "YulFunctionCall", - "src": "3618:53:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "3605:9:39", - "nodeType": "YulIdentifier", - "src": "3605:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "3535:142:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3575:5:39", - "nodeType": "YulTypedName", - "src": "3575:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "3585:9:39", - "nodeType": "YulTypedName", - "src": "3585:9:39", - "type": "" - } - ], - "src": "3535:142:39" - }, - { - "body": { - "nativeSrc": "3743:66:39", - "nodeType": "YulBlock", - "src": "3743:66:39", - "statements": [ - { - "nativeSrc": "3753:50:39", - "nodeType": "YulAssignment", - "src": "3753:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3797:5:39", - "nodeType": "YulIdentifier", - "src": "3797:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "3766:30:39", - "nodeType": "YulIdentifier", - "src": "3766:30:39" - }, - "nativeSrc": "3766:37:39", - "nodeType": "YulFunctionCall", - "src": "3766:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "3753:9:39", - "nodeType": "YulIdentifier", - "src": "3753:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "3683:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3723:5:39", - "nodeType": "YulTypedName", - "src": "3723:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "3733:9:39", - "nodeType": "YulTypedName", - "src": "3733:9:39", - "type": "" - } - ], - "src": "3683:126:39" - }, - { - "body": { - "nativeSrc": "3893:66:39", - "nodeType": "YulBlock", - "src": "3893:66:39", - "statements": [ - { - "nativeSrc": "3903:50:39", - "nodeType": "YulAssignment", - "src": "3903:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3947:5:39", - "nodeType": "YulIdentifier", - "src": "3947:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "3916:30:39", - "nodeType": "YulIdentifier", - "src": "3916:30:39" - }, - "nativeSrc": "3916:37:39", - "nodeType": "YulFunctionCall", - "src": "3916:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "3903:9:39", - "nodeType": "YulIdentifier", - "src": "3903:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "3815:144:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3873:5:39", - "nodeType": "YulTypedName", - "src": "3873:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "3883:9:39", - "nodeType": "YulTypedName", - "src": "3883:9:39", - "type": "" - } - ], - "src": "3815:144:39" - }, - { - "body": { - "nativeSrc": "4048:84:39", - "nodeType": "YulBlock", - "src": "4048:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4065:3:39", - "nodeType": "YulIdentifier", - "src": "4065:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4119:5:39", - "nodeType": "YulIdentifier", - "src": "4119:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "4070:48:39", - "nodeType": "YulIdentifier", - "src": "4070:48:39" - }, - "nativeSrc": "4070:55:39", - "nodeType": "YulFunctionCall", - "src": "4070:55:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4058:6:39", - "nodeType": "YulIdentifier", - "src": "4058:6:39" - }, - "nativeSrc": "4058:68:39", - "nodeType": "YulFunctionCall", - "src": "4058:68:39" - }, - "nativeSrc": "4058:68:39", - "nodeType": "YulExpressionStatement", - "src": "4058:68:39" - } - ] - }, - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "3965:167:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4036:5:39", - "nodeType": "YulTypedName", - "src": "4036:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4043:3:39", - "nodeType": "YulTypedName", - "src": "4043:3:39", - "type": "" - } - ], - "src": "3965:167:39" - }, - { - "body": { - "nativeSrc": "4338:389:39", - "nodeType": "YulBlock", - "src": "4338:389:39", - "statements": [ - { - "nativeSrc": "4348:27:39", - "nodeType": "YulAssignment", - "src": "4348:27:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4360:9:39", - "nodeType": "YulIdentifier", - "src": "4360:9:39" - }, - { - "kind": "number", - "nativeSrc": "4371:3:39", - "nodeType": "YulLiteral", - "src": "4371:3:39", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4356:3:39", - "nodeType": "YulIdentifier", - "src": "4356:3:39" - }, - "nativeSrc": "4356:19:39", - "nodeType": "YulFunctionCall", - "src": "4356:19:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4348:4:39", - "nodeType": "YulIdentifier", - "src": "4348:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4429:6:39", - "nodeType": "YulIdentifier", - "src": "4429:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4442:9:39", - "nodeType": "YulIdentifier", - "src": "4442:9:39" - }, - { - "kind": "number", - "nativeSrc": "4453:1:39", - "nodeType": "YulLiteral", - "src": "4453:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4438:3:39", - "nodeType": "YulIdentifier", - "src": "4438:3:39" - }, - "nativeSrc": "4438:17:39", - "nodeType": "YulFunctionCall", - "src": "4438:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4385:43:39", - "nodeType": "YulIdentifier", - "src": "4385:43:39" - }, - "nativeSrc": "4385:71:39", - "nodeType": "YulFunctionCall", - "src": "4385:71:39" - }, - "nativeSrc": "4385:71:39", - "nodeType": "YulExpressionStatement", - "src": "4385:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "4528:6:39", - "nodeType": "YulIdentifier", - "src": "4528:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4541:9:39", - "nodeType": "YulIdentifier", - "src": "4541:9:39" - }, - { - "kind": "number", - "nativeSrc": "4552:2:39", - "nodeType": "YulLiteral", - "src": "4552:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4537:3:39", - "nodeType": "YulIdentifier", - "src": "4537:3:39" - }, - "nativeSrc": "4537:18:39", - "nodeType": "YulFunctionCall", - "src": "4537:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "4466:61:39", - "nodeType": "YulIdentifier", - "src": "4466:61:39" - }, - "nativeSrc": "4466:90:39", - "nodeType": "YulFunctionCall", - "src": "4466:90:39" - }, - "nativeSrc": "4466:90:39", - "nodeType": "YulExpressionStatement", - "src": "4466:90:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "4610:6:39", - "nodeType": "YulIdentifier", - "src": "4610:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4623:9:39", - "nodeType": "YulIdentifier", - "src": "4623:9:39" - }, - { - "kind": "number", - "nativeSrc": "4634:2:39", - "nodeType": "YulLiteral", - "src": "4634:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4619:3:39", - "nodeType": "YulIdentifier", - "src": "4619:3:39" - }, - "nativeSrc": "4619:18:39", - "nodeType": "YulFunctionCall", - "src": "4619:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "4566:43:39", - "nodeType": "YulIdentifier", - "src": "4566:43:39" - }, - "nativeSrc": "4566:72:39", - "nodeType": "YulFunctionCall", - "src": "4566:72:39" - }, - "nativeSrc": "4566:72:39", - "nodeType": "YulExpressionStatement", - "src": "4566:72:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nativeSrc": "4692:6:39", - "nodeType": "YulIdentifier", - "src": "4692:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4705:9:39", - "nodeType": "YulIdentifier", - "src": "4705:9:39" - }, - { - "kind": "number", - "nativeSrc": "4716:2:39", - "nodeType": "YulLiteral", - "src": "4716:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4701:3:39", - "nodeType": "YulIdentifier", - "src": "4701:3:39" - }, - "nativeSrc": "4701:18:39", - "nodeType": "YulFunctionCall", - "src": "4701:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "4648:43:39", - "nodeType": "YulIdentifier", - "src": "4648:43:39" - }, - "nativeSrc": "4648:72:39", - "nodeType": "YulFunctionCall", - "src": "4648:72:39" - }, - "nativeSrc": "4648:72:39", - "nodeType": "YulExpressionStatement", - "src": "4648:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_contract$_IVerifier_$8101_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "4138:589:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4286:9:39", - "nodeType": "YulTypedName", - "src": "4286:9:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "4298:6:39", - "nodeType": "YulTypedName", - "src": "4298:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4306:6:39", - "nodeType": "YulTypedName", - "src": "4306:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4314:6:39", - "nodeType": "YulTypedName", - "src": "4314:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4322:6:39", - "nodeType": "YulTypedName", - "src": "4322:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4333:4:39", - "nodeType": "YulTypedName", - "src": "4333:4:39", - "type": "" - } - ], - "src": "4138:589:39" - }, - { - "body": { - "nativeSrc": "4814:66:39", - "nodeType": "YulBlock", - "src": "4814:66:39", - "statements": [ - { - "nativeSrc": "4824:50:39", - "nodeType": "YulAssignment", - "src": "4824:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4868:5:39", - "nodeType": "YulIdentifier", - "src": "4868:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "4837:30:39", - "nodeType": "YulIdentifier", - "src": "4837:30:39" - }, - "nativeSrc": "4837:37:39", - "nodeType": "YulFunctionCall", - "src": "4837:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "4824:9:39", - "nodeType": "YulIdentifier", - "src": "4824:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "4733:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4794:5:39", - "nodeType": "YulTypedName", - "src": "4794:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "4804:9:39", - "nodeType": "YulTypedName", - "src": "4804:9:39", - "type": "" - } - ], - "src": "4733:147:39" - }, - { - "body": { - "nativeSrc": "4972:87:39", - "nodeType": "YulBlock", - "src": "4972:87:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4989:3:39", - "nodeType": "YulIdentifier", - "src": "4989:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5046:5:39", - "nodeType": "YulIdentifier", - "src": "5046:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "4994:51:39", - "nodeType": "YulIdentifier", - "src": "4994:51:39" - }, - "nativeSrc": "4994:58:39", - "nodeType": "YulFunctionCall", - "src": "4994:58:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4982:6:39", - "nodeType": "YulIdentifier", - "src": "4982:6:39" - }, - "nativeSrc": "4982:71:39", - "nodeType": "YulFunctionCall", - "src": "4982:71:39" - }, - "nativeSrc": "4982:71:39", - "nodeType": "YulExpressionStatement", - "src": "4982:71:39" - } - ] - }, - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "4886:173:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4960:5:39", - "nodeType": "YulTypedName", - "src": "4960:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4967:3:39", - "nodeType": "YulTypedName", - "src": "4967:3:39", - "type": "" - } - ], - "src": "4886:173:39" - }, - { - "body": { - "nativeSrc": "5184:145:39", - "nodeType": "YulBlock", - "src": "5184:145:39", - "statements": [ - { - "nativeSrc": "5194:26:39", - "nodeType": "YulAssignment", - "src": "5194:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5206:9:39", - "nodeType": "YulIdentifier", - "src": "5206:9:39" - }, - { - "kind": "number", - "nativeSrc": "5217:2:39", - "nodeType": "YulLiteral", - "src": "5217:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5202:3:39", - "nodeType": "YulIdentifier", - "src": "5202:3:39" - }, - "nativeSrc": "5202:18:39", - "nodeType": "YulFunctionCall", - "src": "5202:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5194:4:39", - "nodeType": "YulIdentifier", - "src": "5194:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5295:6:39", - "nodeType": "YulIdentifier", - "src": "5295:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5308:9:39", - "nodeType": "YulIdentifier", - "src": "5308:9:39" - }, - { - "kind": "number", - "nativeSrc": "5319:1:39", - "nodeType": "YulLiteral", - "src": "5319:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5304:3:39", - "nodeType": "YulIdentifier", - "src": "5304:3:39" - }, - "nativeSrc": "5304:17:39", - "nodeType": "YulFunctionCall", - "src": "5304:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "5230:64:39", - "nodeType": "YulIdentifier", - "src": "5230:64:39" - }, - "nativeSrc": "5230:92:39", - "nodeType": "YulFunctionCall", - "src": "5230:92:39" - }, - "nativeSrc": "5230:92:39", - "nodeType": "YulExpressionStatement", - "src": "5230:92:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed", - "nativeSrc": "5065:264:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5156:9:39", - "nodeType": "YulTypedName", - "src": "5156:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5168:6:39", - "nodeType": "YulTypedName", - "src": "5168:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5179:4:39", - "nodeType": "YulTypedName", - "src": "5179:4:39", - "type": "" - } - ], - "src": "5065:264:39" - }, - { - "body": { - "nativeSrc": "5433:124:39", - "nodeType": "YulBlock", - "src": "5433:124:39", - "statements": [ - { - "nativeSrc": "5443:26:39", - "nodeType": "YulAssignment", - "src": "5443:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5455:9:39", - "nodeType": "YulIdentifier", - "src": "5455:9:39" - }, - { - "kind": "number", - "nativeSrc": "5466:2:39", - "nodeType": "YulLiteral", - "src": "5466:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5451:3:39", - "nodeType": "YulIdentifier", - "src": "5451:3:39" - }, - "nativeSrc": "5451:18:39", - "nodeType": "YulFunctionCall", - "src": "5451:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5443:4:39", - "nodeType": "YulIdentifier", - "src": "5443:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5523:6:39", - "nodeType": "YulIdentifier", - "src": "5523:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5536:9:39", - "nodeType": "YulIdentifier", - "src": "5536:9:39" - }, - { - "kind": "number", - "nativeSrc": "5547:1:39", - "nodeType": "YulLiteral", - "src": "5547:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5532:3:39", - "nodeType": "YulIdentifier", - "src": "5532:3:39" - }, - "nativeSrc": "5532:17:39", - "nodeType": "YulFunctionCall", - "src": "5532:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "5479:43:39", - "nodeType": "YulIdentifier", - "src": "5479:43:39" - }, - "nativeSrc": "5479:71:39", - "nodeType": "YulFunctionCall", - "src": "5479:71:39" - }, - "nativeSrc": "5479:71:39", - "nodeType": "YulExpressionStatement", - "src": "5479:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "5335:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5405:9:39", - "nodeType": "YulTypedName", - "src": "5405:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5417:6:39", - "nodeType": "YulTypedName", - "src": "5417:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5428:4:39", - "nodeType": "YulTypedName", - "src": "5428:4:39", - "type": "" - } - ], - "src": "5335:222:39" - }, - { - "body": { - "nativeSrc": "5652:28:39", - "nodeType": "YulBlock", - "src": "5652:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5669:1:39", - "nodeType": "YulLiteral", - "src": "5669:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5672:1:39", - "nodeType": "YulLiteral", - "src": "5672:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5662:6:39", - "nodeType": "YulIdentifier", - "src": "5662:6:39" - }, - "nativeSrc": "5662:12:39", - "nodeType": "YulFunctionCall", - "src": "5662:12:39" - }, - "nativeSrc": "5662:12:39", - "nodeType": "YulExpressionStatement", - "src": "5662:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "5563:117:39", - "nodeType": "YulFunctionDefinition", - "src": "5563:117:39" - }, - { - "body": { - "nativeSrc": "5734:54:39", - "nodeType": "YulBlock", - "src": "5734:54:39", - "statements": [ - { - "nativeSrc": "5744:38:39", - "nodeType": "YulAssignment", - "src": "5744:38:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5762:5:39", - "nodeType": "YulIdentifier", - "src": "5762:5:39" - }, - { - "kind": "number", - "nativeSrc": "5769:2:39", - "nodeType": "YulLiteral", - "src": "5769:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5758:3:39", - "nodeType": "YulIdentifier", - "src": "5758:3:39" - }, - "nativeSrc": "5758:14:39", - "nodeType": "YulFunctionCall", - "src": "5758:14:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5778:2:39", - "nodeType": "YulLiteral", - "src": "5778:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "5774:3:39", - "nodeType": "YulIdentifier", - "src": "5774:3:39" - }, - "nativeSrc": "5774:7:39", - "nodeType": "YulFunctionCall", - "src": "5774:7:39" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "5754:3:39", - "nodeType": "YulIdentifier", - "src": "5754:3:39" - }, - "nativeSrc": "5754:28:39", - "nodeType": "YulFunctionCall", - "src": "5754:28:39" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "5744:6:39", - "nodeType": "YulIdentifier", - "src": "5744:6:39" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "5686:102:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5717:5:39", - "nodeType": "YulTypedName", - "src": "5717:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "5727:6:39", - "nodeType": "YulTypedName", - "src": "5727:6:39", - "type": "" - } - ], - "src": "5686:102:39" - }, - { - "body": { - "nativeSrc": "5822:152:39", - "nodeType": "YulBlock", - "src": "5822:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5839:1:39", - "nodeType": "YulLiteral", - "src": "5839:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5842:77:39", - "nodeType": "YulLiteral", - "src": "5842:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5832:6:39", - "nodeType": "YulIdentifier", - "src": "5832:6:39" - }, - "nativeSrc": "5832:88:39", - "nodeType": "YulFunctionCall", - "src": "5832:88:39" - }, - "nativeSrc": "5832:88:39", - "nodeType": "YulExpressionStatement", - "src": "5832:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5936:1:39", - "nodeType": "YulLiteral", - "src": "5936:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "5939:4:39", - "nodeType": "YulLiteral", - "src": "5939:4:39", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5929:6:39", - "nodeType": "YulIdentifier", - "src": "5929:6:39" - }, - "nativeSrc": "5929:15:39", - "nodeType": "YulFunctionCall", - "src": "5929:15:39" - }, - "nativeSrc": "5929:15:39", - "nodeType": "YulExpressionStatement", - "src": "5929:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5960:1:39", - "nodeType": "YulLiteral", - "src": "5960:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5963:4:39", - "nodeType": "YulLiteral", - "src": "5963:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5953:6:39", - "nodeType": "YulIdentifier", - "src": "5953:6:39" - }, - "nativeSrc": "5953:15:39", - "nodeType": "YulFunctionCall", - "src": "5953:15:39" - }, - "nativeSrc": "5953:15:39", - "nodeType": "YulExpressionStatement", - "src": "5953:15:39" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "5794:180:39", - "nodeType": "YulFunctionDefinition", - "src": "5794:180:39" - }, - { - "body": { - "nativeSrc": "6023:238:39", - "nodeType": "YulBlock", - "src": "6023:238:39", - "statements": [ - { - "nativeSrc": "6033:58:39", - "nodeType": "YulVariableDeclaration", - "src": "6033:58:39", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "6055:6:39", - "nodeType": "YulIdentifier", - "src": "6055:6:39" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "6085:4:39", - "nodeType": "YulIdentifier", - "src": "6085:4:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "6063:21:39", - "nodeType": "YulIdentifier", - "src": "6063:21:39" - }, - "nativeSrc": "6063:27:39", - "nodeType": "YulFunctionCall", - "src": "6063:27:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6051:3:39", - "nodeType": "YulIdentifier", - "src": "6051:3:39" - }, - "nativeSrc": "6051:40:39", - "nodeType": "YulFunctionCall", - "src": "6051:40:39" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "6037:10:39", - "nodeType": "YulTypedName", - "src": "6037:10:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "6202:22:39", - "nodeType": "YulBlock", - "src": "6202:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "6204:16:39", - "nodeType": "YulIdentifier", - "src": "6204:16:39" - }, - "nativeSrc": "6204:18:39", - "nodeType": "YulFunctionCall", - "src": "6204:18:39" - }, - "nativeSrc": "6204:18:39", - "nodeType": "YulExpressionStatement", - "src": "6204:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "6145:10:39", - "nodeType": "YulIdentifier", - "src": "6145:10:39" - }, - { - "kind": "number", - "nativeSrc": "6157:18:39", - "nodeType": "YulLiteral", - "src": "6157:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "6142:2:39", - "nodeType": "YulIdentifier", - "src": "6142:2:39" - }, - "nativeSrc": "6142:34:39", - "nodeType": "YulFunctionCall", - "src": "6142:34:39" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "6181:10:39", - "nodeType": "YulIdentifier", - "src": "6181:10:39" - }, - { - "name": "memPtr", - "nativeSrc": "6193:6:39", - "nodeType": "YulIdentifier", - "src": "6193:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "6178:2:39", - "nodeType": "YulIdentifier", - "src": "6178:2:39" - }, - "nativeSrc": "6178:22:39", - "nodeType": "YulFunctionCall", - "src": "6178:22:39" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "6139:2:39", - "nodeType": "YulIdentifier", - "src": "6139:2:39" - }, - "nativeSrc": "6139:62:39", - "nodeType": "YulFunctionCall", - "src": "6139:62:39" - }, - "nativeSrc": "6136:88:39", - "nodeType": "YulIf", - "src": "6136:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6240:2:39", - "nodeType": "YulLiteral", - "src": "6240:2:39", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "6244:10:39", - "nodeType": "YulIdentifier", - "src": "6244:10:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6233:6:39", - "nodeType": "YulIdentifier", - "src": "6233:6:39" - }, - "nativeSrc": "6233:22:39", - "nodeType": "YulFunctionCall", - "src": "6233:22:39" - }, - "nativeSrc": "6233:22:39", - "nodeType": "YulExpressionStatement", - "src": "6233:22:39" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "5980:281:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "6009:6:39", - "nodeType": "YulTypedName", - "src": "6009:6:39", - "type": "" - }, - { - "name": "size", - "nativeSrc": "6017:4:39", - "nodeType": "YulTypedName", - "src": "6017:4:39", - "type": "" - } - ], - "src": "5980:281:39" - }, - { - "body": { - "nativeSrc": "6308:88:39", - "nodeType": "YulBlock", - "src": "6308:88:39", - "statements": [ - { - "nativeSrc": "6318:30:39", - "nodeType": "YulAssignment", - "src": "6318:30:39", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "6328:18:39", - "nodeType": "YulIdentifier", - "src": "6328:18:39" - }, - "nativeSrc": "6328:20:39", - "nodeType": "YulFunctionCall", - "src": "6328:20:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "6318:6:39", - "nodeType": "YulIdentifier", - "src": "6318:6:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "6377:6:39", - "nodeType": "YulIdentifier", - "src": "6377:6:39" - }, - { - "name": "size", - "nativeSrc": "6385:4:39", - "nodeType": "YulIdentifier", - "src": "6385:4:39" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "6357:19:39", - "nodeType": "YulIdentifier", - "src": "6357:19:39" - }, - "nativeSrc": "6357:33:39", - "nodeType": "YulFunctionCall", - "src": "6357:33:39" - }, - "nativeSrc": "6357:33:39", - "nodeType": "YulExpressionStatement", - "src": "6357:33:39" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "6267:129:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "6292:4:39", - "nodeType": "YulTypedName", - "src": "6292:4:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "6301:6:39", - "nodeType": "YulTypedName", - "src": "6301:6:39", - "type": "" - } - ], - "src": "6267:129:39" - }, - { - "body": { - "nativeSrc": "6484:229:39", - "nodeType": "YulBlock", - "src": "6484:229:39", - "statements": [ - { - "body": { - "nativeSrc": "6589:22:39", - "nodeType": "YulBlock", - "src": "6589:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "6591:16:39", - "nodeType": "YulIdentifier", - "src": "6591:16:39" - }, - "nativeSrc": "6591:18:39", - "nodeType": "YulFunctionCall", - "src": "6591:18:39" - }, - "nativeSrc": "6591:18:39", - "nodeType": "YulExpressionStatement", - "src": "6591:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "6561:6:39", - "nodeType": "YulIdentifier", - "src": "6561:6:39" - }, - { - "kind": "number", - "nativeSrc": "6569:18:39", - "nodeType": "YulLiteral", - "src": "6569:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "6558:2:39", - "nodeType": "YulIdentifier", - "src": "6558:2:39" - }, - "nativeSrc": "6558:30:39", - "nodeType": "YulFunctionCall", - "src": "6558:30:39" - }, - "nativeSrc": "6555:56:39", - "nodeType": "YulIf", - "src": "6555:56:39" - }, - { - "nativeSrc": "6621:25:39", - "nodeType": "YulAssignment", - "src": "6621:25:39", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "6633:6:39", - "nodeType": "YulIdentifier", - "src": "6633:6:39" - }, - { - "kind": "number", - "nativeSrc": "6641:4:39", - "nodeType": "YulLiteral", - "src": "6641:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "6629:3:39", - "nodeType": "YulIdentifier", - "src": "6629:3:39" - }, - "nativeSrc": "6629:17:39", - "nodeType": "YulFunctionCall", - "src": "6629:17:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "6621:4:39", - "nodeType": "YulIdentifier", - "src": "6621:4:39" - } - ] - }, - { - "nativeSrc": "6683:23:39", - "nodeType": "YulAssignment", - "src": "6683:23:39", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "6695:4:39", - "nodeType": "YulIdentifier", - "src": "6695:4:39" - }, - { - "kind": "number", - "nativeSrc": "6701:4:39", - "nodeType": "YulLiteral", - "src": "6701:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6691:3:39", - "nodeType": "YulIdentifier", - "src": "6691:3:39" - }, - "nativeSrc": "6691:15:39", - "nodeType": "YulFunctionCall", - "src": "6691:15:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "6683:4:39", - "nodeType": "YulIdentifier", - "src": "6683:4:39" - } - ] - } - ] - }, - "name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "6402:311:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "6468:6:39", - "nodeType": "YulTypedName", - "src": "6468:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "6479:4:39", - "nodeType": "YulTypedName", - "src": "6479:4:39", - "type": "" - } - ], - "src": "6402:311:39" - }, - { - "body": { - "nativeSrc": "6808:28:39", - "nodeType": "YulBlock", - "src": "6808:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6825:1:39", - "nodeType": "YulLiteral", - "src": "6825:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6828:1:39", - "nodeType": "YulLiteral", - "src": "6828:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6818:6:39", - "nodeType": "YulIdentifier", - "src": "6818:6:39" - }, - "nativeSrc": "6818:12:39", - "nodeType": "YulFunctionCall", - "src": "6818:12:39" - }, - "nativeSrc": "6818:12:39", - "nodeType": "YulExpressionStatement", - "src": "6818:12:39" - } - ] - }, - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "6719:117:39", - "nodeType": "YulFunctionDefinition", - "src": "6719:117:39" - }, - { - "body": { - "nativeSrc": "6961:608:39", - "nodeType": "YulBlock", - "src": "6961:608:39", - "statements": [ - { - "nativeSrc": "6971:90:39", - "nodeType": "YulAssignment", - "src": "6971:90:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "7053:6:39", - "nodeType": "YulIdentifier", - "src": "7053:6:39" - } - ], - "functionName": { - "name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "6996:56:39", - "nodeType": "YulIdentifier", - "src": "6996:56:39" - }, - "nativeSrc": "6996:64:39", - "nodeType": "YulFunctionCall", - "src": "6996:64:39" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "6980:15:39", - "nodeType": "YulIdentifier", - "src": "6980:15:39" - }, - "nativeSrc": "6980:81:39", - "nodeType": "YulFunctionCall", - "src": "6980:81:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "6971:5:39", - "nodeType": "YulIdentifier", - "src": "6971:5:39" - } - ] - }, - { - "nativeSrc": "7070:16:39", - "nodeType": "YulVariableDeclaration", - "src": "7070:16:39", - "value": { - "name": "array", - "nativeSrc": "7081:5:39", - "nodeType": "YulIdentifier", - "src": "7081:5:39" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "7074:3:39", - "nodeType": "YulTypedName", - "src": "7074:3:39", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "7103:5:39", - "nodeType": "YulIdentifier", - "src": "7103:5:39" - }, - { - "name": "length", - "nativeSrc": "7110:6:39", - "nodeType": "YulIdentifier", - "src": "7110:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7096:6:39", - "nodeType": "YulIdentifier", - "src": "7096:6:39" - }, - "nativeSrc": "7096:21:39", - "nodeType": "YulFunctionCall", - "src": "7096:21:39" - }, - "nativeSrc": "7096:21:39", - "nodeType": "YulExpressionStatement", - "src": "7096:21:39" - }, - { - "nativeSrc": "7126:23:39", - "nodeType": "YulAssignment", - "src": "7126:23:39", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "7137:5:39", - "nodeType": "YulIdentifier", - "src": "7137:5:39" - }, - { - "kind": "number", - "nativeSrc": "7144:4:39", - "nodeType": "YulLiteral", - "src": "7144:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7133:3:39", - "nodeType": "YulIdentifier", - "src": "7133:3:39" - }, - "nativeSrc": "7133:16:39", - "nodeType": "YulFunctionCall", - "src": "7133:16:39" - }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "7126:3:39", - "nodeType": "YulIdentifier", - "src": "7126:3:39" - } - ] - }, - { - "nativeSrc": "7159:44:39", - "nodeType": "YulVariableDeclaration", - "src": "7159:44:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7177:6:39", - "nodeType": "YulIdentifier", - "src": "7177:6:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "7189:6:39", - "nodeType": "YulIdentifier", - "src": "7189:6:39" - }, - { - "kind": "number", - "nativeSrc": "7197:4:39", - "nodeType": "YulLiteral", - "src": "7197:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "7185:3:39", - "nodeType": "YulIdentifier", - "src": "7185:3:39" - }, - "nativeSrc": "7185:17:39", - "nodeType": "YulFunctionCall", - "src": "7185:17:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7173:3:39", - "nodeType": "YulIdentifier", - "src": "7173:3:39" - }, - "nativeSrc": "7173:30:39", - "nodeType": "YulFunctionCall", - "src": "7173:30:39" - }, - "variables": [ - { - "name": "srcEnd", - "nativeSrc": "7163:6:39", - "nodeType": "YulTypedName", - "src": "7163:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "7231:103:39", - "nodeType": "YulBlock", - "src": "7231:103:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "7245:77:39", - "nodeType": "YulIdentifier", - "src": "7245:77:39" - }, - "nativeSrc": "7245:79:39", - "nodeType": "YulFunctionCall", - "src": "7245:79:39" - }, - "nativeSrc": "7245:79:39", - "nodeType": "YulExpressionStatement", - "src": "7245:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "srcEnd", - "nativeSrc": "7218:6:39", - "nodeType": "YulIdentifier", - "src": "7218:6:39" - }, - { - "name": "end", - "nativeSrc": "7226:3:39", - "nodeType": "YulIdentifier", - "src": "7226:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "7215:2:39", - "nodeType": "YulIdentifier", - "src": "7215:2:39" - }, - "nativeSrc": "7215:15:39", - "nodeType": "YulFunctionCall", - "src": "7215:15:39" - }, - "nativeSrc": "7212:122:39", - "nodeType": "YulIf", - "src": "7212:122:39" - }, - { - "body": { - "nativeSrc": "7419:144:39", - "nodeType": "YulBlock", - "src": "7419:144:39", - "statements": [ - { - "nativeSrc": "7434:21:39", - "nodeType": "YulVariableDeclaration", - "src": "7434:21:39", - "value": { - "name": "src", - "nativeSrc": "7452:3:39", - "nodeType": "YulIdentifier", - "src": "7452:3:39" - }, - "variables": [ - { - "name": "elementPos", - "nativeSrc": "7438:10:39", - "nodeType": "YulTypedName", - "src": "7438:10:39", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "7476:3:39", - "nodeType": "YulIdentifier", - "src": "7476:3:39" - }, - { - "arguments": [ - { - "name": "elementPos", - "nativeSrc": "7502:10:39", - "nodeType": "YulIdentifier", - "src": "7502:10:39" - }, - { - "name": "end", - "nativeSrc": "7514:3:39", - "nodeType": "YulIdentifier", - "src": "7514:3:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "7481:20:39", - "nodeType": "YulIdentifier", - "src": "7481:20:39" - }, - "nativeSrc": "7481:37:39", - "nodeType": "YulFunctionCall", - "src": "7481:37:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7469:6:39", - "nodeType": "YulIdentifier", - "src": "7469:6:39" - }, - "nativeSrc": "7469:50:39", - "nodeType": "YulFunctionCall", - "src": "7469:50:39" - }, - "nativeSrc": "7469:50:39", - "nodeType": "YulExpressionStatement", - "src": "7469:50:39" - }, - { - "nativeSrc": "7532:21:39", - "nodeType": "YulAssignment", - "src": "7532:21:39", - "value": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "7543:3:39", - "nodeType": "YulIdentifier", - "src": "7543:3:39" - }, - { - "kind": "number", - "nativeSrc": "7548:4:39", - "nodeType": "YulLiteral", - "src": "7548:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7539:3:39", - "nodeType": "YulIdentifier", - "src": "7539:3:39" - }, - "nativeSrc": "7539:14:39", - "nodeType": "YulFunctionCall", - "src": "7539:14:39" - }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "7532:3:39", - "nodeType": "YulIdentifier", - "src": "7532:3:39" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "src", - "nativeSrc": "7372:3:39", - "nodeType": "YulIdentifier", - "src": "7372:3:39" - }, - { - "name": "srcEnd", - "nativeSrc": "7377:6:39", - "nodeType": "YulIdentifier", - "src": "7377:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "7369:2:39", - "nodeType": "YulIdentifier", - "src": "7369:2:39" - }, - "nativeSrc": "7369:15:39", - "nodeType": "YulFunctionCall", - "src": "7369:15:39" - }, - "nativeSrc": "7343:220:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "7385:25:39", - "nodeType": "YulBlock", - "src": "7385:25:39", - "statements": [ - { - "nativeSrc": "7387:21:39", - "nodeType": "YulAssignment", - "src": "7387:21:39", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "7398:3:39", - "nodeType": "YulIdentifier", - "src": "7398:3:39" - }, - { - "kind": "number", - "nativeSrc": "7403:4:39", - "nodeType": "YulLiteral", - "src": "7403:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7394:3:39", - "nodeType": "YulIdentifier", - "src": "7394:3:39" - }, - "nativeSrc": "7394:14:39", - "nodeType": "YulFunctionCall", - "src": "7394:14:39" - }, - "variableNames": [ - { - "name": "src", - "nativeSrc": "7387:3:39", - "nodeType": "YulIdentifier", - "src": "7387:3:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "7347:21:39", - "nodeType": "YulBlock", - "src": "7347:21:39", - "statements": [ - { - "nativeSrc": "7349:17:39", - "nodeType": "YulVariableDeclaration", - "src": "7349:17:39", - "value": { - "name": "offset", - "nativeSrc": "7360:6:39", - "nodeType": "YulIdentifier", - "src": "7360:6:39" - }, - "variables": [ - { - "name": "src", - "nativeSrc": "7353:3:39", - "nodeType": "YulTypedName", - "src": "7353:3:39", - "type": "" - } - ] - } - ] - }, - "src": "7343:220:39" - } - ] - }, - "name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "6859:710:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "6931:6:39", - "nodeType": "YulTypedName", - "src": "6931:6:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "6939:6:39", - "nodeType": "YulTypedName", - "src": "6939:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "6947:3:39", - "nodeType": "YulTypedName", - "src": "6947:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "6955:5:39", - "nodeType": "YulTypedName", - "src": "6955:5:39", - "type": "" - } - ], - "src": "6859:710:39" - }, - { - "body": { - "nativeSrc": "7669:293:39", - "nodeType": "YulBlock", - "src": "7669:293:39", - "statements": [ - { - "body": { - "nativeSrc": "7718:83:39", - "nodeType": "YulBlock", - "src": "7718:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "7720:77:39", - "nodeType": "YulIdentifier", - "src": "7720:77:39" - }, - "nativeSrc": "7720:79:39", - "nodeType": "YulFunctionCall", - "src": "7720:79:39" - }, - "nativeSrc": "7720:79:39", - "nodeType": "YulExpressionStatement", - "src": "7720:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7697:6:39", - "nodeType": "YulIdentifier", - "src": "7697:6:39" - }, - { - "kind": "number", - "nativeSrc": "7705:4:39", - "nodeType": "YulLiteral", - "src": "7705:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7693:3:39", - "nodeType": "YulIdentifier", - "src": "7693:3:39" - }, - "nativeSrc": "7693:17:39", - "nodeType": "YulFunctionCall", - "src": "7693:17:39" - }, - { - "name": "end", - "nativeSrc": "7712:3:39", - "nodeType": "YulIdentifier", - "src": "7712:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "7689:3:39", - "nodeType": "YulIdentifier", - "src": "7689:3:39" - }, - "nativeSrc": "7689:27:39", - "nodeType": "YulFunctionCall", - "src": "7689:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "7682:6:39", - "nodeType": "YulIdentifier", - "src": "7682:6:39" - }, - "nativeSrc": "7682:35:39", - "nodeType": "YulFunctionCall", - "src": "7682:35:39" - }, - "nativeSrc": "7679:122:39", - "nodeType": "YulIf", - "src": "7679:122:39" - }, - { - "nativeSrc": "7810:34:39", - "nodeType": "YulVariableDeclaration", - "src": "7810:34:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7837:6:39", - "nodeType": "YulIdentifier", - "src": "7837:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7824:12:39", - "nodeType": "YulIdentifier", - "src": "7824:12:39" - }, - "nativeSrc": "7824:20:39", - "nodeType": "YulFunctionCall", - "src": "7824:20:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "7814:6:39", - "nodeType": "YulTypedName", - "src": "7814:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "7853:103:39", - "nodeType": "YulAssignment", - "src": "7853:103:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7929:6:39", - "nodeType": "YulIdentifier", - "src": "7929:6:39" - }, - { - "kind": "number", - "nativeSrc": "7937:4:39", - "nodeType": "YulLiteral", - "src": "7937:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7925:3:39", - "nodeType": "YulIdentifier", - "src": "7925:3:39" - }, - "nativeSrc": "7925:17:39", - "nodeType": "YulFunctionCall", - "src": "7925:17:39" - }, - { - "name": "length", - "nativeSrc": "7944:6:39", - "nodeType": "YulIdentifier", - "src": "7944:6:39" - }, - { - "name": "end", - "nativeSrc": "7952:3:39", - "nodeType": "YulIdentifier", - "src": "7952:3:39" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "7862:62:39", - "nodeType": "YulIdentifier", - "src": "7862:62:39" - }, - "nativeSrc": "7862:94:39", - "nodeType": "YulFunctionCall", - "src": "7862:94:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "7853:5:39", - "nodeType": "YulIdentifier", - "src": "7853:5:39" - } - ] - } - ] - }, - "name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "7592:370:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "7647:6:39", - "nodeType": "YulTypedName", - "src": "7647:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "7655:3:39", - "nodeType": "YulTypedName", - "src": "7655:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "7663:5:39", - "nodeType": "YulTypedName", - "src": "7663:5:39", - "type": "" - } - ], - "src": "7592:370:39" - }, - { - "body": { - "nativeSrc": "8093:704:39", - "nodeType": "YulBlock", - "src": "8093:704:39", - "statements": [ - { - "body": { - "nativeSrc": "8139:83:39", - "nodeType": "YulBlock", - "src": "8139:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "8141:77:39", - "nodeType": "YulIdentifier", - "src": "8141:77:39" - }, - "nativeSrc": "8141:79:39", - "nodeType": "YulFunctionCall", - "src": "8141:79:39" - }, - "nativeSrc": "8141:79:39", - "nodeType": "YulExpressionStatement", - "src": "8141:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "8114:7:39", - "nodeType": "YulIdentifier", - "src": "8114:7:39" - }, - { - "name": "headStart", - "nativeSrc": "8123:9:39", - "nodeType": "YulIdentifier", - "src": "8123:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "8110:3:39", - "nodeType": "YulIdentifier", - "src": "8110:3:39" - }, - "nativeSrc": "8110:23:39", - "nodeType": "YulFunctionCall", - "src": "8110:23:39" - }, - { - "kind": "number", - "nativeSrc": "8135:2:39", - "nodeType": "YulLiteral", - "src": "8135:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "8106:3:39", - "nodeType": "YulIdentifier", - "src": "8106:3:39" - }, - "nativeSrc": "8106:32:39", - "nodeType": "YulFunctionCall", - "src": "8106:32:39" - }, - "nativeSrc": "8103:119:39", - "nodeType": "YulIf", - "src": "8103:119:39" - }, - { - "nativeSrc": "8232:302:39", - "nodeType": "YulBlock", - "src": "8232:302:39", - "statements": [ - { - "nativeSrc": "8247:45:39", - "nodeType": "YulVariableDeclaration", - "src": "8247:45:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8278:9:39", - "nodeType": "YulIdentifier", - "src": "8278:9:39" - }, - { - "kind": "number", - "nativeSrc": "8289:1:39", - "nodeType": "YulLiteral", - "src": "8289:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8274:3:39", - "nodeType": "YulIdentifier", - "src": "8274:3:39" - }, - "nativeSrc": "8274:17:39", - "nodeType": "YulFunctionCall", - "src": "8274:17:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "8261:12:39", - "nodeType": "YulIdentifier", - "src": "8261:12:39" - }, - "nativeSrc": "8261:31:39", - "nodeType": "YulFunctionCall", - "src": "8261:31:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8251:6:39", - "nodeType": "YulTypedName", - "src": "8251:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "8339:83:39", - "nodeType": "YulBlock", - "src": "8339:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "8341:77:39", - "nodeType": "YulIdentifier", - "src": "8341:77:39" - }, - "nativeSrc": "8341:79:39", - "nodeType": "YulFunctionCall", - "src": "8341:79:39" - }, - "nativeSrc": "8341:79:39", - "nodeType": "YulExpressionStatement", - "src": "8341:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "8311:6:39", - "nodeType": "YulIdentifier", - "src": "8311:6:39" - }, - { - "kind": "number", - "nativeSrc": "8319:18:39", - "nodeType": "YulLiteral", - "src": "8319:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "8308:2:39", - "nodeType": "YulIdentifier", - "src": "8308:2:39" - }, - "nativeSrc": "8308:30:39", - "nodeType": "YulFunctionCall", - "src": "8308:30:39" - }, - "nativeSrc": "8305:117:39", - "nodeType": "YulIf", - "src": "8305:117:39" - }, - { - "nativeSrc": "8436:88:39", - "nodeType": "YulAssignment", - "src": "8436:88:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8496:9:39", - "nodeType": "YulIdentifier", - "src": "8496:9:39" - }, - { - "name": "offset", - "nativeSrc": "8507:6:39", - "nodeType": "YulIdentifier", - "src": "8507:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8492:3:39", - "nodeType": "YulIdentifier", - "src": "8492:3:39" - }, - "nativeSrc": "8492:22:39", - "nodeType": "YulFunctionCall", - "src": "8492:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8516:7:39", - "nodeType": "YulIdentifier", - "src": "8516:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "8446:45:39", - "nodeType": "YulIdentifier", - "src": "8446:45:39" - }, - "nativeSrc": "8446:78:39", - "nodeType": "YulFunctionCall", - "src": "8446:78:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "8436:6:39", - "nodeType": "YulIdentifier", - "src": "8436:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "8544:118:39", - "nodeType": "YulBlock", - "src": "8544:118:39", - "statements": [ - { - "nativeSrc": "8559:16:39", - "nodeType": "YulVariableDeclaration", - "src": "8559:16:39", - "value": { - "kind": "number", - "nativeSrc": "8573:2:39", - "nodeType": "YulLiteral", - "src": "8573:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8563:6:39", - "nodeType": "YulTypedName", - "src": "8563:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8589:63:39", - "nodeType": "YulAssignment", - "src": "8589:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8624:9:39", - "nodeType": "YulIdentifier", - "src": "8624:9:39" - }, - { - "name": "offset", - "nativeSrc": "8635:6:39", - "nodeType": "YulIdentifier", - "src": "8635:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8620:3:39", - "nodeType": "YulIdentifier", - "src": "8620:3:39" - }, - "nativeSrc": "8620:22:39", - "nodeType": "YulFunctionCall", - "src": "8620:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8644:7:39", - "nodeType": "YulIdentifier", - "src": "8644:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "8599:20:39", - "nodeType": "YulIdentifier", - "src": "8599:20:39" - }, - "nativeSrc": "8599:53:39", - "nodeType": "YulFunctionCall", - "src": "8599:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "8589:6:39", - "nodeType": "YulIdentifier", - "src": "8589:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "8672:118:39", - "nodeType": "YulBlock", - "src": "8672:118:39", - "statements": [ - { - "nativeSrc": "8687:16:39", - "nodeType": "YulVariableDeclaration", - "src": "8687:16:39", - "value": { - "kind": "number", - "nativeSrc": "8701:2:39", - "nodeType": "YulLiteral", - "src": "8701:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8691:6:39", - "nodeType": "YulTypedName", - "src": "8691:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8717:63:39", - "nodeType": "YulAssignment", - "src": "8717:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8752:9:39", - "nodeType": "YulIdentifier", - "src": "8752:9:39" - }, - { - "name": "offset", - "nativeSrc": "8763:6:39", - "nodeType": "YulIdentifier", - "src": "8763:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8748:3:39", - "nodeType": "YulIdentifier", - "src": "8748:3:39" - }, - "nativeSrc": "8748:22:39", - "nodeType": "YulFunctionCall", - "src": "8748:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8772:7:39", - "nodeType": "YulIdentifier", - "src": "8772:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "8727:20:39", - "nodeType": "YulIdentifier", - "src": "8727:20:39" - }, - "nativeSrc": "8727:53:39", - "nodeType": "YulFunctionCall", - "src": "8727:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "8717:6:39", - "nodeType": "YulIdentifier", - "src": "8717:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptrt_addresst_uint256", - "nativeSrc": "7968:829:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8047:9:39", - "nodeType": "YulTypedName", - "src": "8047:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "8058:7:39", - "nodeType": "YulTypedName", - "src": "8058:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "8070:6:39", - "nodeType": "YulTypedName", - "src": "8070:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8078:6:39", - "nodeType": "YulTypedName", - "src": "8078:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "8086:6:39", - "nodeType": "YulTypedName", - "src": "8086:6:39", - "type": "" - } - ], - "src": "7968:829:39" - }, - { - "body": { - "nativeSrc": "8877:40:39", - "nodeType": "YulBlock", - "src": "8877:40:39", - "statements": [ - { - "nativeSrc": "8888:22:39", - "nodeType": "YulAssignment", - "src": "8888:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8904:5:39", - "nodeType": "YulIdentifier", - "src": "8904:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "8898:5:39", - "nodeType": "YulIdentifier", - "src": "8898:5:39" - }, - "nativeSrc": "8898:12:39", - "nodeType": "YulFunctionCall", - "src": "8898:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "8888:6:39", - "nodeType": "YulIdentifier", - "src": "8888:6:39" - } - ] - } - ] - }, - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "8803:114:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8860:5:39", - "nodeType": "YulTypedName", - "src": "8860:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "8870:6:39", - "nodeType": "YulTypedName", - "src": "8870:6:39", - "type": "" - } - ], - "src": "8803:114:39" - }, - { - "body": { - "nativeSrc": "9034:73:39", - "nodeType": "YulBlock", - "src": "9034:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9051:3:39", - "nodeType": "YulIdentifier", - "src": "9051:3:39" - }, - { - "name": "length", - "nativeSrc": "9056:6:39", - "nodeType": "YulIdentifier", - "src": "9056:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9044:6:39", - "nodeType": "YulIdentifier", - "src": "9044:6:39" - }, - "nativeSrc": "9044:19:39", - "nodeType": "YulFunctionCall", - "src": "9044:19:39" - }, - "nativeSrc": "9044:19:39", - "nodeType": "YulExpressionStatement", - "src": "9044:19:39" - }, - { - "nativeSrc": "9072:29:39", - "nodeType": "YulAssignment", - "src": "9072:29:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9091:3:39", - "nodeType": "YulIdentifier", - "src": "9091:3:39" - }, - { - "kind": "number", - "nativeSrc": "9096:4:39", - "nodeType": "YulLiteral", - "src": "9096:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9087:3:39", - "nodeType": "YulIdentifier", - "src": "9087:3:39" - }, - "nativeSrc": "9087:14:39", - "nodeType": "YulFunctionCall", - "src": "9087:14:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "9072:11:39", - "nodeType": "YulIdentifier", - "src": "9072:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "8923:184:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "9006:3:39", - "nodeType": "YulTypedName", - "src": "9006:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "9011:6:39", - "nodeType": "YulTypedName", - "src": "9011:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "9022:11:39", - "nodeType": "YulTypedName", - "src": "9022:11:39", - "type": "" - } - ], - "src": "8923:184:39" - }, - { - "body": { - "nativeSrc": "9185:60:39", - "nodeType": "YulBlock", - "src": "9185:60:39", - "statements": [ - { - "nativeSrc": "9195:11:39", - "nodeType": "YulAssignment", - "src": "9195:11:39", - "value": { - "name": "ptr", - "nativeSrc": "9203:3:39", - "nodeType": "YulIdentifier", - "src": "9203:3:39" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "9195:4:39", - "nodeType": "YulIdentifier", - "src": "9195:4:39" - } - ] - }, - { - "nativeSrc": "9216:22:39", - "nodeType": "YulAssignment", - "src": "9216:22:39", - "value": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "9228:3:39", - "nodeType": "YulIdentifier", - "src": "9228:3:39" - }, - { - "kind": "number", - "nativeSrc": "9233:4:39", - "nodeType": "YulLiteral", - "src": "9233:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9224:3:39", - "nodeType": "YulIdentifier", - "src": "9224:3:39" - }, - "nativeSrc": "9224:14:39", - "nodeType": "YulFunctionCall", - "src": "9224:14:39" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "9216:4:39", - "nodeType": "YulIdentifier", - "src": "9216:4:39" - } - ] - } - ] - }, - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9113:132:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nativeSrc": "9172:3:39", - "nodeType": "YulTypedName", - "src": "9172:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nativeSrc": "9180:4:39", - "nodeType": "YulTypedName", - "src": "9180:4:39", - "type": "" - } - ], - "src": "9113:132:39" - }, - { - "body": { - "nativeSrc": "9306:53:39", - "nodeType": "YulBlock", - "src": "9306:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9323:3:39", - "nodeType": "YulIdentifier", - "src": "9323:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "9346:5:39", - "nodeType": "YulIdentifier", - "src": "9346:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "9328:17:39", - "nodeType": "YulIdentifier", - "src": "9328:17:39" - }, - "nativeSrc": "9328:24:39", - "nodeType": "YulFunctionCall", - "src": "9328:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9316:6:39", - "nodeType": "YulIdentifier", - "src": "9316:6:39" - }, - "nativeSrc": "9316:37:39", - "nodeType": "YulFunctionCall", - "src": "9316:37:39" - }, - "nativeSrc": "9316:37:39", - "nodeType": "YulExpressionStatement", - "src": "9316:37:39" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256", - "nativeSrc": "9251:108:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "9294:5:39", - "nodeType": "YulTypedName", - "src": "9294:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "9301:3:39", - "nodeType": "YulTypedName", - "src": "9301:3:39", - "type": "" - } - ], - "src": "9251:108:39" - }, - { - "body": { - "nativeSrc": "9445:99:39", - "nodeType": "YulBlock", - "src": "9445:99:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "9489:6:39", - "nodeType": "YulIdentifier", - "src": "9489:6:39" - }, - { - "name": "pos", - "nativeSrc": "9497:3:39", - "nodeType": "YulIdentifier", - "src": "9497:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256", - "nativeSrc": "9455:33:39", - "nodeType": "YulIdentifier", - "src": "9455:33:39" - }, - "nativeSrc": "9455:46:39", - "nodeType": "YulFunctionCall", - "src": "9455:46:39" - }, - "nativeSrc": "9455:46:39", - "nodeType": "YulExpressionStatement", - "src": "9455:46:39" - }, - { - "nativeSrc": "9510:28:39", - "nodeType": "YulAssignment", - "src": "9510:28:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9528:3:39", - "nodeType": "YulIdentifier", - "src": "9528:3:39" - }, - { - "kind": "number", - "nativeSrc": "9533:4:39", - "nodeType": "YulLiteral", - "src": "9533:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9524:3:39", - "nodeType": "YulIdentifier", - "src": "9524:3:39" - }, - "nativeSrc": "9524:14:39", - "nodeType": "YulFunctionCall", - "src": "9524:14:39" - }, - "variableNames": [ - { - "name": "updatedPos", - "nativeSrc": "9510:10:39", - "nodeType": "YulIdentifier", - "src": "9510:10:39" - } - ] - } - ] - }, - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nativeSrc": "9365:179:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value0", - "nativeSrc": "9418:6:39", - "nodeType": "YulTypedName", - "src": "9418:6:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "9426:3:39", - "nodeType": "YulTypedName", - "src": "9426:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updatedPos", - "nativeSrc": "9434:10:39", - "nodeType": "YulTypedName", - "src": "9434:10:39", - "type": "" - } - ], - "src": "9365:179:39" - }, - { - "body": { - "nativeSrc": "9625:38:39", - "nodeType": "YulBlock", - "src": "9625:38:39", - "statements": [ - { - "nativeSrc": "9635:22:39", - "nodeType": "YulAssignment", - "src": "9635:22:39", - "value": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "9647:3:39", - "nodeType": "YulIdentifier", - "src": "9647:3:39" - }, - { - "kind": "number", - "nativeSrc": "9652:4:39", - "nodeType": "YulLiteral", - "src": "9652:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9643:3:39", - "nodeType": "YulIdentifier", - "src": "9643:3:39" - }, - "nativeSrc": "9643:14:39", - "nodeType": "YulFunctionCall", - "src": "9643:14:39" - }, - "variableNames": [ - { - "name": "next", - "nativeSrc": "9635:4:39", - "nodeType": "YulIdentifier", - "src": "9635:4:39" - } - ] - } - ] - }, - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9550:113:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nativeSrc": "9612:3:39", - "nodeType": "YulTypedName", - "src": "9612:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "next", - "nativeSrc": "9620:4:39", - "nodeType": "YulTypedName", - "src": "9620:4:39", - "type": "" - } - ], - "src": "9550:113:39" - }, - { - "body": { - "nativeSrc": "9823:608:39", - "nodeType": "YulBlock", - "src": "9823:608:39", - "statements": [ - { - "nativeSrc": "9833:68:39", - "nodeType": "YulVariableDeclaration", - "src": "9833:68:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "9895:5:39", - "nodeType": "YulIdentifier", - "src": "9895:5:39" - } - ], - "functionName": { - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9847:47:39", - "nodeType": "YulIdentifier", - "src": "9847:47:39" - }, - "nativeSrc": "9847:54:39", - "nodeType": "YulFunctionCall", - "src": "9847:54:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "9837:6:39", - "nodeType": "YulTypedName", - "src": "9837:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "9910:93:39", - "nodeType": "YulAssignment", - "src": "9910:93:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9991:3:39", - "nodeType": "YulIdentifier", - "src": "9991:3:39" - }, - { - "name": "length", - "nativeSrc": "9996:6:39", - "nodeType": "YulIdentifier", - "src": "9996:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "9917:73:39", - "nodeType": "YulIdentifier", - "src": "9917:73:39" - }, - "nativeSrc": "9917:86:39", - "nodeType": "YulFunctionCall", - "src": "9917:86:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "9910:3:39", - "nodeType": "YulIdentifier", - "src": "9910:3:39" - } - ] - }, - { - "nativeSrc": "10012:71:39", - "nodeType": "YulVariableDeclaration", - "src": "10012:71:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "10077:5:39", - "nodeType": "YulIdentifier", - "src": "10077:5:39" - } - ], - "functionName": { - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "10027:49:39", - "nodeType": "YulIdentifier", - "src": "10027:49:39" - }, - "nativeSrc": "10027:56:39", - "nodeType": "YulFunctionCall", - "src": "10027:56:39" - }, - "variables": [ - { - "name": "baseRef", - "nativeSrc": "10016:7:39", - "nodeType": "YulTypedName", - "src": "10016:7:39", - "type": "" - } - ] - }, - { - "nativeSrc": "10092:21:39", - "nodeType": "YulVariableDeclaration", - "src": "10092:21:39", - "value": { - "name": "baseRef", - "nativeSrc": "10106:7:39", - "nodeType": "YulIdentifier", - "src": "10106:7:39" - }, - "variables": [ - { - "name": "srcPtr", - "nativeSrc": "10096:6:39", - "nodeType": "YulTypedName", - "src": "10096:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "10182:224:39", - "nodeType": "YulBlock", - "src": "10182:224:39", - "statements": [ - { - "nativeSrc": "10196:34:39", - "nodeType": "YulVariableDeclaration", - "src": "10196:34:39", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "10223:6:39", - "nodeType": "YulIdentifier", - "src": "10223:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "10217:5:39", - "nodeType": "YulIdentifier", - "src": "10217:5:39" - }, - "nativeSrc": "10217:13:39", - "nodeType": "YulFunctionCall", - "src": "10217:13:39" - }, - "variables": [ - { - "name": "elementValue0", - "nativeSrc": "10200:13:39", - "nodeType": "YulTypedName", - "src": "10200:13:39", - "type": "" - } - ] - }, - { - "nativeSrc": "10243:70:39", - "nodeType": "YulAssignment", - "src": "10243:70:39", - "value": { - "arguments": [ - { - "name": "elementValue0", - "nativeSrc": "10294:13:39", - "nodeType": "YulIdentifier", - "src": "10294:13:39" - }, - { - "name": "pos", - "nativeSrc": "10309:3:39", - "nodeType": "YulIdentifier", - "src": "10309:3:39" - } - ], - "functionName": { - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nativeSrc": "10250:43:39", - "nodeType": "YulIdentifier", - "src": "10250:43:39" - }, - "nativeSrc": "10250:63:39", - "nodeType": "YulFunctionCall", - "src": "10250:63:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "10243:3:39", - "nodeType": "YulIdentifier", - "src": "10243:3:39" - } - ] - }, - { - "nativeSrc": "10326:70:39", - "nodeType": "YulAssignment", - "src": "10326:70:39", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "10389:6:39", - "nodeType": "YulIdentifier", - "src": "10389:6:39" - } - ], - "functionName": { - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "10336:52:39", - "nodeType": "YulIdentifier", - "src": "10336:52:39" - }, - "nativeSrc": "10336:60:39", - "nodeType": "YulFunctionCall", - "src": "10336:60:39" - }, - "variableNames": [ - { - "name": "srcPtr", - "nativeSrc": "10326:6:39", - "nodeType": "YulIdentifier", - "src": "10326:6:39" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "10144:1:39", - "nodeType": "YulIdentifier", - "src": "10144:1:39" - }, - { - "name": "length", - "nativeSrc": "10147:6:39", - "nodeType": "YulIdentifier", - "src": "10147:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "10141:2:39", - "nodeType": "YulIdentifier", - "src": "10141:2:39" - }, - "nativeSrc": "10141:13:39", - "nodeType": "YulFunctionCall", - "src": "10141:13:39" - }, - "nativeSrc": "10122:284:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "10155:18:39", - "nodeType": "YulBlock", - "src": "10155:18:39", - "statements": [ - { - "nativeSrc": "10157:14:39", - "nodeType": "YulAssignment", - "src": "10157:14:39", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "10166:1:39", - "nodeType": "YulIdentifier", - "src": "10166:1:39" - }, - { - "kind": "number", - "nativeSrc": "10169:1:39", - "nodeType": "YulLiteral", - "src": "10169:1:39", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10162:3:39", - "nodeType": "YulIdentifier", - "src": "10162:3:39" - }, - "nativeSrc": "10162:9:39", - "nodeType": "YulFunctionCall", - "src": "10162:9:39" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "10157:1:39", - "nodeType": "YulIdentifier", - "src": "10157:1:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "10126:14:39", - "nodeType": "YulBlock", - "src": "10126:14:39", - "statements": [ - { - "nativeSrc": "10128:10:39", - "nodeType": "YulVariableDeclaration", - "src": "10128:10:39", - "value": { - "kind": "number", - "nativeSrc": "10137:1:39", - "nodeType": "YulLiteral", - "src": "10137:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "10132:1:39", - "nodeType": "YulTypedName", - "src": "10132:1:39", - "type": "" - } - ] - } - ] - }, - "src": "10122:284:39" - }, - { - "nativeSrc": "10415:10:39", - "nodeType": "YulAssignment", - "src": "10415:10:39", - "value": { - "name": "pos", - "nativeSrc": "10422:3:39", - "nodeType": "YulIdentifier", - "src": "10422:3:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "10415:3:39", - "nodeType": "YulIdentifier", - "src": "10415:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "9699:732:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "9802:5:39", - "nodeType": "YulTypedName", - "src": "9802:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "9809:3:39", - "nodeType": "YulTypedName", - "src": "9809:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "9818:3:39", - "nodeType": "YulTypedName", - "src": "9818:3:39", - "type": "" - } - ], - "src": "9699:732:39" - }, - { - "body": { - "nativeSrc": "10585:225:39", - "nodeType": "YulBlock", - "src": "10585:225:39", - "statements": [ - { - "nativeSrc": "10595:26:39", - "nodeType": "YulAssignment", - "src": "10595:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10607:9:39", - "nodeType": "YulIdentifier", - "src": "10607:9:39" - }, - { - "kind": "number", - "nativeSrc": "10618:2:39", - "nodeType": "YulLiteral", - "src": "10618:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10603:3:39", - "nodeType": "YulIdentifier", - "src": "10603:3:39" - }, - "nativeSrc": "10603:18:39", - "nodeType": "YulFunctionCall", - "src": "10603:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "10595:4:39", - "nodeType": "YulIdentifier", - "src": "10595:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10642:9:39", - "nodeType": "YulIdentifier", - "src": "10642:9:39" - }, - { - "kind": "number", - "nativeSrc": "10653:1:39", - "nodeType": "YulLiteral", - "src": "10653:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10638:3:39", - "nodeType": "YulIdentifier", - "src": "10638:3:39" - }, - "nativeSrc": "10638:17:39", - "nodeType": "YulFunctionCall", - "src": "10638:17:39" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "10661:4:39", - "nodeType": "YulIdentifier", - "src": "10661:4:39" - }, - { - "name": "headStart", - "nativeSrc": "10667:9:39", - "nodeType": "YulIdentifier", - "src": "10667:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10657:3:39", - "nodeType": "YulIdentifier", - "src": "10657:3:39" - }, - "nativeSrc": "10657:20:39", - "nodeType": "YulFunctionCall", - "src": "10657:20:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10631:6:39", - "nodeType": "YulIdentifier", - "src": "10631:6:39" - }, - "nativeSrc": "10631:47:39", - "nodeType": "YulFunctionCall", - "src": "10631:47:39" - }, - "nativeSrc": "10631:47:39", - "nodeType": "YulExpressionStatement", - "src": "10631:47:39" - }, - { - "nativeSrc": "10687:116:39", - "nodeType": "YulAssignment", - "src": "10687:116:39", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "10789:6:39", - "nodeType": "YulIdentifier", - "src": "10789:6:39" - }, - { - "name": "tail", - "nativeSrc": "10798:4:39", - "nodeType": "YulIdentifier", - "src": "10798:4:39" - } - ], - "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "10695:93:39", - "nodeType": "YulIdentifier", - "src": "10695:93:39" - }, - "nativeSrc": "10695:108:39", - "nodeType": "YulFunctionCall", - "src": "10695:108:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "10687:4:39", - "nodeType": "YulIdentifier", - "src": "10687:4:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", - "nativeSrc": "10437:373:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10557:9:39", - "nodeType": "YulTypedName", - "src": "10557:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "10569:6:39", - "nodeType": "YulTypedName", - "src": "10569:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "10580:4:39", - "nodeType": "YulTypedName", - "src": "10580:4:39", - "type": "" - } - ], - "src": "10437:373:39" - }, - { - "body": { - "nativeSrc": "10882:263:39", - "nodeType": "YulBlock", - "src": "10882:263:39", - "statements": [ - { - "body": { - "nativeSrc": "10928:83:39", - "nodeType": "YulBlock", - "src": "10928:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "10930:77:39", - "nodeType": "YulIdentifier", - "src": "10930:77:39" - }, - "nativeSrc": "10930:79:39", - "nodeType": "YulFunctionCall", - "src": "10930:79:39" - }, - "nativeSrc": "10930:79:39", - "nodeType": "YulExpressionStatement", - "src": "10930:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "10903:7:39", - "nodeType": "YulIdentifier", - "src": "10903:7:39" - }, - { - "name": "headStart", - "nativeSrc": "10912:9:39", - "nodeType": "YulIdentifier", - "src": "10912:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10899:3:39", - "nodeType": "YulIdentifier", - "src": "10899:3:39" - }, - "nativeSrc": "10899:23:39", - "nodeType": "YulFunctionCall", - "src": "10899:23:39" - }, - { - "kind": "number", - "nativeSrc": "10924:2:39", - "nodeType": "YulLiteral", - "src": "10924:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "10895:3:39", - "nodeType": "YulIdentifier", - "src": "10895:3:39" - }, - "nativeSrc": "10895:32:39", - "nodeType": "YulFunctionCall", - "src": "10895:32:39" - }, - "nativeSrc": "10892:119:39", - "nodeType": "YulIf", - "src": "10892:119:39" - }, - { - "nativeSrc": "11021:117:39", - "nodeType": "YulBlock", - "src": "11021:117:39", - "statements": [ - { - "nativeSrc": "11036:15:39", - "nodeType": "YulVariableDeclaration", - "src": "11036:15:39", - "value": { - "kind": "number", - "nativeSrc": "11050:1:39", - "nodeType": "YulLiteral", - "src": "11050:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11040:6:39", - "nodeType": "YulTypedName", - "src": "11040:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "11065:63:39", - "nodeType": "YulAssignment", - "src": "11065:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11100:9:39", - "nodeType": "YulIdentifier", - "src": "11100:9:39" - }, - { - "name": "offset", - "nativeSrc": "11111:6:39", - "nodeType": "YulIdentifier", - "src": "11111:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11096:3:39", - "nodeType": "YulIdentifier", - "src": "11096:3:39" - }, - "nativeSrc": "11096:22:39", - "nodeType": "YulFunctionCall", - "src": "11096:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "11120:7:39", - "nodeType": "YulIdentifier", - "src": "11120:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "11075:20:39", - "nodeType": "YulIdentifier", - "src": "11075:20:39" - }, - "nativeSrc": "11075:53:39", - "nodeType": "YulFunctionCall", - "src": "11075:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "11065:6:39", - "nodeType": "YulIdentifier", - "src": "11065:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "10816:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10852:9:39", - "nodeType": "YulTypedName", - "src": "10852:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "10863:7:39", - "nodeType": "YulTypedName", - "src": "10863:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "10875:6:39", - "nodeType": "YulTypedName", - "src": "10875:6:39", - "type": "" - } - ], - "src": "10816:329:39" - }, - { - "body": { - "nativeSrc": "11216:53:39", - "nodeType": "YulBlock", - "src": "11216:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "11233:3:39", - "nodeType": "YulIdentifier", - "src": "11233:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "11256:5:39", - "nodeType": "YulIdentifier", - "src": "11256:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "11238:17:39", - "nodeType": "YulIdentifier", - "src": "11238:17:39" - }, - "nativeSrc": "11238:24:39", - "nodeType": "YulFunctionCall", - "src": "11238:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11226:6:39", - "nodeType": "YulIdentifier", - "src": "11226:6:39" - }, - "nativeSrc": "11226:37:39", - "nodeType": "YulFunctionCall", - "src": "11226:37:39" - }, - "nativeSrc": "11226:37:39", - "nodeType": "YulExpressionStatement", - "src": "11226:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "11151:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "11204:5:39", - "nodeType": "YulTypedName", - "src": "11204:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "11211:3:39", - "nodeType": "YulTypedName", - "src": "11211:3:39", - "type": "" - } - ], - "src": "11151:118:39" - }, - { - "body": { - "nativeSrc": "11373:124:39", - "nodeType": "YulBlock", - "src": "11373:124:39", - "statements": [ - { - "nativeSrc": "11383:26:39", - "nodeType": "YulAssignment", - "src": "11383:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11395:9:39", - "nodeType": "YulIdentifier", - "src": "11395:9:39" - }, - { - "kind": "number", - "nativeSrc": "11406:2:39", - "nodeType": "YulLiteral", - "src": "11406:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11391:3:39", - "nodeType": "YulIdentifier", - "src": "11391:3:39" - }, - "nativeSrc": "11391:18:39", - "nodeType": "YulFunctionCall", - "src": "11391:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "11383:4:39", - "nodeType": "YulIdentifier", - "src": "11383:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "11463:6:39", - "nodeType": "YulIdentifier", - "src": "11463:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11476:9:39", - "nodeType": "YulIdentifier", - "src": "11476:9:39" - }, - { - "kind": "number", - "nativeSrc": "11487:1:39", - "nodeType": "YulLiteral", - "src": "11487:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11472:3:39", - "nodeType": "YulIdentifier", - "src": "11472:3:39" - }, - "nativeSrc": "11472:17:39", - "nodeType": "YulFunctionCall", - "src": "11472:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "11419:43:39", - "nodeType": "YulIdentifier", - "src": "11419:43:39" - }, - "nativeSrc": "11419:71:39", - "nodeType": "YulFunctionCall", - "src": "11419:71:39" - }, - "nativeSrc": "11419:71:39", - "nodeType": "YulExpressionStatement", - "src": "11419:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "11275:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11345:9:39", - "nodeType": "YulTypedName", - "src": "11345:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "11357:6:39", - "nodeType": "YulTypedName", - "src": "11357:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "11368:4:39", - "nodeType": "YulTypedName", - "src": "11368:4:39", - "type": "" - } - ], - "src": "11275:222:39" - }, - { - "body": { - "nativeSrc": "11566:80:39", - "nodeType": "YulBlock", - "src": "11566:80:39", - "statements": [ - { - "nativeSrc": "11576:22:39", - "nodeType": "YulAssignment", - "src": "11576:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "11591:6:39", - "nodeType": "YulIdentifier", - "src": "11591:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "11585:5:39", - "nodeType": "YulIdentifier", - "src": "11585:5:39" - }, - "nativeSrc": "11585:13:39", - "nodeType": "YulFunctionCall", - "src": "11585:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "11576:5:39", - "nodeType": "YulIdentifier", - "src": "11576:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "11634:5:39", - "nodeType": "YulIdentifier", - "src": "11634:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "11607:26:39", - "nodeType": "YulIdentifier", - "src": "11607:26:39" - }, - "nativeSrc": "11607:33:39", - "nodeType": "YulFunctionCall", - "src": "11607:33:39" - }, - "nativeSrc": "11607:33:39", - "nodeType": "YulExpressionStatement", - "src": "11607:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "11503:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "11544:6:39", - "nodeType": "YulTypedName", - "src": "11544:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "11552:3:39", - "nodeType": "YulTypedName", - "src": "11552:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "11560:5:39", - "nodeType": "YulTypedName", - "src": "11560:5:39", - "type": "" - } - ], - "src": "11503:143:39" - }, - { - "body": { - "nativeSrc": "11715:51:39", - "nodeType": "YulBlock", - "src": "11715:51:39", - "statements": [ - { - "nativeSrc": "11725:35:39", - "nodeType": "YulAssignment", - "src": "11725:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "11754:5:39", - "nodeType": "YulIdentifier", - "src": "11754:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "11736:17:39", - "nodeType": "YulIdentifier", - "src": "11736:17:39" - }, - "nativeSrc": "11736:24:39", - "nodeType": "YulFunctionCall", - "src": "11736:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "11725:7:39", - "nodeType": "YulIdentifier", - "src": "11725:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "11652:114:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "11697:5:39", - "nodeType": "YulTypedName", - "src": "11697:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "11707:7:39", - "nodeType": "YulTypedName", - "src": "11707:7:39", - "type": "" - } - ], - "src": "11652:114:39" - }, - { - "body": { - "nativeSrc": "11833:97:39", - "nodeType": "YulBlock", - "src": "11833:97:39", - "statements": [ - { - "body": { - "nativeSrc": "11908:16:39", - "nodeType": "YulBlock", - "src": "11908:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11917:1:39", - "nodeType": "YulLiteral", - "src": "11917:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "11920:1:39", - "nodeType": "YulLiteral", - "src": "11920:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "11910:6:39", - "nodeType": "YulIdentifier", - "src": "11910:6:39" - }, - "nativeSrc": "11910:12:39", - "nodeType": "YulFunctionCall", - "src": "11910:12:39" - }, - "nativeSrc": "11910:12:39", - "nodeType": "YulExpressionStatement", - "src": "11910:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "11856:5:39", - "nodeType": "YulIdentifier", - "src": "11856:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "11899:5:39", - "nodeType": "YulIdentifier", - "src": "11899:5:39" - } - ], - "functionName": { - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "11863:35:39", - "nodeType": "YulIdentifier", - "src": "11863:35:39" - }, - "nativeSrc": "11863:42:39", - "nodeType": "YulFunctionCall", - "src": "11863:42:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "11853:2:39", - "nodeType": "YulIdentifier", - "src": "11853:2:39" - }, - "nativeSrc": "11853:53:39", - "nodeType": "YulFunctionCall", - "src": "11853:53:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "11846:6:39", - "nodeType": "YulIdentifier", - "src": "11846:6:39" - }, - "nativeSrc": "11846:61:39", - "nodeType": "YulFunctionCall", - "src": "11846:61:39" - }, - "nativeSrc": "11843:81:39", - "nodeType": "YulIf", - "src": "11843:81:39" - } - ] - }, - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "11772:158:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "11826:5:39", - "nodeType": "YulTypedName", - "src": "11826:5:39", - "type": "" - } - ], - "src": "11772:158:39" - }, - { - "body": { - "nativeSrc": "12017:98:39", - "nodeType": "YulBlock", - "src": "12017:98:39", - "statements": [ - { - "nativeSrc": "12027:22:39", - "nodeType": "YulAssignment", - "src": "12027:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "12042:6:39", - "nodeType": "YulIdentifier", - "src": "12042:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "12036:5:39", - "nodeType": "YulIdentifier", - "src": "12036:5:39" - }, - "nativeSrc": "12036:13:39", - "nodeType": "YulFunctionCall", - "src": "12036:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "12027:5:39", - "nodeType": "YulIdentifier", - "src": "12027:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "12103:5:39", - "nodeType": "YulIdentifier", - "src": "12103:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "12058:44:39", - "nodeType": "YulIdentifier", - "src": "12058:44:39" - }, - "nativeSrc": "12058:51:39", - "nodeType": "YulFunctionCall", - "src": "12058:51:39" - }, - "nativeSrc": "12058:51:39", - "nodeType": "YulExpressionStatement", - "src": "12058:51:39" - } - ] - }, - "name": "abi_decode_t_contract$_IVerifier_$8101_fromMemory", - "nativeSrc": "11936:179:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "11995:6:39", - "nodeType": "YulTypedName", - "src": "11995:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "12003:3:39", - "nodeType": "YulTypedName", - "src": "12003:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "12011:5:39", - "nodeType": "YulTypedName", - "src": "12011:5:39", - "type": "" - } - ], - "src": "11936:179:39" - }, - { - "body": { - "nativeSrc": "12184:80:39", - "nodeType": "YulBlock", - "src": "12184:80:39", - "statements": [ - { - "nativeSrc": "12194:22:39", - "nodeType": "YulAssignment", - "src": "12194:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "12209:6:39", - "nodeType": "YulIdentifier", - "src": "12209:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "12203:5:39", - "nodeType": "YulIdentifier", - "src": "12203:5:39" - }, - "nativeSrc": "12203:13:39", - "nodeType": "YulFunctionCall", - "src": "12203:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "12194:5:39", - "nodeType": "YulIdentifier", - "src": "12194:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "12252:5:39", - "nodeType": "YulIdentifier", - "src": "12252:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "12225:26:39", - "nodeType": "YulIdentifier", - "src": "12225:26:39" - }, - "nativeSrc": "12225:33:39", - "nodeType": "YulFunctionCall", - "src": "12225:33:39" - }, - "nativeSrc": "12225:33:39", - "nodeType": "YulExpressionStatement", - "src": "12225:33:39" - } - ] - }, - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "12121:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "12162:6:39", - "nodeType": "YulTypedName", - "src": "12162:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "12170:3:39", - "nodeType": "YulTypedName", - "src": "12170:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "12178:5:39", - "nodeType": "YulTypedName", - "src": "12178:5:39", - "type": "" - } - ], - "src": "12121:143:39" - }, - { - "body": { - "nativeSrc": "12416:710:39", - "nodeType": "YulBlock", - "src": "12416:710:39", - "statements": [ - { - "body": { - "nativeSrc": "12463:83:39", - "nodeType": "YulBlock", - "src": "12463:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "12465:77:39", - "nodeType": "YulIdentifier", - "src": "12465:77:39" - }, - "nativeSrc": "12465:79:39", - "nodeType": "YulFunctionCall", - "src": "12465:79:39" - }, - "nativeSrc": "12465:79:39", - "nodeType": "YulExpressionStatement", - "src": "12465:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "12437:7:39", - "nodeType": "YulIdentifier", - "src": "12437:7:39" - }, - { - "name": "headStart", - "nativeSrc": "12446:9:39", - "nodeType": "YulIdentifier", - "src": "12446:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "12433:3:39", - "nodeType": "YulIdentifier", - "src": "12433:3:39" - }, - "nativeSrc": "12433:23:39", - "nodeType": "YulFunctionCall", - "src": "12433:23:39" - }, - { - "kind": "number", - "nativeSrc": "12458:3:39", - "nodeType": "YulLiteral", - "src": "12458:3:39", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "12429:3:39", - "nodeType": "YulIdentifier", - "src": "12429:3:39" - }, - "nativeSrc": "12429:33:39", - "nodeType": "YulFunctionCall", - "src": "12429:33:39" - }, - "nativeSrc": "12426:120:39", - "nodeType": "YulIf", - "src": "12426:120:39" - }, - { - "nativeSrc": "12556:128:39", - "nodeType": "YulBlock", - "src": "12556:128:39", - "statements": [ - { - "nativeSrc": "12571:15:39", - "nodeType": "YulVariableDeclaration", - "src": "12571:15:39", - "value": { - "kind": "number", - "nativeSrc": "12585:1:39", - "nodeType": "YulLiteral", - "src": "12585:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12575:6:39", - "nodeType": "YulTypedName", - "src": "12575:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "12600:74:39", - "nodeType": "YulAssignment", - "src": "12600:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12646:9:39", - "nodeType": "YulIdentifier", - "src": "12646:9:39" - }, - { - "name": "offset", - "nativeSrc": "12657:6:39", - "nodeType": "YulIdentifier", - "src": "12657:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12642:3:39", - "nodeType": "YulIdentifier", - "src": "12642:3:39" - }, - "nativeSrc": "12642:22:39", - "nodeType": "YulFunctionCall", - "src": "12642:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "12666:7:39", - "nodeType": "YulIdentifier", - "src": "12666:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "12610:31:39", - "nodeType": "YulIdentifier", - "src": "12610:31:39" - }, - "nativeSrc": "12610:64:39", - "nodeType": "YulFunctionCall", - "src": "12610:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "12600:6:39", - "nodeType": "YulIdentifier", - "src": "12600:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "12694:147:39", - "nodeType": "YulBlock", - "src": "12694:147:39", - "statements": [ - { - "nativeSrc": "12709:16:39", - "nodeType": "YulVariableDeclaration", - "src": "12709:16:39", - "value": { - "kind": "number", - "nativeSrc": "12723:2:39", - "nodeType": "YulLiteral", - "src": "12723:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12713:6:39", - "nodeType": "YulTypedName", - "src": "12713:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "12739:92:39", - "nodeType": "YulAssignment", - "src": "12739:92:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12803:9:39", - "nodeType": "YulIdentifier", - "src": "12803:9:39" - }, - { - "name": "offset", - "nativeSrc": "12814:6:39", - "nodeType": "YulIdentifier", - "src": "12814:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12799:3:39", - "nodeType": "YulIdentifier", - "src": "12799:3:39" - }, - "nativeSrc": "12799:22:39", - "nodeType": "YulFunctionCall", - "src": "12799:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "12823:7:39", - "nodeType": "YulIdentifier", - "src": "12823:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IVerifier_$8101_fromMemory", - "nativeSrc": "12749:49:39", - "nodeType": "YulIdentifier", - "src": "12749:49:39" - }, - "nativeSrc": "12749:82:39", - "nodeType": "YulFunctionCall", - "src": "12749:82:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "12739:6:39", - "nodeType": "YulIdentifier", - "src": "12739:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "12851:129:39", - "nodeType": "YulBlock", - "src": "12851:129:39", - "statements": [ - { - "nativeSrc": "12866:16:39", - "nodeType": "YulVariableDeclaration", - "src": "12866:16:39", - "value": { - "kind": "number", - "nativeSrc": "12880:2:39", - "nodeType": "YulLiteral", - "src": "12880:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12870:6:39", - "nodeType": "YulTypedName", - "src": "12870:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "12896:74:39", - "nodeType": "YulAssignment", - "src": "12896:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12942:9:39", - "nodeType": "YulIdentifier", - "src": "12942:9:39" - }, - { - "name": "offset", - "nativeSrc": "12953:6:39", - "nodeType": "YulIdentifier", - "src": "12953:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12938:3:39", - "nodeType": "YulIdentifier", - "src": "12938:3:39" - }, - "nativeSrc": "12938:22:39", - "nodeType": "YulFunctionCall", - "src": "12938:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "12962:7:39", - "nodeType": "YulIdentifier", - "src": "12962:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "12906:31:39", - "nodeType": "YulIdentifier", - "src": "12906:31:39" - }, - "nativeSrc": "12906:64:39", - "nodeType": "YulFunctionCall", - "src": "12906:64:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "12896:6:39", - "nodeType": "YulIdentifier", - "src": "12896:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "12990:129:39", - "nodeType": "YulBlock", - "src": "12990:129:39", - "statements": [ - { - "nativeSrc": "13005:16:39", - "nodeType": "YulVariableDeclaration", - "src": "13005:16:39", - "value": { - "kind": "number", - "nativeSrc": "13019:2:39", - "nodeType": "YulLiteral", - "src": "13019:2:39", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "13009:6:39", - "nodeType": "YulTypedName", - "src": "13009:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "13035:74:39", - "nodeType": "YulAssignment", - "src": "13035:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13081:9:39", - "nodeType": "YulIdentifier", - "src": "13081:9:39" - }, - { - "name": "offset", - "nativeSrc": "13092:6:39", - "nodeType": "YulIdentifier", - "src": "13092:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13077:3:39", - "nodeType": "YulIdentifier", - "src": "13077:3:39" - }, - "nativeSrc": "13077:22:39", - "nodeType": "YulFunctionCall", - "src": "13077:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "13101:7:39", - "nodeType": "YulIdentifier", - "src": "13101:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "13045:31:39", - "nodeType": "YulIdentifier", - "src": "13045:31:39" - }, - "nativeSrc": "13045:64:39", - "nodeType": "YulFunctionCall", - "src": "13045:64:39" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "13035:6:39", - "nodeType": "YulIdentifier", - "src": "13035:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_contract$_IVerifier_$8101t_uint256t_uint256_fromMemory", - "nativeSrc": "12270:856:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "12362:9:39", - "nodeType": "YulTypedName", - "src": "12362:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "12373:7:39", - "nodeType": "YulTypedName", - "src": "12373:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "12385:6:39", - "nodeType": "YulTypedName", - "src": "12385:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "12393:6:39", - "nodeType": "YulTypedName", - "src": "12393:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "12401:6:39", - "nodeType": "YulTypedName", - "src": "12401:6:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "12409:6:39", - "nodeType": "YulTypedName", - "src": "12409:6:39", - "type": "" - } - ], - "src": "12270:856:39" - }, - { - "body": { - "nativeSrc": "13286:288:39", - "nodeType": "YulBlock", - "src": "13286:288:39", - "statements": [ - { - "nativeSrc": "13296:26:39", - "nodeType": "YulAssignment", - "src": "13296:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13308:9:39", - "nodeType": "YulIdentifier", - "src": "13308:9:39" - }, - { - "kind": "number", - "nativeSrc": "13319:2:39", - "nodeType": "YulLiteral", - "src": "13319:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13304:3:39", - "nodeType": "YulIdentifier", - "src": "13304:3:39" - }, - "nativeSrc": "13304:18:39", - "nodeType": "YulFunctionCall", - "src": "13304:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "13296:4:39", - "nodeType": "YulIdentifier", - "src": "13296:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "13376:6:39", - "nodeType": "YulIdentifier", - "src": "13376:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13389:9:39", - "nodeType": "YulIdentifier", - "src": "13389:9:39" - }, - { - "kind": "number", - "nativeSrc": "13400:1:39", - "nodeType": "YulLiteral", - "src": "13400:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13385:3:39", - "nodeType": "YulIdentifier", - "src": "13385:3:39" - }, - "nativeSrc": "13385:17:39", - "nodeType": "YulFunctionCall", - "src": "13385:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "13332:43:39", - "nodeType": "YulIdentifier", - "src": "13332:43:39" - }, - "nativeSrc": "13332:71:39", - "nodeType": "YulFunctionCall", - "src": "13332:71:39" - }, - "nativeSrc": "13332:71:39", - "nodeType": "YulExpressionStatement", - "src": "13332:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "13457:6:39", - "nodeType": "YulIdentifier", - "src": "13457:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13470:9:39", - "nodeType": "YulIdentifier", - "src": "13470:9:39" - }, - { - "kind": "number", - "nativeSrc": "13481:2:39", - "nodeType": "YulLiteral", - "src": "13481:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13466:3:39", - "nodeType": "YulIdentifier", - "src": "13466:3:39" - }, - "nativeSrc": "13466:18:39", - "nodeType": "YulFunctionCall", - "src": "13466:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "13413:43:39", - "nodeType": "YulIdentifier", - "src": "13413:43:39" - }, - "nativeSrc": "13413:72:39", - "nodeType": "YulFunctionCall", - "src": "13413:72:39" - }, - "nativeSrc": "13413:72:39", - "nodeType": "YulExpressionStatement", - "src": "13413:72:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "13539:6:39", - "nodeType": "YulIdentifier", - "src": "13539:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13552:9:39", - "nodeType": "YulIdentifier", - "src": "13552:9:39" - }, - { - "kind": "number", - "nativeSrc": "13563:2:39", - "nodeType": "YulLiteral", - "src": "13563:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13548:3:39", - "nodeType": "YulIdentifier", - "src": "13548:3:39" - }, - "nativeSrc": "13548:18:39", - "nodeType": "YulFunctionCall", - "src": "13548:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "13495:43:39", - "nodeType": "YulIdentifier", - "src": "13495:43:39" - }, - "nativeSrc": "13495:72:39", - "nodeType": "YulFunctionCall", - "src": "13495:72:39" - }, - "nativeSrc": "13495:72:39", - "nodeType": "YulExpressionStatement", - "src": "13495:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_address_t_uint256__to_t_bytes32_t_address_t_uint256__fromStack_reversed", - "nativeSrc": "13132:442:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "13242:9:39", - "nodeType": "YulTypedName", - "src": "13242:9:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "13254:6:39", - "nodeType": "YulTypedName", - "src": "13254:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "13262:6:39", - "nodeType": "YulTypedName", - "src": "13262:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "13270:6:39", - "nodeType": "YulTypedName", - "src": "13270:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "13281:4:39", - "nodeType": "YulTypedName", - "src": "13281:4:39", - "type": "" - } - ], - "src": "13132:442:39" - }, - { - "body": { - "nativeSrc": "13657:274:39", - "nodeType": "YulBlock", - "src": "13657:274:39", - "statements": [ - { - "body": { - "nativeSrc": "13703:83:39", - "nodeType": "YulBlock", - "src": "13703:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "13705:77:39", - "nodeType": "YulIdentifier", - "src": "13705:77:39" - }, - "nativeSrc": "13705:79:39", - "nodeType": "YulFunctionCall", - "src": "13705:79:39" - }, - "nativeSrc": "13705:79:39", - "nodeType": "YulExpressionStatement", - "src": "13705:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "13678:7:39", - "nodeType": "YulIdentifier", - "src": "13678:7:39" - }, - { - "name": "headStart", - "nativeSrc": "13687:9:39", - "nodeType": "YulIdentifier", - "src": "13687:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "13674:3:39", - "nodeType": "YulIdentifier", - "src": "13674:3:39" - }, - "nativeSrc": "13674:23:39", - "nodeType": "YulFunctionCall", - "src": "13674:23:39" - }, - { - "kind": "number", - "nativeSrc": "13699:2:39", - "nodeType": "YulLiteral", - "src": "13699:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "13670:3:39", - "nodeType": "YulIdentifier", - "src": "13670:3:39" - }, - "nativeSrc": "13670:32:39", - "nodeType": "YulFunctionCall", - "src": "13670:32:39" - }, - "nativeSrc": "13667:119:39", - "nodeType": "YulIf", - "src": "13667:119:39" - }, - { - "nativeSrc": "13796:128:39", - "nodeType": "YulBlock", - "src": "13796:128:39", - "statements": [ - { - "nativeSrc": "13811:15:39", - "nodeType": "YulVariableDeclaration", - "src": "13811:15:39", - "value": { - "kind": "number", - "nativeSrc": "13825:1:39", - "nodeType": "YulLiteral", - "src": "13825:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "13815:6:39", - "nodeType": "YulTypedName", - "src": "13815:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "13840:74:39", - "nodeType": "YulAssignment", - "src": "13840:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13886:9:39", - "nodeType": "YulIdentifier", - "src": "13886:9:39" - }, - { - "name": "offset", - "nativeSrc": "13897:6:39", - "nodeType": "YulIdentifier", - "src": "13897:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13882:3:39", - "nodeType": "YulIdentifier", - "src": "13882:3:39" - }, - "nativeSrc": "13882:22:39", - "nodeType": "YulFunctionCall", - "src": "13882:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "13906:7:39", - "nodeType": "YulIdentifier", - "src": "13906:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "13850:31:39", - "nodeType": "YulIdentifier", - "src": "13850:31:39" - }, - "nativeSrc": "13850:64:39", - "nodeType": "YulFunctionCall", - "src": "13850:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "13840:6:39", - "nodeType": "YulIdentifier", - "src": "13840:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256_fromMemory", - "nativeSrc": "13580:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "13627:9:39", - "nodeType": "YulTypedName", - "src": "13627:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "13638:7:39", - "nodeType": "YulTypedName", - "src": "13638:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "13650:6:39", - "nodeType": "YulTypedName", - "src": "13650:6:39", - "type": "" - } - ], - "src": "13580:351:39" - }, - { - "body": { - "nativeSrc": "13990:32:39", - "nodeType": "YulBlock", - "src": "13990:32:39", - "statements": [ - { - "nativeSrc": "14000:16:39", - "nodeType": "YulAssignment", - "src": "14000:16:39", - "value": { - "name": "value", - "nativeSrc": "14011:5:39", - "nodeType": "YulIdentifier", - "src": "14011:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "14000:7:39", - "nodeType": "YulIdentifier", - "src": "14000:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_rational_1_by_1", - "nativeSrc": "13937:85:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "13972:5:39", - "nodeType": "YulTypedName", - "src": "13972:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "13982:7:39", - "nodeType": "YulTypedName", - "src": "13982:7:39", - "type": "" - } - ], - "src": "13937:85:39" - }, - { - "body": { - "nativeSrc": "14072:57:39", - "nodeType": "YulBlock", - "src": "14072:57:39", - "statements": [ - { - "nativeSrc": "14082:41:39", - "nodeType": "YulAssignment", - "src": "14082:41:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "14097:5:39", - "nodeType": "YulIdentifier", - "src": "14097:5:39" - }, - { - "kind": "number", - "nativeSrc": "14104:18:39", - "nodeType": "YulLiteral", - "src": "14104:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "14093:3:39", - "nodeType": "YulIdentifier", - "src": "14093:3:39" - }, - "nativeSrc": "14093:30:39", - "nodeType": "YulFunctionCall", - "src": "14093:30:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "14082:7:39", - "nodeType": "YulIdentifier", - "src": "14082:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint64", - "nativeSrc": "14028:101:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "14054:5:39", - "nodeType": "YulTypedName", - "src": "14054:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "14064:7:39", - "nodeType": "YulTypedName", - "src": "14064:7:39", - "type": "" - } - ], - "src": "14028:101:39" - }, - { - "body": { - "nativeSrc": "14202:89:39", - "nodeType": "YulBlock", - "src": "14202:89:39", - "statements": [ - { - "nativeSrc": "14212:73:39", - "nodeType": "YulAssignment", - "src": "14212:73:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14277:5:39", - "nodeType": "YulIdentifier", - "src": "14277:5:39" - } - ], - "functionName": { - "name": "cleanup_t_rational_1_by_1", - "nativeSrc": "14251:25:39", - "nodeType": "YulIdentifier", - "src": "14251:25:39" - }, - "nativeSrc": "14251:32:39", - "nodeType": "YulFunctionCall", - "src": "14251:32:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "14242:8:39", - "nodeType": "YulIdentifier", - "src": "14242:8:39" - }, - "nativeSrc": "14242:42:39", - "nodeType": "YulFunctionCall", - "src": "14242:42:39" - } - ], - "functionName": { - "name": "cleanup_t_uint64", - "nativeSrc": "14225:16:39", - "nodeType": "YulIdentifier", - "src": "14225:16:39" - }, - "nativeSrc": "14225:60:39", - "nodeType": "YulFunctionCall", - "src": "14225:60:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "14212:9:39", - "nodeType": "YulIdentifier", - "src": "14212:9:39" - } - ] - } - ] - }, - "name": "convert_t_rational_1_by_1_to_t_uint64", - "nativeSrc": "14135:156:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "14182:5:39", - "nodeType": "YulTypedName", - "src": "14182:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "14192:9:39", - "nodeType": "YulTypedName", - "src": "14192:9:39", - "type": "" - } - ], - "src": "14135:156:39" - }, - { - "body": { - "nativeSrc": "14369:73:39", - "nodeType": "YulBlock", - "src": "14369:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "14386:3:39", - "nodeType": "YulIdentifier", - "src": "14386:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14429:5:39", - "nodeType": "YulIdentifier", - "src": "14429:5:39" - } - ], - "functionName": { - "name": "convert_t_rational_1_by_1_to_t_uint64", - "nativeSrc": "14391:37:39", - "nodeType": "YulIdentifier", - "src": "14391:37:39" - }, - "nativeSrc": "14391:44:39", - "nodeType": "YulFunctionCall", - "src": "14391:44:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14379:6:39", - "nodeType": "YulIdentifier", - "src": "14379:6:39" - }, - "nativeSrc": "14379:57:39", - "nodeType": "YulFunctionCall", - "src": "14379:57:39" - }, - "nativeSrc": "14379:57:39", - "nodeType": "YulExpressionStatement", - "src": "14379:57:39" - } - ] - }, - "name": "abi_encode_t_rational_1_by_1_to_t_uint64_fromStack", - "nativeSrc": "14297:145:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "14357:5:39", - "nodeType": "YulTypedName", - "src": "14357:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "14364:3:39", - "nodeType": "YulTypedName", - "src": "14364:3:39", - "type": "" - } - ], - "src": "14297:145:39" - }, - { - "body": { - "nativeSrc": "14553:131:39", - "nodeType": "YulBlock", - "src": "14553:131:39", - "statements": [ - { - "nativeSrc": "14563:26:39", - "nodeType": "YulAssignment", - "src": "14563:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14575:9:39", - "nodeType": "YulIdentifier", - "src": "14575:9:39" - }, - { - "kind": "number", - "nativeSrc": "14586:2:39", - "nodeType": "YulLiteral", - "src": "14586:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14571:3:39", - "nodeType": "YulIdentifier", - "src": "14571:3:39" - }, - "nativeSrc": "14571:18:39", - "nodeType": "YulFunctionCall", - "src": "14571:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "14563:4:39", - "nodeType": "YulIdentifier", - "src": "14563:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "14650:6:39", - "nodeType": "YulIdentifier", - "src": "14650:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14663:9:39", - "nodeType": "YulIdentifier", - "src": "14663:9:39" - }, - { - "kind": "number", - "nativeSrc": "14674:1:39", - "nodeType": "YulLiteral", - "src": "14674:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14659:3:39", - "nodeType": "YulIdentifier", - "src": "14659:3:39" - }, - "nativeSrc": "14659:17:39", - "nodeType": "YulFunctionCall", - "src": "14659:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_rational_1_by_1_to_t_uint64_fromStack", - "nativeSrc": "14599:50:39", - "nodeType": "YulIdentifier", - "src": "14599:50:39" - }, - "nativeSrc": "14599:78:39", - "nodeType": "YulFunctionCall", - "src": "14599:78:39" - }, - "nativeSrc": "14599:78:39", - "nodeType": "YulExpressionStatement", - "src": "14599:78:39" - } - ] - }, - "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", - "nativeSrc": "14448:236:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "14525:9:39", - "nodeType": "YulTypedName", - "src": "14525:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "14537:6:39", - "nodeType": "YulTypedName", - "src": "14537:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "14548:4:39", - "nodeType": "YulTypedName", - "src": "14548:4:39", - "type": "" - } - ], - "src": "14448:236:39" - }, - { - "body": { - "nativeSrc": "14718:152:39", - "nodeType": "YulBlock", - "src": "14718:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14735:1:39", - "nodeType": "YulLiteral", - "src": "14735:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "14738:77:39", - "nodeType": "YulLiteral", - "src": "14738:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14728:6:39", - "nodeType": "YulIdentifier", - "src": "14728:6:39" - }, - "nativeSrc": "14728:88:39", - "nodeType": "YulFunctionCall", - "src": "14728:88:39" - }, - "nativeSrc": "14728:88:39", - "nodeType": "YulExpressionStatement", - "src": "14728:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14832:1:39", - "nodeType": "YulLiteral", - "src": "14832:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "14835:4:39", - "nodeType": "YulLiteral", - "src": "14835:4:39", - "type": "", - "value": "0x32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14825:6:39", - "nodeType": "YulIdentifier", - "src": "14825:6:39" - }, - "nativeSrc": "14825:15:39", - "nodeType": "YulFunctionCall", - "src": "14825:15:39" - }, - "nativeSrc": "14825:15:39", - "nodeType": "YulExpressionStatement", - "src": "14825:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14856:1:39", - "nodeType": "YulLiteral", - "src": "14856:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "14859:4:39", - "nodeType": "YulLiteral", - "src": "14859:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "14849:6:39", - "nodeType": "YulIdentifier", - "src": "14849:6:39" - }, - "nativeSrc": "14849:15:39", - "nodeType": "YulFunctionCall", - "src": "14849:15:39" - }, - "nativeSrc": "14849:15:39", - "nodeType": "YulExpressionStatement", - "src": "14849:15:39" - } - ] - }, - "name": "panic_error_0x32", - "nativeSrc": "14690:180:39", - "nodeType": "YulFunctionDefinition", - "src": "14690:180:39" - } - ] - }, - "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_$8101_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$8101_to_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_contract$_IVerifier_$8101_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_$8101_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_$7736_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7736_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7736_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_$8101(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$8101(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$8101(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$8101_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_IVerifier_$8101(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_$8101t_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_$8101_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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "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 0x27 0x2C 0xE1 CHAINID MUL 0xF7 JUMP EQ 0xB1 DUP13 CALLCODE 0xBF NOT 0xAB PUSH9 0xC14B11F226E3A446F PUSH23 0xE4FE0C0E360DC764736F6C634300081C00330000000000 ", - "sourceMap": "708:3783:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3696:395;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1261:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1573:324;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3155:101:3;;;:::i;:::-;;3257:229:2;;;:::i;:::-;;769:28:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2441:144:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2421:659:34;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4262:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2038:168:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2524:247;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3696:395:34;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:34::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:34;;:::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;3257:229:2:-;3309:14;3326:12;:10;:12::i;:::-;3309:29;;3370:6;3352:24;;:14;:12;:14::i;:::-;:24;;;3348:96;;3426:6;3399:34;;;;;;;;;;;:::i;:::-;;;;;;;;3348:96;3453:26;3472:6;3453:18;:26::i;:::-;3299:187;3257:229::o;769:28:34:-;;;;;;;;;;;;:::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:34:-;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:34::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;2038:168:2:-;2091:7;2110:29;2142:25;:23;:25::i;:::-;2110:57;;2184:1;:15;;;;;;;;;;;;2177:22;;;2038:168;:::o;2524:247::-;2334:13:3;:11;:13::i;:::-;2613:29:2::1;2645:25;:23;:25::i;:::-;2613:57;;2698:8;2680:1;:15;;;:26;;;;;;;;;;;;;;;;;;2755:8;2721:43;;2746:7;:5;:7::i;:::-;2721:43;;;;;;;;;;;;2603:168;2524:247:::0;:::o;8737:170:4:-;8795:30;8870:21;8860:31;;8737:170;:::o;1819:64:2:-;6931:20:4;:18;:20::i;:::-;1819: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;2955:222:2:-;3037:29;3069:25;:23;:25::i;:::-;3037:57;;3111:1;:15;;;3104:22;;;;;;;;;;;3136:34;3161:8;3136:24;:34::i;:::-;3027:150;2955: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;1545:174:2:-;1602:29;1676:27;1666:37;;1545: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:39:-;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. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"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\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@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": 7442, - "contract": "contracts/SCI.sol:SCI", - "label": "registry", - "offset": 0, - "slot": "0", - "type": "t_contract(ISciRegistry)7736" - } - ], - "types": { - "t_contract(ISciRegistry)7736": { - "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 - }, - "@_3525": { - "entryPoint": null, - "id": 3525, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_7181": { - "entryPoint": null, - "id": 7181, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_7816": { - "entryPoint": null, - "id": 7816, - "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_3399": { - "entryPoint": 405, - "id": 3399, - "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:39", - "nodeType": "YulBlock", - "src": "0:1648:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "378:53:39", - "nodeType": "YulBlock", - "src": "378:53:39", - "statements": [ - { - "nativeSrc": "388:37:39", - "nodeType": "YulAssignment", - "src": "388:37:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "403:5:39", - "nodeType": "YulIdentifier", - "src": "403:5:39" - }, - { - "kind": "number", - "nativeSrc": "410:14:39", - "nodeType": "YulLiteral", - "src": "410:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "399:3:39", - "nodeType": "YulIdentifier", - "src": "399:3:39" - }, - "nativeSrc": "399:26:39", - "nodeType": "YulFunctionCall", - "src": "399:26:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "388:7:39", - "nodeType": "YulIdentifier", - "src": "388:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint48", - "nativeSrc": "334:97:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "360:5:39", - "nodeType": "YulTypedName", - "src": "360:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "370:7:39", - "nodeType": "YulTypedName", - "src": "370:7:39", - "type": "" - } - ], - "src": "334:97:39" - }, - { - "body": { - "nativeSrc": "479:78:39", - "nodeType": "YulBlock", - "src": "479:78:39", - "statements": [ - { - "body": { - "nativeSrc": "535:16:39", - "nodeType": "YulBlock", - "src": "535:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "544:1:39", - "nodeType": "YulLiteral", - "src": "544:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "547:1:39", - "nodeType": "YulLiteral", - "src": "547:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "537:6:39", - "nodeType": "YulIdentifier", - "src": "537:6:39" - }, - "nativeSrc": "537:12:39", - "nodeType": "YulFunctionCall", - "src": "537:12:39" - }, - "nativeSrc": "537:12:39", - "nodeType": "YulExpressionStatement", - "src": "537:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "502:5:39", - "nodeType": "YulIdentifier", - "src": "502:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "526:5:39", - "nodeType": "YulIdentifier", - "src": "526:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "509:16:39", - "nodeType": "YulIdentifier", - "src": "509:16:39" - }, - "nativeSrc": "509:23:39", - "nodeType": "YulFunctionCall", - "src": "509:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "499:2:39", - "nodeType": "YulIdentifier", - "src": "499:2:39" - }, - "nativeSrc": "499:34:39", - "nodeType": "YulFunctionCall", - "src": "499:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "492:6:39", - "nodeType": "YulIdentifier", - "src": "492:6:39" - }, - "nativeSrc": "492:42:39", - "nodeType": "YulFunctionCall", - "src": "492:42:39" - }, - "nativeSrc": "489:62:39", - "nodeType": "YulIf", - "src": "489:62:39" - } - ] - }, - "name": "validator_revert_t_uint48", - "nativeSrc": "437:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "472:5:39", - "nodeType": "YulTypedName", - "src": "472:5:39", - "type": "" - } - ], - "src": "437:120:39" - }, - { - "body": { - "nativeSrc": "625:79:39", - "nodeType": "YulBlock", - "src": "625:79:39", - "statements": [ - { - "nativeSrc": "635:22:39", - "nodeType": "YulAssignment", - "src": "635:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "650:6:39", - "nodeType": "YulIdentifier", - "src": "650:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "644:5:39", - "nodeType": "YulIdentifier", - "src": "644:5:39" - }, - "nativeSrc": "644:13:39", - "nodeType": "YulFunctionCall", - "src": "644:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "635:5:39", - "nodeType": "YulIdentifier", - "src": "635:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "692:5:39", - "nodeType": "YulIdentifier", - "src": "692:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint48", - "nativeSrc": "666:25:39", - "nodeType": "YulIdentifier", - "src": "666:25:39" - }, - "nativeSrc": "666:32:39", - "nodeType": "YulFunctionCall", - "src": "666:32:39" - }, - "nativeSrc": "666:32:39", - "nodeType": "YulExpressionStatement", - "src": "666:32:39" - } - ] - }, - "name": "abi_decode_t_uint48_fromMemory", - "nativeSrc": "563:141:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "603:6:39", - "nodeType": "YulTypedName", - "src": "603:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "611:3:39", - "nodeType": "YulTypedName", - "src": "611:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "619:5:39", - "nodeType": "YulTypedName", - "src": "619:5:39", - "type": "" - } - ], - "src": "563:141:39" - }, - { - "body": { - "nativeSrc": "786:273:39", - "nodeType": "YulBlock", - "src": "786:273:39", - "statements": [ - { - "body": { - "nativeSrc": "832:83:39", - "nodeType": "YulBlock", - "src": "832:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "834:77:39", - "nodeType": "YulIdentifier", - "src": "834:77:39" - }, - "nativeSrc": "834:79:39", - "nodeType": "YulFunctionCall", - "src": "834:79:39" - }, - "nativeSrc": "834:79:39", - "nodeType": "YulExpressionStatement", - "src": "834:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "807:7:39", - "nodeType": "YulIdentifier", - "src": "807:7:39" - }, - { - "name": "headStart", - "nativeSrc": "816:9:39", - "nodeType": "YulIdentifier", - "src": "816:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "803:3:39", - "nodeType": "YulIdentifier", - "src": "803:3:39" - }, - "nativeSrc": "803:23:39", - "nodeType": "YulFunctionCall", - "src": "803:23:39" - }, - { - "kind": "number", - "nativeSrc": "828:2:39", - "nodeType": "YulLiteral", - "src": "828:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "799:3:39", - "nodeType": "YulIdentifier", - "src": "799:3:39" - }, - "nativeSrc": "799:32:39", - "nodeType": "YulFunctionCall", - "src": "799:32:39" - }, - "nativeSrc": "796:119:39", - "nodeType": "YulIf", - "src": "796:119:39" - }, - { - "nativeSrc": "925:127:39", - "nodeType": "YulBlock", - "src": "925:127:39", - "statements": [ - { - "nativeSrc": "940:15:39", - "nodeType": "YulVariableDeclaration", - "src": "940:15:39", - "value": { - "kind": "number", - "nativeSrc": "954:1:39", - "nodeType": "YulLiteral", - "src": "954:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "944:6:39", - "nodeType": "YulTypedName", - "src": "944:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "969:73:39", - "nodeType": "YulAssignment", - "src": "969:73:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1014:9:39", - "nodeType": "YulIdentifier", - "src": "1014:9:39" - }, - { - "name": "offset", - "nativeSrc": "1025:6:39", - "nodeType": "YulIdentifier", - "src": "1025:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1010:3:39", - "nodeType": "YulIdentifier", - "src": "1010:3:39" - }, - "nativeSrc": "1010:22:39", - "nodeType": "YulFunctionCall", - "src": "1010:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1034:7:39", - "nodeType": "YulIdentifier", - "src": "1034:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint48_fromMemory", - "nativeSrc": "979:30:39", - "nodeType": "YulIdentifier", - "src": "979:30:39" - }, - "nativeSrc": "979:63:39", - "nodeType": "YulFunctionCall", - "src": "979:63:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "969:6:39", - "nodeType": "YulIdentifier", - "src": "969:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint48_fromMemory", - "nativeSrc": "710:349:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "756:9:39", - "nodeType": "YulTypedName", - "src": "756:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "767:7:39", - "nodeType": "YulTypedName", - "src": "767:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "779:6:39", - "nodeType": "YulTypedName", - "src": "779:6:39", - "type": "" - } - ], - "src": "710:349:39" - }, - { - "body": { - "nativeSrc": "1110:81:39", - "nodeType": "YulBlock", - "src": "1110:81:39", - "statements": [ - { - "nativeSrc": "1120:65:39", - "nodeType": "YulAssignment", - "src": "1120:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1135:5:39", - "nodeType": "YulIdentifier", - "src": "1135:5:39" - }, - { - "kind": "number", - "nativeSrc": "1142:42:39", - "nodeType": "YulLiteral", - "src": "1142:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1131:3:39", - "nodeType": "YulIdentifier", - "src": "1131:3:39" - }, - "nativeSrc": "1131:54:39", - "nodeType": "YulFunctionCall", - "src": "1131:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1120:7:39", - "nodeType": "YulIdentifier", - "src": "1120:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "1065:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1092:5:39", - "nodeType": "YulTypedName", - "src": "1092:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1102:7:39", - "nodeType": "YulTypedName", - "src": "1102:7:39", - "type": "" - } - ], - "src": "1065:126:39" - }, - { - "body": { - "nativeSrc": "1242:51:39", - "nodeType": "YulBlock", - "src": "1242:51:39", - "statements": [ - { - "nativeSrc": "1252:35:39", - "nodeType": "YulAssignment", - "src": "1252:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1281:5:39", - "nodeType": "YulIdentifier", - "src": "1281:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "1263:17:39", - "nodeType": "YulIdentifier", - "src": "1263:17:39" - }, - "nativeSrc": "1263:24:39", - "nodeType": "YulFunctionCall", - "src": "1263:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1252:7:39", - "nodeType": "YulIdentifier", - "src": "1252:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "1197:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1224:5:39", - "nodeType": "YulTypedName", - "src": "1224:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1234:7:39", - "nodeType": "YulTypedName", - "src": "1234:7:39", - "type": "" - } - ], - "src": "1197:96:39" - }, - { - "body": { - "nativeSrc": "1364:53:39", - "nodeType": "YulBlock", - "src": "1364:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1381:3:39", - "nodeType": "YulIdentifier", - "src": "1381:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1404:5:39", - "nodeType": "YulIdentifier", - "src": "1404:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1386:17:39", - "nodeType": "YulIdentifier", - "src": "1386:17:39" - }, - "nativeSrc": "1386:24:39", - "nodeType": "YulFunctionCall", - "src": "1386:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1374:6:39", - "nodeType": "YulIdentifier", - "src": "1374:6:39" - }, - "nativeSrc": "1374:37:39", - "nodeType": "YulFunctionCall", - "src": "1374:37:39" - }, - "nativeSrc": "1374:37:39", - "nodeType": "YulExpressionStatement", - "src": "1374:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1299:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1352:5:39", - "nodeType": "YulTypedName", - "src": "1352:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1359:3:39", - "nodeType": "YulTypedName", - "src": "1359:3:39", - "type": "" - } - ], - "src": "1299:118:39" - }, - { - "body": { - "nativeSrc": "1521:124:39", - "nodeType": "YulBlock", - "src": "1521:124:39", - "statements": [ - { - "nativeSrc": "1531:26:39", - "nodeType": "YulAssignment", - "src": "1531:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1543:9:39", - "nodeType": "YulIdentifier", - "src": "1543:9:39" - }, - { - "kind": "number", - "nativeSrc": "1554:2:39", - "nodeType": "YulLiteral", - "src": "1554:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1539:3:39", - "nodeType": "YulIdentifier", - "src": "1539:3:39" - }, - "nativeSrc": "1539:18:39", - "nodeType": "YulFunctionCall", - "src": "1539:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1531:4:39", - "nodeType": "YulIdentifier", - "src": "1531:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1611:6:39", - "nodeType": "YulIdentifier", - "src": "1611:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1624:9:39", - "nodeType": "YulIdentifier", - "src": "1624:9:39" - }, - { - "kind": "number", - "nativeSrc": "1635:1:39", - "nodeType": "YulLiteral", - "src": "1635:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1620:3:39", - "nodeType": "YulIdentifier", - "src": "1620:3:39" - }, - "nativeSrc": "1620:17:39", - "nodeType": "YulFunctionCall", - "src": "1620:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1567:43:39", - "nodeType": "YulIdentifier", - "src": "1567:43:39" - }, - "nativeSrc": "1567:71:39", - "nodeType": "YulFunctionCall", - "src": "1567:71:39" - }, - "nativeSrc": "1567:71:39", - "nodeType": "YulExpressionStatement", - "src": "1567:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "1423:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1493:9:39", - "nodeType": "YulTypedName", - "src": "1493:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1505:6:39", - "nodeType": "YulTypedName", - "src": "1505:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1516:4:39", - "nodeType": "YulTypedName", - "src": "1516:4:39", - "type": "" - } - ], - "src": "1423:222:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60a060405234801561001057600080fd5b506040516129513803806129518339818101604052810190610032919061051a565b308161004261019560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b45760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100ab9190610588565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100ec6000801b8261019d60201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506000600360006101000a81548160ff02191690831515021790555061018f7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092387f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750961027660201b60201c565b506105a3565b600033905090565b60008060001b830361025e57600073ffffffffffffffffffffffffffffffffffffffff166101cf6102c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461021c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61026e83836102f060201b60201c565b905092915050565b6000801b82036102b2576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c282826103ed60201b60201c565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610302838361044e60201b60201c565b6103e257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061037f61019560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506103e7565b600090505b92915050565b60006103fe836104b860201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806000838152602001908152602001600020600101549050919050565b600080fd5b600065ffffffffffff82169050919050565b6104f7816104dc565b811461050257600080fd5b50565b600081519050610514816104ee565b92915050565b6000602082840312156105305761052f6104d7565b5b600061053e84828501610505565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061057282610547565b9050919050565b61058281610567565b82525050565b600060208201905061059d6000830184610579565b92915050565b60805161238c6105c560003960008181610924015261115a015261238c6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ccb565b6105ff565b6040516102279190611d13565b60405180910390f35b610238610679565b6040516102459190611d4f565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611da0565b61069c565b60405161027f9190611ddc565b60405180910390f35b6102a2600480360381019061029d9190611e55565b6106bb565b005b6102be60048036038101906102b99190611e55565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611da0565b610827565b6040516102f19190611ef4565b60405180910390f35b610314600480360381019061030f9190611da0565b610867565b6040516103249493929190611f37565b60405180910390f35b6103356108d7565b6040516103429190611d13565b60405180910390f35b61036560048036038101906103609190611f7c565b6108ee565b005b610381600480360381019061037c9190611fd5565b610908565b005b61038b610922565b6040516103989190612023565b60405180910390f35b6103bb60048036038101906103b69190611e55565b610946565b6040516103c89190611d13565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061203e565b60405180910390f35b6104016109e6565b60405161040e919061203e565b60405180910390f35b610431600480360381019061042c9190611e55565b6109f5565b60405161043e9190611d13565b60405180910390f35b61044f610a5f565b60405161045d929190612059565b60405180910390f35b61046e610abf565b60405161047b9190611ddc565b60405180910390f35b61049e60048036038101906104999190611da0565b610ac6565b6040516104ab9190612082565b60405180910390f35b6104ce60048036038101906104c991906120db565b610ae6565b005b6104ea60048036038101906104e5919061211b565b610b09565b005b6104f4610b17565b6040516105019190611ddc565b60405180910390f35b610512610b3b565b60405161051f9190611d4f565b60405180910390f35b610530610ba9565b005b61053a610c3f565b60405161054892919061215b565b60405180910390f35b61056b60048036038101906105669190611da0565b610c82565b604051610578919061203e565b60405180910390f35b61059b60048036038101906105969190611e55565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612184565b610d24565b005b6105cb610d3d565b6040516105d89190611ddc565b60405180910390f35b6105e9610d61565b6040516105f69190611ddc565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d4f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061203e565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061203e565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b6110119190612206565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d4f565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d9190612206565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612059565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061203e565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611ddc565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612255565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611243929190612282565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061203e565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d4f565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c4929190612282565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122f3565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b2919061231c565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061203e565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000611c408284108484611c48565b905092915050565b6000611c5384611c62565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ca881611c73565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b600060208284031215611ce157611ce0611c6e565b5b6000611cef84828501611cb6565b91505092915050565b60008115159050919050565b611d0d81611cf8565b82525050565b6000602082019050611d286000830184611d04565b92915050565b600065ffffffffffff82169050919050565b611d4981611d2e565b82525050565b6000602082019050611d646000830184611d40565b92915050565b6000819050919050565b611d7d81611d6a565b8114611d8857600080fd5b50565b600081359050611d9a81611d74565b92915050565b600060208284031215611db657611db5611c6e565b5b6000611dc484828501611d8b565b91505092915050565b611dd681611d6a565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e2282611df7565b9050919050565b611e3281611e17565b8114611e3d57600080fd5b50565b600081359050611e4f81611e29565b92915050565b60008060408385031215611e6c57611e6b611c6e565b5b6000611e7a85828601611d8b565b9250506020611e8b85828601611e40565b9150509250929050565b6000819050919050565b6000611eba611eb5611eb084611df7565b611e95565b611df7565b9050919050565b6000611ecc82611e9f565b9050919050565b6000611ede82611ec1565b9050919050565b611eee81611ed3565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b611f1881611e17565b82525050565b6000819050919050565b611f3181611f1e565b82525050565b6000608082019050611f4c6000830187611f0f565b611f596020830186611ee5565b611f666040830185611f28565b611f736060830184611f28565b95945050505050565b600060208284031215611f9257611f91611c6e565b5b6000611fa084828501611e40565b91505092915050565b611fb281611d2e565b8114611fbd57600080fd5b50565b600081359050611fcf81611fa9565b92915050565b600060208284031215611feb57611fea611c6e565b5b6000611ff984828501611fc0565b91505092915050565b600061200d82611ec1565b9050919050565b61201d81612002565b82525050565b60006020820190506120386000830184612014565b92915050565b60006020820190506120536000830184611f0f565b92915050565b600060408201905061206e6000830185611d40565b61207b6020830184611d40565b9392505050565b60006020820190506120976000830184611f28565b92915050565b60006120a882611e17565b9050919050565b6120b88161209d565b81146120c357600080fd5b50565b6000813590506120d5816120af565b92915050565b600080604083850312156120f2576120f1611c6e565b5b600061210085828601611d8b565b9250506020612111858286016120c6565b9150509250929050565b6000806040838503121561213257612131611c6e565b5b600061214085828601611e40565b925050602061215185828601611d8b565b9150509250929050565b60006040820190506121706000830185611f0f565b61217d6020830184611d40565b9392505050565b60008060006060848603121561219d5761219c611c6e565b5b60006121ab86828701611e40565b93505060206121bc86828701611d8b565b92505060406121cd868287016120c6565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061221182611d2e565b915061221c83611d2e565b9250828201905065ffffffffffff81111561223a576122396121d7565b5b92915050565b60008151905061224f81611e29565b92915050565b60006020828403121561226b5761226a611c6e565b5b600061227984828501612240565b91505092915050565b60006040820190506122976000830185611f0f565b6122a46020830184611dcd565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122dd6122d86122d3846122ab565b611e95565b6122b5565b9050919050565b6122ed816122c2565b82525050565b600060408201905061230860008301856122e4565b6123156020830184611f28565b9392505050565b600061232782611d2e565b915061233283611d2e565b9250828203905065ffffffffffff8111156123505761234f6121d7565b5b9291505056fea26469706673582212208d9faa5a557b2963a1f0927d9241c63c1ae66f5d48267732b4a8678b6cd45e3b64736f6c634300081c0033", - "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2951 CODESIZE SUB DUP1 PUSH2 0x2951 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 0x238C PUSH2 0x5C5 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x924 ADD MSTORE PUSH2 0x115A ADD MSTORE PUSH2 0x238C 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 0x1CCB JUMP JUMPDEST PUSH2 0x5FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x227 SWAP2 SWAP1 PUSH2 0x1D13 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 0x1D4F 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 0x1DA0 JUMP JUMPDEST PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1E55 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x1E55 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 0x1DA0 JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0x1EF4 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 0x1DA0 JUMP JUMPDEST PUSH2 0x867 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F37 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 0x1D13 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 0x1F7C JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x381 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x1FD5 JUMP JUMPDEST PUSH2 0x908 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x38B PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x398 SWAP2 SWAP1 PUSH2 0x2023 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 0x1E55 JUMP JUMPDEST PUSH2 0x946 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x1D13 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 0x203E 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 0x203E 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 0x1E55 JUMP JUMPDEST PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x1D13 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 0x2059 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 0x1DDC 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 0x1DA0 JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x2082 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 0x20DB JUMP JUMPDEST PUSH2 0xAE6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x211B JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F4 PUSH2 0xB17 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x501 SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1D4F 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 0x215B 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 0x1DA0 JUMP JUMPDEST PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x203E 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 0x1E55 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 0x2184 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5CB PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D8 SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1DDC 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 0x1D4F 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 0x203E 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 0x203E 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 0x2206 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 0x1D4F 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 0x2206 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 0x2059 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 0x203E 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 0x1DDC 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 0x2255 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 0x2282 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 0x203E 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 0x1D4F 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 0x2282 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 0x22F3 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 0x231C 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 0x203E 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 PUSH2 0x1C40 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1C48 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C53 DUP5 PUSH2 0x1C62 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CA8 DUP2 PUSH2 0x1C73 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CC5 DUP2 PUSH2 0x1C9F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE1 JUMPI PUSH2 0x1CE0 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CEF DUP5 DUP3 DUP6 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D0D DUP2 PUSH2 0x1CF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D28 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D04 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D49 DUP2 PUSH2 0x1D2E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D64 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D7D DUP2 PUSH2 0x1D6A JUMP JUMPDEST DUP2 EQ PUSH2 0x1D88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D9A DUP2 PUSH2 0x1D74 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DB6 JUMPI PUSH2 0x1DB5 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DC4 DUP5 DUP3 DUP6 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1DD6 DUP2 PUSH2 0x1D6A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DF1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DCD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E22 DUP3 PUSH2 0x1DF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E32 DUP2 PUSH2 0x1E17 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E4F DUP2 PUSH2 0x1E29 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E6C JUMPI PUSH2 0x1E6B PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7A DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E8B DUP6 DUP3 DUP7 ADD PUSH2 0x1E40 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 0x1EBA PUSH2 0x1EB5 PUSH2 0x1EB0 DUP5 PUSH2 0x1DF7 JUMP JUMPDEST PUSH2 0x1E95 JUMP JUMPDEST PUSH2 0x1DF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1ECC DUP3 PUSH2 0x1E9F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EDE DUP3 PUSH2 0x1EC1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EEE DUP2 PUSH2 0x1ED3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F09 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EE5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1F18 DUP2 PUSH2 0x1E17 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F31 DUP2 PUSH2 0x1F1E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1F4C PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x1F59 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EE5 JUMP JUMPDEST PUSH2 0x1F66 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1F28 JUMP JUMPDEST PUSH2 0x1F73 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F92 JUMPI PUSH2 0x1F91 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FA0 DUP5 DUP3 DUP6 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1FB2 DUP2 PUSH2 0x1D2E JUMP JUMPDEST DUP2 EQ PUSH2 0x1FBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FCF DUP2 PUSH2 0x1FA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FEB JUMPI PUSH2 0x1FEA PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FF9 DUP5 DUP3 DUP6 ADD PUSH2 0x1FC0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200D DUP3 PUSH2 0x1EC1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x201D DUP2 PUSH2 0x2002 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2038 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2014 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2053 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F0F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x206E PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1D40 JUMP JUMPDEST PUSH2 0x207B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2097 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A8 DUP3 PUSH2 0x1E17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x20B8 DUP2 PUSH2 0x209D JUMP JUMPDEST DUP2 EQ PUSH2 0x20C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x20D5 DUP2 PUSH2 0x20AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20F2 JUMPI PUSH2 0x20F1 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2100 DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2111 DUP6 DUP3 DUP7 ADD PUSH2 0x20C6 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2132 JUMPI PUSH2 0x2131 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2140 DUP6 DUP3 DUP7 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2151 DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2170 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x217D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x219D JUMPI PUSH2 0x219C PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x21AB DUP7 DUP3 DUP8 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x21BC DUP7 DUP3 DUP8 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x21CD DUP7 DUP3 DUP8 ADD PUSH2 0x20C6 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 0x2211 DUP3 PUSH2 0x1D2E JUMP JUMPDEST SWAP2 POP PUSH2 0x221C DUP4 PUSH2 0x1D2E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x223A JUMPI PUSH2 0x2239 PUSH2 0x21D7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x224F DUP2 PUSH2 0x1E29 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x226B JUMPI PUSH2 0x226A PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2279 DUP5 DUP3 DUP6 ADD PUSH2 0x2240 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2297 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x22A4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DCD 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 0x22DD PUSH2 0x22D8 PUSH2 0x22D3 DUP5 PUSH2 0x22AB JUMP JUMPDEST PUSH2 0x1E95 JUMP JUMPDEST PUSH2 0x22B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22ED DUP2 PUSH2 0x22C2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2308 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22E4 JUMP JUMPDEST PUSH2 0x2315 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2327 DUP3 PUSH2 0x1D2E JUMP JUMPDEST SWAP2 POP PUSH2 0x2332 DUP4 PUSH2 0x1D2E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2350 JUMPI PUSH2 0x234F PUSH2 0x21D7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 SWAP16 0xAA GAS SSTORE PUSH28 0x2963A1F0927D9241C63C1AE66F5D48267732B4A8678B6CD45E3B6473 PUSH16 0x6C634300081C00330000000000000000 ", - "sourceMap": "598:5743:36:-: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:29;1147:44;;;;;;;;;;1096:102;1241:5:23;1231:7;;:15;;;;;;;;;;;;;;;;;;2144:53:36::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:39:-;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:36:-;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@DEFAULT_ADMIN_ROLE_1222": { - "entryPoint": 2751, - "id": 1222, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@PAUSER_ROLE_7787": { - "entryPoint": 3389, - "id": 7787, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@REGISTRAR_MANAGER_ROLE_7777": { - "entryPoint": 2839, - "id": 7777, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@REGISTRAR_ROLE_7782": { - "entryPoint": 3425, - "id": 7782, - "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_7203": { - "entryPoint": 4417, - "id": 7203, - "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_3399": { - "entryPoint": 4409, - "id": 3399, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_pause_3591": { - "entryPoint": 4310, - "id": 3591, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_registerDomain_8002": { - "entryPoint": 4981, - "id": 8002, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_requireNotPaused_3562": { - "entryPoint": 6625, - "id": 3562, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_requirePaused_3575": { - "entryPoint": 6197, - "id": 3575, - "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_8084": { - "entryPoint": 6690, - "id": 8084, - "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_8045": { - "entryPoint": 4688, - "id": 8045, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_unpause_3607": { - "entryPoint": 3985, - "id": 3607, - "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_7793": { - "entryPoint": 2151, - "id": 7793, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@domainOwner_7976": { - "entryPoint": 3202, - "id": 7976, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@domainVerifierSetTime_7941": { - "entryPoint": 2758, - "id": 7941, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@domainVerifier_7927": { - "entryPoint": 2087, - "id": 7927, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getRoleAdmin_1321": { - "entryPoint": 1692, - "id": 1321, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@grantRole_7961": { - "entryPoint": 1723, - "id": 7961, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@hasRole_1273": { - "entryPoint": 2549, - "id": 1273, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@isDomainOwner_7892": { - "entryPoint": 2374, - "id": 7892, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@min_4003": { - "entryPoint": 7217, - "id": 4003, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@owner_1816": { - "entryPoint": 2534, - "id": 1816, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@pause_7863": { - "entryPoint": 2439, - "id": 7863, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@paused_3550": { - "entryPoint": 2263, - "id": 3550, - "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_7852": { - "entryPoint": 3364, - "id": 7852, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@registerDomain_7830": { - "entryPoint": 2825, - "id": 7830, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@registry_7147": { - "entryPoint": 2338, - "id": 7147, - "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_7912": { - "entryPoint": 2790, - "id": 7912, - "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_3755": { - "entryPoint": 5398, - "id": 3755, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@ternary_3965": { - "entryPoint": 7240, - "id": 3965, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@toUint48_6129": { - "entryPoint": 6261, - "id": 6129, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@toUint_7138": { - "entryPoint": 7266, - "id": 7138, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@unpause_7874": { - "entryPoint": 2034, - "id": 7874, - "parameterSlots": 0, - "returnSlots": 0 - }, - "abi_decode_t_address": { - "entryPoint": 7744, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_address_fromMemory": { - "entryPoint": 8768, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes32": { - "entryPoint": 7563, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes4": { - "entryPoint": 7350, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_contract$_IVerifier_$8101": { - "entryPoint": 8390, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_uint48": { - "entryPoint": 8128, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 8060, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address_fromMemory": { - "entryPoint": 8789, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_bytes32": { - "entryPoint": 8475, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8101": { - "entryPoint": 8580, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_bytes32": { - "entryPoint": 7584, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32t_address": { - "entryPoint": 7765, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8101": { - "entryPoint": 8411, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes4": { - "entryPoint": 7371, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint48": { - "entryPoint": 8149, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_address_to_t_address_fromStack": { - "entryPoint": 7951, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bool_to_t_bool_fromStack": { - "entryPoint": 7428, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bytes32_to_t_bytes32_fromStack": { - "entryPoint": 7629, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack": { - "entryPoint": 8212, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack": { - "entryPoint": 7909, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack": { - "entryPoint": 8932, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 7976, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint48_to_t_uint48_fromStack": { - "entryPoint": 7488, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": 8254, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { - "entryPoint": 8834, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_contract$_IVerifier_$8101_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 7991, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed": { - "entryPoint": 8539, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": 7443, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": 7644, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed": { - "entryPoint": 8227, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_IVerifier_$8101__to_t_address__fromStack_reversed": { - "entryPoint": 7924, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed": { - "entryPoint": 8947, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": 8322, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed": { - "entryPoint": 7503, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed": { - "entryPoint": 8281, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "checked_add_t_uint48": { - "entryPoint": 8710, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_sub_t_uint48": { - "entryPoint": 8988, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_address": { - "entryPoint": 7703, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bool": { - "entryPoint": 7416, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes32": { - "entryPoint": 7530, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes4": { - "entryPoint": 7283, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_contract$_IVerifier_$8101": { - "entryPoint": 8349, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_rational_48_by_1": { - "entryPoint": 8875, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 7671, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 7966, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint48": { - "entryPoint": 7470, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint8": { - "entryPoint": 8885, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_ISciRegistry_$7736_to_t_address": { - "entryPoint": 8194, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_IVerifier_$8101_to_t_address": { - "entryPoint": 7891, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_rational_48_by_1_to_t_uint8": { - "entryPoint": 8898, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_uint160_to_t_address": { - "entryPoint": 7873, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_uint160_to_t_uint160": { - "entryPoint": 7839, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "identity": { - "entryPoint": 7829, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x11": { - "entryPoint": 8663, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 7278, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "validator_revert_t_address": { - "entryPoint": 7721, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes32": { - "entryPoint": 7540, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes4": { - "entryPoint": 7327, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_contract$_IVerifier_$8101": { - "entryPoint": 8367, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint48": { - "entryPoint": 8105, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:12929:39", - "nodeType": "YulBlock", - "src": "0:12929:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "378:105:39", - "nodeType": "YulBlock", - "src": "378:105:39", - "statements": [ - { - "nativeSrc": "388:89:39", - "nodeType": "YulAssignment", - "src": "388:89:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "403:5:39", - "nodeType": "YulIdentifier", - "src": "403:5:39" - }, - { - "kind": "number", - "nativeSrc": "410:66:39", - "nodeType": "YulLiteral", - "src": "410:66:39", - "type": "", - "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "399:3:39", - "nodeType": "YulIdentifier", - "src": "399:3:39" - }, - "nativeSrc": "399:78:39", - "nodeType": "YulFunctionCall", - "src": "399:78:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "388:7:39", - "nodeType": "YulIdentifier", - "src": "388:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes4", - "nativeSrc": "334:149:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "360:5:39", - "nodeType": "YulTypedName", - "src": "360:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "370:7:39", - "nodeType": "YulTypedName", - "src": "370:7:39", - "type": "" - } - ], - "src": "334:149:39" - }, - { - "body": { - "nativeSrc": "531:78:39", - "nodeType": "YulBlock", - "src": "531:78:39", - "statements": [ - { - "body": { - "nativeSrc": "587:16:39", - "nodeType": "YulBlock", - "src": "587:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "596:1:39", - "nodeType": "YulLiteral", - "src": "596:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "599:1:39", - "nodeType": "YulLiteral", - "src": "599:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "589:6:39", - "nodeType": "YulIdentifier", - "src": "589:6:39" - }, - "nativeSrc": "589:12:39", - "nodeType": "YulFunctionCall", - "src": "589:12:39" - }, - "nativeSrc": "589:12:39", - "nodeType": "YulExpressionStatement", - "src": "589:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "554:5:39", - "nodeType": "YulIdentifier", - "src": "554:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "578:5:39", - "nodeType": "YulIdentifier", - "src": "578:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes4", - "nativeSrc": "561:16:39", - "nodeType": "YulIdentifier", - "src": "561:16:39" - }, - "nativeSrc": "561:23:39", - "nodeType": "YulFunctionCall", - "src": "561:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "551:2:39", - "nodeType": "YulIdentifier", - "src": "551:2:39" - }, - "nativeSrc": "551:34:39", - "nodeType": "YulFunctionCall", - "src": "551:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "544:6:39", - "nodeType": "YulIdentifier", - "src": "544:6:39" - }, - "nativeSrc": "544:42:39", - "nodeType": "YulFunctionCall", - "src": "544:42:39" - }, - "nativeSrc": "541:62:39", - "nodeType": "YulIf", - "src": "541:62:39" - } - ] - }, - "name": "validator_revert_t_bytes4", - "nativeSrc": "489:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "524:5:39", - "nodeType": "YulTypedName", - "src": "524:5:39", - "type": "" - } - ], - "src": "489:120:39" - }, - { - "body": { - "nativeSrc": "666:86:39", - "nodeType": "YulBlock", - "src": "666:86:39", - "statements": [ - { - "nativeSrc": "676:29:39", - "nodeType": "YulAssignment", - "src": "676:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "698:6:39", - "nodeType": "YulIdentifier", - "src": "698:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "685:12:39", - "nodeType": "YulIdentifier", - "src": "685:12:39" - }, - "nativeSrc": "685:20:39", - "nodeType": "YulFunctionCall", - "src": "685:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "676:5:39", - "nodeType": "YulIdentifier", - "src": "676:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "740:5:39", - "nodeType": "YulIdentifier", - "src": "740:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes4", - "nativeSrc": "714:25:39", - "nodeType": "YulIdentifier", - "src": "714:25:39" - }, - "nativeSrc": "714:32:39", - "nodeType": "YulFunctionCall", - "src": "714:32:39" - }, - "nativeSrc": "714:32:39", - "nodeType": "YulExpressionStatement", - "src": "714:32:39" - } - ] - }, - "name": "abi_decode_t_bytes4", - "nativeSrc": "615:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "644:6:39", - "nodeType": "YulTypedName", - "src": "644:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "652:3:39", - "nodeType": "YulTypedName", - "src": "652:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "660:5:39", - "nodeType": "YulTypedName", - "src": "660:5:39", - "type": "" - } - ], - "src": "615:137:39" - }, - { - "body": { - "nativeSrc": "823:262:39", - "nodeType": "YulBlock", - "src": "823:262:39", - "statements": [ - { - "body": { - "nativeSrc": "869:83:39", - "nodeType": "YulBlock", - "src": "869:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "871:77:39", - "nodeType": "YulIdentifier", - "src": "871:77:39" - }, - "nativeSrc": "871:79:39", - "nodeType": "YulFunctionCall", - "src": "871:79:39" - }, - "nativeSrc": "871:79:39", - "nodeType": "YulExpressionStatement", - "src": "871:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "844:7:39", - "nodeType": "YulIdentifier", - "src": "844:7:39" - }, - { - "name": "headStart", - "nativeSrc": "853:9:39", - "nodeType": "YulIdentifier", - "src": "853:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "840:3:39", - "nodeType": "YulIdentifier", - "src": "840:3:39" - }, - "nativeSrc": "840:23:39", - "nodeType": "YulFunctionCall", - "src": "840:23:39" - }, - { - "kind": "number", - "nativeSrc": "865:2:39", - "nodeType": "YulLiteral", - "src": "865:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "836:3:39", - "nodeType": "YulIdentifier", - "src": "836:3:39" - }, - "nativeSrc": "836:32:39", - "nodeType": "YulFunctionCall", - "src": "836:32:39" - }, - "nativeSrc": "833:119:39", - "nodeType": "YulIf", - "src": "833:119:39" - }, - { - "nativeSrc": "962:116:39", - "nodeType": "YulBlock", - "src": "962:116:39", - "statements": [ - { - "nativeSrc": "977:15:39", - "nodeType": "YulVariableDeclaration", - "src": "977:15:39", - "value": { - "kind": "number", - "nativeSrc": "991:1:39", - "nodeType": "YulLiteral", - "src": "991:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "981:6:39", - "nodeType": "YulTypedName", - "src": "981:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1006:62:39", - "nodeType": "YulAssignment", - "src": "1006:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1040:9:39", - "nodeType": "YulIdentifier", - "src": "1040:9:39" - }, - { - "name": "offset", - "nativeSrc": "1051:6:39", - "nodeType": "YulIdentifier", - "src": "1051:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1036:3:39", - "nodeType": "YulIdentifier", - "src": "1036:3:39" - }, - "nativeSrc": "1036:22:39", - "nodeType": "YulFunctionCall", - "src": "1036:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1060:7:39", - "nodeType": "YulIdentifier", - "src": "1060:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes4", - "nativeSrc": "1016:19:39", - "nodeType": "YulIdentifier", - "src": "1016:19:39" - }, - "nativeSrc": "1016:52:39", - "nodeType": "YulFunctionCall", - "src": "1016:52:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1006:6:39", - "nodeType": "YulIdentifier", - "src": "1006:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes4", - "nativeSrc": "758:327:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "793:9:39", - "nodeType": "YulTypedName", - "src": "793:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "804:7:39", - "nodeType": "YulTypedName", - "src": "804:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "816:6:39", - "nodeType": "YulTypedName", - "src": "816:6:39", - "type": "" - } - ], - "src": "758:327:39" - }, - { - "body": { - "nativeSrc": "1133:48:39", - "nodeType": "YulBlock", - "src": "1133:48:39", - "statements": [ - { - "nativeSrc": "1143:32:39", - "nodeType": "YulAssignment", - "src": "1143:32:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1168:5:39", - "nodeType": "YulIdentifier", - "src": "1168:5:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1161:6:39", - "nodeType": "YulIdentifier", - "src": "1161:6:39" - }, - "nativeSrc": "1161:13:39", - "nodeType": "YulFunctionCall", - "src": "1161:13:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1154:6:39", - "nodeType": "YulIdentifier", - "src": "1154:6:39" - }, - "nativeSrc": "1154:21:39", - "nodeType": "YulFunctionCall", - "src": "1154:21:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1143:7:39", - "nodeType": "YulIdentifier", - "src": "1143:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bool", - "nativeSrc": "1091:90:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1115:5:39", - "nodeType": "YulTypedName", - "src": "1115:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1125:7:39", - "nodeType": "YulTypedName", - "src": "1125:7:39", - "type": "" - } - ], - "src": "1091:90:39" - }, - { - "body": { - "nativeSrc": "1246:50:39", - "nodeType": "YulBlock", - "src": "1246:50:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1263:3:39", - "nodeType": "YulIdentifier", - "src": "1263:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1283:5:39", - "nodeType": "YulIdentifier", - "src": "1283:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "1268:14:39", - "nodeType": "YulIdentifier", - "src": "1268:14:39" - }, - "nativeSrc": "1268:21:39", - "nodeType": "YulFunctionCall", - "src": "1268:21:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1256:6:39", - "nodeType": "YulIdentifier", - "src": "1256:6:39" - }, - "nativeSrc": "1256:34:39", - "nodeType": "YulFunctionCall", - "src": "1256:34:39" - }, - "nativeSrc": "1256:34:39", - "nodeType": "YulExpressionStatement", - "src": "1256:34:39" - } - ] - }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "1187:109:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1234:5:39", - "nodeType": "YulTypedName", - "src": "1234:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1241:3:39", - "nodeType": "YulTypedName", - "src": "1241:3:39", - "type": "" - } - ], - "src": "1187:109:39" - }, - { - "body": { - "nativeSrc": "1394:118:39", - "nodeType": "YulBlock", - "src": "1394:118:39", - "statements": [ - { - "nativeSrc": "1404:26:39", - "nodeType": "YulAssignment", - "src": "1404:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1416:9:39", - "nodeType": "YulIdentifier", - "src": "1416:9:39" - }, - { - "kind": "number", - "nativeSrc": "1427:2:39", - "nodeType": "YulLiteral", - "src": "1427:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1412:3:39", - "nodeType": "YulIdentifier", - "src": "1412:3:39" - }, - "nativeSrc": "1412:18:39", - "nodeType": "YulFunctionCall", - "src": "1412:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1404:4:39", - "nodeType": "YulIdentifier", - "src": "1404:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1478:6:39", - "nodeType": "YulIdentifier", - "src": "1478:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1491:9:39", - "nodeType": "YulIdentifier", - "src": "1491:9:39" - }, - { - "kind": "number", - "nativeSrc": "1502:1:39", - "nodeType": "YulLiteral", - "src": "1502:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1487:3:39", - "nodeType": "YulIdentifier", - "src": "1487:3:39" - }, - "nativeSrc": "1487:17:39", - "nodeType": "YulFunctionCall", - "src": "1487:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "1440:37:39", - "nodeType": "YulIdentifier", - "src": "1440:37:39" - }, - "nativeSrc": "1440:65:39", - "nodeType": "YulFunctionCall", - "src": "1440:65:39" - }, - "nativeSrc": "1440:65:39", - "nodeType": "YulExpressionStatement", - "src": "1440:65:39" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "1302:210:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1366:9:39", - "nodeType": "YulTypedName", - "src": "1366:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1378:6:39", - "nodeType": "YulTypedName", - "src": "1378:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1389:4:39", - "nodeType": "YulTypedName", - "src": "1389:4:39", - "type": "" - } - ], - "src": "1302:210:39" - }, - { - "body": { - "nativeSrc": "1562:53:39", - "nodeType": "YulBlock", - "src": "1562:53:39", - "statements": [ - { - "nativeSrc": "1572:37:39", - "nodeType": "YulAssignment", - "src": "1572:37:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1587:5:39", - "nodeType": "YulIdentifier", - "src": "1587:5:39" - }, - { - "kind": "number", - "nativeSrc": "1594:14:39", - "nodeType": "YulLiteral", - "src": "1594:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1583:3:39", - "nodeType": "YulIdentifier", - "src": "1583:3:39" - }, - "nativeSrc": "1583:26:39", - "nodeType": "YulFunctionCall", - "src": "1583:26:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1572:7:39", - "nodeType": "YulIdentifier", - "src": "1572:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint48", - "nativeSrc": "1518:97:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1544:5:39", - "nodeType": "YulTypedName", - "src": "1544:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1554:7:39", - "nodeType": "YulTypedName", - "src": "1554:7:39", - "type": "" - } - ], - "src": "1518:97:39" - }, - { - "body": { - "nativeSrc": "1684:52:39", - "nodeType": "YulBlock", - "src": "1684:52:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1701:3:39", - "nodeType": "YulIdentifier", - "src": "1701:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1723:5:39", - "nodeType": "YulIdentifier", - "src": "1723:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "1706:16:39", - "nodeType": "YulIdentifier", - "src": "1706:16:39" - }, - "nativeSrc": "1706:23:39", - "nodeType": "YulFunctionCall", - "src": "1706:23:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1694:6:39", - "nodeType": "YulIdentifier", - "src": "1694:6:39" - }, - "nativeSrc": "1694:36:39", - "nodeType": "YulFunctionCall", - "src": "1694:36:39" - }, - "nativeSrc": "1694:36:39", - "nodeType": "YulExpressionStatement", - "src": "1694:36:39" - } - ] - }, - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "1621:115:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1672:5:39", - "nodeType": "YulTypedName", - "src": "1672:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1679:3:39", - "nodeType": "YulTypedName", - "src": "1679:3:39", - "type": "" - } - ], - "src": "1621:115:39" - }, - { - "body": { - "nativeSrc": "1838:122:39", - "nodeType": "YulBlock", - "src": "1838:122:39", - "statements": [ - { - "nativeSrc": "1848:26:39", - "nodeType": "YulAssignment", - "src": "1848:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1860:9:39", - "nodeType": "YulIdentifier", - "src": "1860:9:39" - }, - { - "kind": "number", - "nativeSrc": "1871:2:39", - "nodeType": "YulLiteral", - "src": "1871:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1856:3:39", - "nodeType": "YulIdentifier", - "src": "1856:3:39" - }, - "nativeSrc": "1856:18:39", - "nodeType": "YulFunctionCall", - "src": "1856:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1848:4:39", - "nodeType": "YulIdentifier", - "src": "1848:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1926:6:39", - "nodeType": "YulIdentifier", - "src": "1926:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1939:9:39", - "nodeType": "YulIdentifier", - "src": "1939:9:39" - }, - { - "kind": "number", - "nativeSrc": "1950:1:39", - "nodeType": "YulLiteral", - "src": "1950:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1935:3:39", - "nodeType": "YulIdentifier", - "src": "1935:3:39" - }, - "nativeSrc": "1935:17:39", - "nodeType": "YulFunctionCall", - "src": "1935:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "1884:41:39", - "nodeType": "YulIdentifier", - "src": "1884:41:39" - }, - "nativeSrc": "1884:69:39", - "nodeType": "YulFunctionCall", - "src": "1884:69:39" - }, - "nativeSrc": "1884:69:39", - "nodeType": "YulExpressionStatement", - "src": "1884:69:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed", - "nativeSrc": "1742:218:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1810:9:39", - "nodeType": "YulTypedName", - "src": "1810:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1822:6:39", - "nodeType": "YulTypedName", - "src": "1822:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1833:4:39", - "nodeType": "YulTypedName", - "src": "1833:4:39", - "type": "" - } - ], - "src": "1742:218:39" - }, - { - "body": { - "nativeSrc": "2011:32:39", - "nodeType": "YulBlock", - "src": "2011:32:39", - "statements": [ - { - "nativeSrc": "2021:16:39", - "nodeType": "YulAssignment", - "src": "2021:16:39", - "value": { - "name": "value", - "nativeSrc": "2032:5:39", - "nodeType": "YulIdentifier", - "src": "2032:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "2021:7:39", - "nodeType": "YulIdentifier", - "src": "2021:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "1966:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1993:5:39", - "nodeType": "YulTypedName", - "src": "1993:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "2003:7:39", - "nodeType": "YulTypedName", - "src": "2003:7:39", - "type": "" - } - ], - "src": "1966:77:39" - }, - { - "body": { - "nativeSrc": "2092:79:39", - "nodeType": "YulBlock", - "src": "2092:79:39", - "statements": [ - { - "body": { - "nativeSrc": "2149:16:39", - "nodeType": "YulBlock", - "src": "2149:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2158:1:39", - "nodeType": "YulLiteral", - "src": "2158:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2161:1:39", - "nodeType": "YulLiteral", - "src": "2161:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2151:6:39", - "nodeType": "YulIdentifier", - "src": "2151:6:39" - }, - "nativeSrc": "2151:12:39", - "nodeType": "YulFunctionCall", - "src": "2151:12:39" - }, - "nativeSrc": "2151:12:39", - "nodeType": "YulExpressionStatement", - "src": "2151:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2115:5:39", - "nodeType": "YulIdentifier", - "src": "2115:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2140:5:39", - "nodeType": "YulIdentifier", - "src": "2140:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "2122:17:39", - "nodeType": "YulIdentifier", - "src": "2122:17:39" - }, - "nativeSrc": "2122:24:39", - "nodeType": "YulFunctionCall", - "src": "2122:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "2112:2:39", - "nodeType": "YulIdentifier", - "src": "2112:2:39" - }, - "nativeSrc": "2112:35:39", - "nodeType": "YulFunctionCall", - "src": "2112:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2105:6:39", - "nodeType": "YulIdentifier", - "src": "2105:6:39" - }, - "nativeSrc": "2105:43:39", - "nodeType": "YulFunctionCall", - "src": "2105:43:39" - }, - "nativeSrc": "2102:63:39", - "nodeType": "YulIf", - "src": "2102:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "2049:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2085:5:39", - "nodeType": "YulTypedName", - "src": "2085:5:39", - "type": "" - } - ], - "src": "2049:122:39" - }, - { - "body": { - "nativeSrc": "2229:87:39", - "nodeType": "YulBlock", - "src": "2229:87:39", - "statements": [ - { - "nativeSrc": "2239:29:39", - "nodeType": "YulAssignment", - "src": "2239:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2261:6:39", - "nodeType": "YulIdentifier", - "src": "2261:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2248:12:39", - "nodeType": "YulIdentifier", - "src": "2248:12:39" - }, - "nativeSrc": "2248:20:39", - "nodeType": "YulFunctionCall", - "src": "2248:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "2239:5:39", - "nodeType": "YulIdentifier", - "src": "2239:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2304:5:39", - "nodeType": "YulIdentifier", - "src": "2304:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "2277:26:39", - "nodeType": "YulIdentifier", - "src": "2277:26:39" - }, - "nativeSrc": "2277:33:39", - "nodeType": "YulFunctionCall", - "src": "2277:33:39" - }, - "nativeSrc": "2277:33:39", - "nodeType": "YulExpressionStatement", - "src": "2277:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "2177:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2207:6:39", - "nodeType": "YulTypedName", - "src": "2207:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2215:3:39", - "nodeType": "YulTypedName", - "src": "2215:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "2223:5:39", - "nodeType": "YulTypedName", - "src": "2223:5:39", - "type": "" - } - ], - "src": "2177:139:39" - }, - { - "body": { - "nativeSrc": "2388:263:39", - "nodeType": "YulBlock", - "src": "2388:263:39", - "statements": [ - { - "body": { - "nativeSrc": "2434:83:39", - "nodeType": "YulBlock", - "src": "2434:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2436:77:39", - "nodeType": "YulIdentifier", - "src": "2436:77:39" - }, - "nativeSrc": "2436:79:39", - "nodeType": "YulFunctionCall", - "src": "2436:79:39" - }, - "nativeSrc": "2436:79:39", - "nodeType": "YulExpressionStatement", - "src": "2436:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2409:7:39", - "nodeType": "YulIdentifier", - "src": "2409:7:39" - }, - { - "name": "headStart", - "nativeSrc": "2418:9:39", - "nodeType": "YulIdentifier", - "src": "2418:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2405:3:39", - "nodeType": "YulIdentifier", - "src": "2405:3:39" - }, - "nativeSrc": "2405:23:39", - "nodeType": "YulFunctionCall", - "src": "2405:23:39" - }, - { - "kind": "number", - "nativeSrc": "2430:2:39", - "nodeType": "YulLiteral", - "src": "2430:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2401:3:39", - "nodeType": "YulIdentifier", - "src": "2401:3:39" - }, - "nativeSrc": "2401:32:39", - "nodeType": "YulFunctionCall", - "src": "2401:32:39" - }, - "nativeSrc": "2398:119:39", - "nodeType": "YulIf", - "src": "2398:119:39" - }, - { - "nativeSrc": "2527:117:39", - "nodeType": "YulBlock", - "src": "2527:117:39", - "statements": [ - { - "nativeSrc": "2542:15:39", - "nodeType": "YulVariableDeclaration", - "src": "2542:15:39", - "value": { - "kind": "number", - "nativeSrc": "2556:1:39", - "nodeType": "YulLiteral", - "src": "2556:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2546:6:39", - "nodeType": "YulTypedName", - "src": "2546:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2571:63:39", - "nodeType": "YulAssignment", - "src": "2571:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2606:9:39", - "nodeType": "YulIdentifier", - "src": "2606:9:39" - }, - { - "name": "offset", - "nativeSrc": "2617:6:39", - "nodeType": "YulIdentifier", - "src": "2617:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2602:3:39", - "nodeType": "YulIdentifier", - "src": "2602:3:39" - }, - "nativeSrc": "2602:22:39", - "nodeType": "YulFunctionCall", - "src": "2602:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2626:7:39", - "nodeType": "YulIdentifier", - "src": "2626:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "2581:20:39", - "nodeType": "YulIdentifier", - "src": "2581:20:39" - }, - "nativeSrc": "2581:53:39", - "nodeType": "YulFunctionCall", - "src": "2581:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2571:6:39", - "nodeType": "YulIdentifier", - "src": "2571:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "2322:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2358:9:39", - "nodeType": "YulTypedName", - "src": "2358:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "2369:7:39", - "nodeType": "YulTypedName", - "src": "2369:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "2381:6:39", - "nodeType": "YulTypedName", - "src": "2381:6:39", - "type": "" - } - ], - "src": "2322:329:39" - }, - { - "body": { - "nativeSrc": "2722:53:39", - "nodeType": "YulBlock", - "src": "2722:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2739:3:39", - "nodeType": "YulIdentifier", - "src": "2739:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2762:5:39", - "nodeType": "YulIdentifier", - "src": "2762:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "2744:17:39", - "nodeType": "YulIdentifier", - "src": "2744:17:39" - }, - "nativeSrc": "2744:24:39", - "nodeType": "YulFunctionCall", - "src": "2744:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2732:6:39", - "nodeType": "YulIdentifier", - "src": "2732:6:39" - }, - "nativeSrc": "2732:37:39", - "nodeType": "YulFunctionCall", - "src": "2732:37:39" - }, - "nativeSrc": "2732:37:39", - "nodeType": "YulExpressionStatement", - "src": "2732:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2657:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2710:5:39", - "nodeType": "YulTypedName", - "src": "2710:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2717:3:39", - "nodeType": "YulTypedName", - "src": "2717:3:39", - "type": "" - } - ], - "src": "2657:118:39" - }, - { - "body": { - "nativeSrc": "2879:124:39", - "nodeType": "YulBlock", - "src": "2879:124:39", - "statements": [ - { - "nativeSrc": "2889:26:39", - "nodeType": "YulAssignment", - "src": "2889:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2901:9:39", - "nodeType": "YulIdentifier", - "src": "2901:9:39" - }, - { - "kind": "number", - "nativeSrc": "2912:2:39", - "nodeType": "YulLiteral", - "src": "2912:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2897:3:39", - "nodeType": "YulIdentifier", - "src": "2897:3:39" - }, - "nativeSrc": "2897:18:39", - "nodeType": "YulFunctionCall", - "src": "2897:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2889:4:39", - "nodeType": "YulIdentifier", - "src": "2889:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2969:6:39", - "nodeType": "YulIdentifier", - "src": "2969:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2982:9:39", - "nodeType": "YulIdentifier", - "src": "2982:9:39" - }, - { - "kind": "number", - "nativeSrc": "2993:1:39", - "nodeType": "YulLiteral", - "src": "2993:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2978:3:39", - "nodeType": "YulIdentifier", - "src": "2978:3:39" - }, - "nativeSrc": "2978:17:39", - "nodeType": "YulFunctionCall", - "src": "2978:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2925:43:39", - "nodeType": "YulIdentifier", - "src": "2925:43:39" - }, - "nativeSrc": "2925:71:39", - "nodeType": "YulFunctionCall", - "src": "2925:71:39" - }, - "nativeSrc": "2925:71:39", - "nodeType": "YulExpressionStatement", - "src": "2925:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "2781:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2851:9:39", - "nodeType": "YulTypedName", - "src": "2851:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2863:6:39", - "nodeType": "YulTypedName", - "src": "2863:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2874:4:39", - "nodeType": "YulTypedName", - "src": "2874:4:39", - "type": "" - } - ], - "src": "2781:222:39" - }, - { - "body": { - "nativeSrc": "3054:81:39", - "nodeType": "YulBlock", - "src": "3054:81:39", - "statements": [ - { - "nativeSrc": "3064:65:39", - "nodeType": "YulAssignment", - "src": "3064:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3079:5:39", - "nodeType": "YulIdentifier", - "src": "3079:5:39" - }, - { - "kind": "number", - "nativeSrc": "3086:42:39", - "nodeType": "YulLiteral", - "src": "3086:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "3075:3:39", - "nodeType": "YulIdentifier", - "src": "3075:3:39" - }, - "nativeSrc": "3075:54:39", - "nodeType": "YulFunctionCall", - "src": "3075:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "3064:7:39", - "nodeType": "YulIdentifier", - "src": "3064:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "3009:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3036:5:39", - "nodeType": "YulTypedName", - "src": "3036:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "3046:7:39", - "nodeType": "YulTypedName", - "src": "3046:7:39", - "type": "" - } - ], - "src": "3009:126:39" - }, - { - "body": { - "nativeSrc": "3186:51:39", - "nodeType": "YulBlock", - "src": "3186:51:39", - "statements": [ - { - "nativeSrc": "3196:35:39", - "nodeType": "YulAssignment", - "src": "3196:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3225:5:39", - "nodeType": "YulIdentifier", - "src": "3225:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "3207:17:39", - "nodeType": "YulIdentifier", - "src": "3207:17:39" - }, - "nativeSrc": "3207:24:39", - "nodeType": "YulFunctionCall", - "src": "3207:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "3196:7:39", - "nodeType": "YulIdentifier", - "src": "3196:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "3141:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3168:5:39", - "nodeType": "YulTypedName", - "src": "3168:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "3178:7:39", - "nodeType": "YulTypedName", - "src": "3178:7:39", - "type": "" - } - ], - "src": "3141:96:39" - }, - { - "body": { - "nativeSrc": "3286:79:39", - "nodeType": "YulBlock", - "src": "3286:79:39", - "statements": [ - { - "body": { - "nativeSrc": "3343:16:39", - "nodeType": "YulBlock", - "src": "3343:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3352:1:39", - "nodeType": "YulLiteral", - "src": "3352:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3355:1:39", - "nodeType": "YulLiteral", - "src": "3355:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3345:6:39", - "nodeType": "YulIdentifier", - "src": "3345:6:39" - }, - "nativeSrc": "3345:12:39", - "nodeType": "YulFunctionCall", - "src": "3345:12:39" - }, - "nativeSrc": "3345:12:39", - "nodeType": "YulExpressionStatement", - "src": "3345:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3309:5:39", - "nodeType": "YulIdentifier", - "src": "3309:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3334:5:39", - "nodeType": "YulIdentifier", - "src": "3334:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "3316:17:39", - "nodeType": "YulIdentifier", - "src": "3316:17:39" - }, - "nativeSrc": "3316:24:39", - "nodeType": "YulFunctionCall", - "src": "3316:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3306:2:39", - "nodeType": "YulIdentifier", - "src": "3306:2:39" - }, - "nativeSrc": "3306:35:39", - "nodeType": "YulFunctionCall", - "src": "3306:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3299:6:39", - "nodeType": "YulIdentifier", - "src": "3299:6:39" - }, - "nativeSrc": "3299:43:39", - "nodeType": "YulFunctionCall", - "src": "3299:43:39" - }, - "nativeSrc": "3296:63:39", - "nodeType": "YulIf", - "src": "3296:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "3243:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3279:5:39", - "nodeType": "YulTypedName", - "src": "3279:5:39", - "type": "" - } - ], - "src": "3243:122:39" - }, - { - "body": { - "nativeSrc": "3423:87:39", - "nodeType": "YulBlock", - "src": "3423:87:39", - "statements": [ - { - "nativeSrc": "3433:29:39", - "nodeType": "YulAssignment", - "src": "3433:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3455:6:39", - "nodeType": "YulIdentifier", - "src": "3455:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3442:12:39", - "nodeType": "YulIdentifier", - "src": "3442:12:39" - }, - "nativeSrc": "3442:20:39", - "nodeType": "YulFunctionCall", - "src": "3442:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "3433:5:39", - "nodeType": "YulIdentifier", - "src": "3433:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3498:5:39", - "nodeType": "YulIdentifier", - "src": "3498:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "3471:26:39", - "nodeType": "YulIdentifier", - "src": "3471:26:39" - }, - "nativeSrc": "3471:33:39", - "nodeType": "YulFunctionCall", - "src": "3471:33:39" - }, - "nativeSrc": "3471:33:39", - "nodeType": "YulExpressionStatement", - "src": "3471:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "3371:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3401:6:39", - "nodeType": "YulTypedName", - "src": "3401:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3409:3:39", - "nodeType": "YulTypedName", - "src": "3409:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "3417:5:39", - "nodeType": "YulTypedName", - "src": "3417:5:39", - "type": "" - } - ], - "src": "3371:139:39" - }, - { - "body": { - "nativeSrc": "3599:391:39", - "nodeType": "YulBlock", - "src": "3599:391:39", - "statements": [ - { - "body": { - "nativeSrc": "3645:83:39", - "nodeType": "YulBlock", - "src": "3645:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3647:77:39", - "nodeType": "YulIdentifier", - "src": "3647:77:39" - }, - "nativeSrc": "3647:79:39", - "nodeType": "YulFunctionCall", - "src": "3647:79:39" - }, - "nativeSrc": "3647:79:39", - "nodeType": "YulExpressionStatement", - "src": "3647:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3620:7:39", - "nodeType": "YulIdentifier", - "src": "3620:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3629:9:39", - "nodeType": "YulIdentifier", - "src": "3629:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3616:3:39", - "nodeType": "YulIdentifier", - "src": "3616:3:39" - }, - "nativeSrc": "3616:23:39", - "nodeType": "YulFunctionCall", - "src": "3616:23:39" - }, - { - "kind": "number", - "nativeSrc": "3641:2:39", - "nodeType": "YulLiteral", - "src": "3641:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3612:3:39", - "nodeType": "YulIdentifier", - "src": "3612:3:39" - }, - "nativeSrc": "3612:32:39", - "nodeType": "YulFunctionCall", - "src": "3612:32:39" - }, - "nativeSrc": "3609:119:39", - "nodeType": "YulIf", - "src": "3609:119:39" - }, - { - "nativeSrc": "3738:117:39", - "nodeType": "YulBlock", - "src": "3738:117:39", - "statements": [ - { - "nativeSrc": "3753:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3753:15:39", - "value": { - "kind": "number", - "nativeSrc": "3767:1:39", - "nodeType": "YulLiteral", - "src": "3767:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3757:6:39", - "nodeType": "YulTypedName", - "src": "3757:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3782:63:39", - "nodeType": "YulAssignment", - "src": "3782:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3817:9:39", - "nodeType": "YulIdentifier", - "src": "3817:9:39" - }, - { - "name": "offset", - "nativeSrc": "3828:6:39", - "nodeType": "YulIdentifier", - "src": "3828:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3813:3:39", - "nodeType": "YulIdentifier", - "src": "3813:3:39" - }, - "nativeSrc": "3813:22:39", - "nodeType": "YulFunctionCall", - "src": "3813:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3837:7:39", - "nodeType": "YulIdentifier", - "src": "3837:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "3792:20:39", - "nodeType": "YulIdentifier", - "src": "3792:20:39" - }, - "nativeSrc": "3792:53:39", - "nodeType": "YulFunctionCall", - "src": "3792:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3782:6:39", - "nodeType": "YulIdentifier", - "src": "3782:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3865:118:39", - "nodeType": "YulBlock", - "src": "3865:118:39", - "statements": [ - { - "nativeSrc": "3880:16:39", - "nodeType": "YulVariableDeclaration", - "src": "3880:16:39", - "value": { - "kind": "number", - "nativeSrc": "3894:2:39", - "nodeType": "YulLiteral", - "src": "3894:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3884:6:39", - "nodeType": "YulTypedName", - "src": "3884:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3910:63:39", - "nodeType": "YulAssignment", - "src": "3910:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3945:9:39", - "nodeType": "YulIdentifier", - "src": "3945:9:39" - }, - { - "name": "offset", - "nativeSrc": "3956:6:39", - "nodeType": "YulIdentifier", - "src": "3956:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3941:3:39", - "nodeType": "YulIdentifier", - "src": "3941:3:39" - }, - "nativeSrc": "3941:22:39", - "nodeType": "YulFunctionCall", - "src": "3941:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3965:7:39", - "nodeType": "YulIdentifier", - "src": "3965:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "3920:20:39", - "nodeType": "YulIdentifier", - "src": "3920:20:39" - }, - "nativeSrc": "3920:53:39", - "nodeType": "YulFunctionCall", - "src": "3920:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3910:6:39", - "nodeType": "YulIdentifier", - "src": "3910:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_address", - "nativeSrc": "3516:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3561:9:39", - "nodeType": "YulTypedName", - "src": "3561:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3572:7:39", - "nodeType": "YulTypedName", - "src": "3572:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3584:6:39", - "nodeType": "YulTypedName", - "src": "3584:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3592:6:39", - "nodeType": "YulTypedName", - "src": "3592:6:39", - "type": "" - } - ], - "src": "3516:474:39" - }, - { - "body": { - "nativeSrc": "4028:28:39", - "nodeType": "YulBlock", - "src": "4028:28:39", - "statements": [ - { - "nativeSrc": "4038:12:39", - "nodeType": "YulAssignment", - "src": "4038:12:39", - "value": { - "name": "value", - "nativeSrc": "4045:5:39", - "nodeType": "YulIdentifier", - "src": "4045:5:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "4038:3:39", - "nodeType": "YulIdentifier", - "src": "4038:3:39" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "3996:60:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4014:5:39", - "nodeType": "YulTypedName", - "src": "4014:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "4024:3:39", - "nodeType": "YulTypedName", - "src": "4024:3:39", - "type": "" - } - ], - "src": "3996:60:39" - }, - { - "body": { - "nativeSrc": "4122:82:39", - "nodeType": "YulBlock", - "src": "4122:82:39", - "statements": [ - { - "nativeSrc": "4132:66:39", - "nodeType": "YulAssignment", - "src": "4132:66:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4190:5:39", - "nodeType": "YulIdentifier", - "src": "4190:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "4172:17:39", - "nodeType": "YulIdentifier", - "src": "4172:17:39" - }, - "nativeSrc": "4172:24:39", - "nodeType": "YulFunctionCall", - "src": "4172:24:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "4163:8:39", - "nodeType": "YulIdentifier", - "src": "4163:8:39" - }, - "nativeSrc": "4163:34:39", - "nodeType": "YulFunctionCall", - "src": "4163:34:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "4145:17:39", - "nodeType": "YulIdentifier", - "src": "4145:17:39" - }, - "nativeSrc": "4145:53:39", - "nodeType": "YulFunctionCall", - "src": "4145:53:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "4132:9:39", - "nodeType": "YulIdentifier", - "src": "4132:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "4062:142:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4102:5:39", - "nodeType": "YulTypedName", - "src": "4102:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "4112:9:39", - "nodeType": "YulTypedName", - "src": "4112:9:39", - "type": "" - } - ], - "src": "4062:142:39" - }, - { - "body": { - "nativeSrc": "4270:66:39", - "nodeType": "YulBlock", - "src": "4270:66:39", - "statements": [ - { - "nativeSrc": "4280:50:39", - "nodeType": "YulAssignment", - "src": "4280:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4324:5:39", - "nodeType": "YulIdentifier", - "src": "4324:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "4293:30:39", - "nodeType": "YulIdentifier", - "src": "4293:30:39" - }, - "nativeSrc": "4293:37:39", - "nodeType": "YulFunctionCall", - "src": "4293:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "4280:9:39", - "nodeType": "YulIdentifier", - "src": "4280:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "4210:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4250:5:39", - "nodeType": "YulTypedName", - "src": "4250:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "4260:9:39", - "nodeType": "YulTypedName", - "src": "4260:9:39", - "type": "" - } - ], - "src": "4210:126:39" - }, - { - "body": { - "nativeSrc": "4420:66:39", - "nodeType": "YulBlock", - "src": "4420:66:39", - "statements": [ - { - "nativeSrc": "4430:50:39", - "nodeType": "YulAssignment", - "src": "4430:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4474:5:39", - "nodeType": "YulIdentifier", - "src": "4474:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "4443:30:39", - "nodeType": "YulIdentifier", - "src": "4443:30:39" - }, - "nativeSrc": "4443:37:39", - "nodeType": "YulFunctionCall", - "src": "4443:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "4430:9:39", - "nodeType": "YulIdentifier", - "src": "4430:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "4342:144:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4400:5:39", - "nodeType": "YulTypedName", - "src": "4400:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "4410:9:39", - "nodeType": "YulTypedName", - "src": "4410:9:39", - "type": "" - } - ], - "src": "4342:144:39" - }, - { - "body": { - "nativeSrc": "4575:84:39", - "nodeType": "YulBlock", - "src": "4575:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4592:3:39", - "nodeType": "YulIdentifier", - "src": "4592:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4646:5:39", - "nodeType": "YulIdentifier", - "src": "4646:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "4597:48:39", - "nodeType": "YulIdentifier", - "src": "4597:48:39" - }, - "nativeSrc": "4597:55:39", - "nodeType": "YulFunctionCall", - "src": "4597:55:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4585:6:39", - "nodeType": "YulIdentifier", - "src": "4585:6:39" - }, - "nativeSrc": "4585:68:39", - "nodeType": "YulFunctionCall", - "src": "4585:68:39" - }, - "nativeSrc": "4585:68:39", - "nodeType": "YulExpressionStatement", - "src": "4585:68:39" - } - ] - }, - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "4492:167:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4563:5:39", - "nodeType": "YulTypedName", - "src": "4563:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4570:3:39", - "nodeType": "YulTypedName", - "src": "4570:3:39", - "type": "" - } - ], - "src": "4492:167:39" - }, - { - "body": { - "nativeSrc": "4781:142:39", - "nodeType": "YulBlock", - "src": "4781:142:39", - "statements": [ - { - "nativeSrc": "4791:26:39", - "nodeType": "YulAssignment", - "src": "4791:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4803:9:39", - "nodeType": "YulIdentifier", - "src": "4803:9:39" - }, - { - "kind": "number", - "nativeSrc": "4814:2:39", - "nodeType": "YulLiteral", - "src": "4814:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4799:3:39", - "nodeType": "YulIdentifier", - "src": "4799:3:39" - }, - "nativeSrc": "4799:18:39", - "nodeType": "YulFunctionCall", - "src": "4799:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4791:4:39", - "nodeType": "YulIdentifier", - "src": "4791:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4889:6:39", - "nodeType": "YulIdentifier", - "src": "4889:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4902:9:39", - "nodeType": "YulIdentifier", - "src": "4902:9:39" - }, - { - "kind": "number", - "nativeSrc": "4913:1:39", - "nodeType": "YulLiteral", - "src": "4913:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4898:3:39", - "nodeType": "YulIdentifier", - "src": "4898:3:39" - }, - "nativeSrc": "4898:17:39", - "nodeType": "YulFunctionCall", - "src": "4898:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "4827:61:39", - "nodeType": "YulIdentifier", - "src": "4827:61:39" - }, - "nativeSrc": "4827:89:39", - "nodeType": "YulFunctionCall", - "src": "4827:89:39" - }, - "nativeSrc": "4827:89:39", - "nodeType": "YulExpressionStatement", - "src": "4827:89:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_IVerifier_$8101__to_t_address__fromStack_reversed", - "nativeSrc": "4665:258:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4753:9:39", - "nodeType": "YulTypedName", - "src": "4753:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4765:6:39", - "nodeType": "YulTypedName", - "src": "4765:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4776:4:39", - "nodeType": "YulTypedName", - "src": "4776:4:39", - "type": "" - } - ], - "src": "4665:258:39" - }, - { - "body": { - "nativeSrc": "4994:53:39", - "nodeType": "YulBlock", - "src": "4994:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5011:3:39", - "nodeType": "YulIdentifier", - "src": "5011:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5034:5:39", - "nodeType": "YulIdentifier", - "src": "5034:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "5016:17:39", - "nodeType": "YulIdentifier", - "src": "5016:17:39" - }, - "nativeSrc": "5016:24:39", - "nodeType": "YulFunctionCall", - "src": "5016:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5004:6:39", - "nodeType": "YulIdentifier", - "src": "5004:6:39" - }, - "nativeSrc": "5004:37:39", - "nodeType": "YulFunctionCall", - "src": "5004:37:39" - }, - "nativeSrc": "5004:37:39", - "nodeType": "YulExpressionStatement", - "src": "5004:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4929:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4982:5:39", - "nodeType": "YulTypedName", - "src": "4982:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4989:3:39", - "nodeType": "YulTypedName", - "src": "4989:3:39", - "type": "" - } - ], - "src": "4929:118:39" - }, - { - "body": { - "nativeSrc": "5098:32:39", - "nodeType": "YulBlock", - "src": "5098:32:39", - "statements": [ - { - "nativeSrc": "5108:16:39", - "nodeType": "YulAssignment", - "src": "5108:16:39", - "value": { - "name": "value", - "nativeSrc": "5119:5:39", - "nodeType": "YulIdentifier", - "src": "5119:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "5108:7:39", - "nodeType": "YulIdentifier", - "src": "5108:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "5053:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5080:5:39", - "nodeType": "YulTypedName", - "src": "5080:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "5090:7:39", - "nodeType": "YulTypedName", - "src": "5090:7:39", - "type": "" - } - ], - "src": "5053:77:39" - }, - { - "body": { - "nativeSrc": "5201:53:39", - "nodeType": "YulBlock", - "src": "5201:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5218:3:39", - "nodeType": "YulIdentifier", - "src": "5218:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5241:5:39", - "nodeType": "YulIdentifier", - "src": "5241:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "5223:17:39", - "nodeType": "YulIdentifier", - "src": "5223:17:39" - }, - "nativeSrc": "5223:24:39", - "nodeType": "YulFunctionCall", - "src": "5223:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5211:6:39", - "nodeType": "YulIdentifier", - "src": "5211:6:39" - }, - "nativeSrc": "5211:37:39", - "nodeType": "YulFunctionCall", - "src": "5211:37:39" - }, - "nativeSrc": "5211:37:39", - "nodeType": "YulExpressionStatement", - "src": "5211:37:39" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "5136:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5189:5:39", - "nodeType": "YulTypedName", - "src": "5189:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5196:3:39", - "nodeType": "YulTypedName", - "src": "5196:3:39", - "type": "" - } - ], - "src": "5136:118:39" - }, - { - "body": { - "nativeSrc": "5460:389:39", - "nodeType": "YulBlock", - "src": "5460:389:39", - "statements": [ - { - "nativeSrc": "5470:27:39", - "nodeType": "YulAssignment", - "src": "5470:27:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5482:9:39", - "nodeType": "YulIdentifier", - "src": "5482:9:39" - }, - { - "kind": "number", - "nativeSrc": "5493:3:39", - "nodeType": "YulLiteral", - "src": "5493:3:39", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5478:3:39", - "nodeType": "YulIdentifier", - "src": "5478:3:39" - }, - "nativeSrc": "5478:19:39", - "nodeType": "YulFunctionCall", - "src": "5478:19:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5470:4:39", - "nodeType": "YulIdentifier", - "src": "5470:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5551:6:39", - "nodeType": "YulIdentifier", - "src": "5551:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5564:9:39", - "nodeType": "YulIdentifier", - "src": "5564:9:39" - }, - { - "kind": "number", - "nativeSrc": "5575:1:39", - "nodeType": "YulLiteral", - "src": "5575:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5560:3:39", - "nodeType": "YulIdentifier", - "src": "5560:3:39" - }, - "nativeSrc": "5560:17:39", - "nodeType": "YulFunctionCall", - "src": "5560:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "5507:43:39", - "nodeType": "YulIdentifier", - "src": "5507:43:39" - }, - "nativeSrc": "5507:71:39", - "nodeType": "YulFunctionCall", - "src": "5507:71:39" - }, - "nativeSrc": "5507:71:39", - "nodeType": "YulExpressionStatement", - "src": "5507:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "5650:6:39", - "nodeType": "YulIdentifier", - "src": "5650:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5663:9:39", - "nodeType": "YulIdentifier", - "src": "5663:9:39" - }, - { - "kind": "number", - "nativeSrc": "5674:2:39", - "nodeType": "YulLiteral", - "src": "5674:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5659:3:39", - "nodeType": "YulIdentifier", - "src": "5659:3:39" - }, - "nativeSrc": "5659:18:39", - "nodeType": "YulFunctionCall", - "src": "5659:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "5588:61:39", - "nodeType": "YulIdentifier", - "src": "5588:61:39" - }, - "nativeSrc": "5588:90:39", - "nodeType": "YulFunctionCall", - "src": "5588:90:39" - }, - "nativeSrc": "5588:90:39", - "nodeType": "YulExpressionStatement", - "src": "5588:90:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "5732:6:39", - "nodeType": "YulIdentifier", - "src": "5732:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5745:9:39", - "nodeType": "YulIdentifier", - "src": "5745:9:39" - }, - { - "kind": "number", - "nativeSrc": "5756:2:39", - "nodeType": "YulLiteral", - "src": "5756:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5741:3:39", - "nodeType": "YulIdentifier", - "src": "5741:3:39" - }, - "nativeSrc": "5741:18:39", - "nodeType": "YulFunctionCall", - "src": "5741:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "5688:43:39", - "nodeType": "YulIdentifier", - "src": "5688:43:39" - }, - "nativeSrc": "5688:72:39", - "nodeType": "YulFunctionCall", - "src": "5688:72:39" - }, - "nativeSrc": "5688:72:39", - "nodeType": "YulExpressionStatement", - "src": "5688:72:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nativeSrc": "5814:6:39", - "nodeType": "YulIdentifier", - "src": "5814:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5827:9:39", - "nodeType": "YulIdentifier", - "src": "5827:9:39" - }, - { - "kind": "number", - "nativeSrc": "5838:2:39", - "nodeType": "YulLiteral", - "src": "5838:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5823:3:39", - "nodeType": "YulIdentifier", - "src": "5823:3:39" - }, - "nativeSrc": "5823:18:39", - "nodeType": "YulFunctionCall", - "src": "5823:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "5770:43:39", - "nodeType": "YulIdentifier", - "src": "5770:43:39" - }, - "nativeSrc": "5770:72:39", - "nodeType": "YulFunctionCall", - "src": "5770:72:39" - }, - "nativeSrc": "5770:72:39", - "nodeType": "YulExpressionStatement", - "src": "5770:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_contract$_IVerifier_$8101_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "5260:589:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5408:9:39", - "nodeType": "YulTypedName", - "src": "5408:9:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "5420:6:39", - "nodeType": "YulTypedName", - "src": "5420:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "5428:6:39", - "nodeType": "YulTypedName", - "src": "5428:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "5436:6:39", - "nodeType": "YulTypedName", - "src": "5436:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5444:6:39", - "nodeType": "YulTypedName", - "src": "5444:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5455:4:39", - "nodeType": "YulTypedName", - "src": "5455:4:39", - "type": "" - } - ], - "src": "5260:589:39" - }, - { - "body": { - "nativeSrc": "5921:263:39", - "nodeType": "YulBlock", - "src": "5921:263:39", - "statements": [ - { - "body": { - "nativeSrc": "5967:83:39", - "nodeType": "YulBlock", - "src": "5967:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "5969:77:39", - "nodeType": "YulIdentifier", - "src": "5969:77:39" - }, - "nativeSrc": "5969:79:39", - "nodeType": "YulFunctionCall", - "src": "5969:79:39" - }, - "nativeSrc": "5969:79:39", - "nodeType": "YulExpressionStatement", - "src": "5969:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "5942:7:39", - "nodeType": "YulIdentifier", - "src": "5942:7:39" - }, - { - "name": "headStart", - "nativeSrc": "5951:9:39", - "nodeType": "YulIdentifier", - "src": "5951:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5938:3:39", - "nodeType": "YulIdentifier", - "src": "5938:3:39" - }, - "nativeSrc": "5938:23:39", - "nodeType": "YulFunctionCall", - "src": "5938:23:39" - }, - { - "kind": "number", - "nativeSrc": "5963:2:39", - "nodeType": "YulLiteral", - "src": "5963:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "5934:3:39", - "nodeType": "YulIdentifier", - "src": "5934:3:39" - }, - "nativeSrc": "5934:32:39", - "nodeType": "YulFunctionCall", - "src": "5934:32:39" - }, - "nativeSrc": "5931:119:39", - "nodeType": "YulIf", - "src": "5931:119:39" - }, - { - "nativeSrc": "6060:117:39", - "nodeType": "YulBlock", - "src": "6060:117:39", - "statements": [ - { - "nativeSrc": "6075:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6075:15:39", - "value": { - "kind": "number", - "nativeSrc": "6089:1:39", - "nodeType": "YulLiteral", - "src": "6089:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6079:6:39", - "nodeType": "YulTypedName", - "src": "6079:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6104:63:39", - "nodeType": "YulAssignment", - "src": "6104:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6139:9:39", - "nodeType": "YulIdentifier", - "src": "6139:9:39" - }, - { - "name": "offset", - "nativeSrc": "6150:6:39", - "nodeType": "YulIdentifier", - "src": "6150:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6135:3:39", - "nodeType": "YulIdentifier", - "src": "6135:3:39" - }, - "nativeSrc": "6135:22:39", - "nodeType": "YulFunctionCall", - "src": "6135:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6159:7:39", - "nodeType": "YulIdentifier", - "src": "6159:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6114:20:39", - "nodeType": "YulIdentifier", - "src": "6114:20:39" - }, - "nativeSrc": "6114:53:39", - "nodeType": "YulFunctionCall", - "src": "6114:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6104:6:39", - "nodeType": "YulIdentifier", - "src": "6104:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "5855:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5891:9:39", - "nodeType": "YulTypedName", - "src": "5891:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "5902:7:39", - "nodeType": "YulTypedName", - "src": "5902:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "5914:6:39", - "nodeType": "YulTypedName", - "src": "5914:6:39", - "type": "" - } - ], - "src": "5855:329:39" - }, - { - "body": { - "nativeSrc": "6232:78:39", - "nodeType": "YulBlock", - "src": "6232:78:39", - "statements": [ - { - "body": { - "nativeSrc": "6288:16:39", - "nodeType": "YulBlock", - "src": "6288:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6297:1:39", - "nodeType": "YulLiteral", - "src": "6297:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6300:1:39", - "nodeType": "YulLiteral", - "src": "6300:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6290:6:39", - "nodeType": "YulIdentifier", - "src": "6290:6:39" - }, - "nativeSrc": "6290:12:39", - "nodeType": "YulFunctionCall", - "src": "6290:12:39" - }, - "nativeSrc": "6290:12:39", - "nodeType": "YulExpressionStatement", - "src": "6290:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "6255:5:39", - "nodeType": "YulIdentifier", - "src": "6255:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "6279:5:39", - "nodeType": "YulIdentifier", - "src": "6279:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "6262:16:39", - "nodeType": "YulIdentifier", - "src": "6262:16:39" - }, - "nativeSrc": "6262:23:39", - "nodeType": "YulFunctionCall", - "src": "6262:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "6252:2:39", - "nodeType": "YulIdentifier", - "src": "6252:2:39" - }, - "nativeSrc": "6252:34:39", - "nodeType": "YulFunctionCall", - "src": "6252:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "6245:6:39", - "nodeType": "YulIdentifier", - "src": "6245:6:39" - }, - "nativeSrc": "6245:42:39", - "nodeType": "YulFunctionCall", - "src": "6245:42:39" - }, - "nativeSrc": "6242:62:39", - "nodeType": "YulIf", - "src": "6242:62:39" - } - ] - }, - "name": "validator_revert_t_uint48", - "nativeSrc": "6190:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "6225:5:39", - "nodeType": "YulTypedName", - "src": "6225:5:39", - "type": "" - } - ], - "src": "6190:120:39" - }, - { - "body": { - "nativeSrc": "6367:86:39", - "nodeType": "YulBlock", - "src": "6367:86:39", - "statements": [ - { - "nativeSrc": "6377:29:39", - "nodeType": "YulAssignment", - "src": "6377:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "6399:6:39", - "nodeType": "YulIdentifier", - "src": "6399:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "6386:12:39", - "nodeType": "YulIdentifier", - "src": "6386:12:39" - }, - "nativeSrc": "6386:20:39", - "nodeType": "YulFunctionCall", - "src": "6386:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "6377:5:39", - "nodeType": "YulIdentifier", - "src": "6377:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6441:5:39", - "nodeType": "YulIdentifier", - "src": "6441:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint48", - "nativeSrc": "6415:25:39", - "nodeType": "YulIdentifier", - "src": "6415:25:39" - }, - "nativeSrc": "6415:32:39", - "nodeType": "YulFunctionCall", - "src": "6415:32:39" - }, - "nativeSrc": "6415:32:39", - "nodeType": "YulExpressionStatement", - "src": "6415:32:39" - } - ] - }, - "name": "abi_decode_t_uint48", - "nativeSrc": "6316:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "6345:6:39", - "nodeType": "YulTypedName", - "src": "6345:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "6353:3:39", - "nodeType": "YulTypedName", - "src": "6353:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "6361:5:39", - "nodeType": "YulTypedName", - "src": "6361:5:39", - "type": "" - } - ], - "src": "6316:137:39" - }, - { - "body": { - "nativeSrc": "6524:262:39", - "nodeType": "YulBlock", - "src": "6524:262:39", - "statements": [ - { - "body": { - "nativeSrc": "6570:83:39", - "nodeType": "YulBlock", - "src": "6570:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "6572:77:39", - "nodeType": "YulIdentifier", - "src": "6572:77:39" - }, - "nativeSrc": "6572:79:39", - "nodeType": "YulFunctionCall", - "src": "6572:79:39" - }, - "nativeSrc": "6572:79:39", - "nodeType": "YulExpressionStatement", - "src": "6572:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6545:7:39", - "nodeType": "YulIdentifier", - "src": "6545:7:39" - }, - { - "name": "headStart", - "nativeSrc": "6554:9:39", - "nodeType": "YulIdentifier", - "src": "6554:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6541:3:39", - "nodeType": "YulIdentifier", - "src": "6541:3:39" - }, - "nativeSrc": "6541:23:39", - "nodeType": "YulFunctionCall", - "src": "6541:23:39" - }, - { - "kind": "number", - "nativeSrc": "6566:2:39", - "nodeType": "YulLiteral", - "src": "6566:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6537:3:39", - "nodeType": "YulIdentifier", - "src": "6537:3:39" - }, - "nativeSrc": "6537:32:39", - "nodeType": "YulFunctionCall", - "src": "6537:32:39" - }, - "nativeSrc": "6534:119:39", - "nodeType": "YulIf", - "src": "6534:119:39" - }, - { - "nativeSrc": "6663:116:39", - "nodeType": "YulBlock", - "src": "6663:116:39", - "statements": [ - { - "nativeSrc": "6678:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6678:15:39", - "value": { - "kind": "number", - "nativeSrc": "6692:1:39", - "nodeType": "YulLiteral", - "src": "6692:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6682:6:39", - "nodeType": "YulTypedName", - "src": "6682:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6707:62:39", - "nodeType": "YulAssignment", - "src": "6707:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6741:9:39", - "nodeType": "YulIdentifier", - "src": "6741:9:39" - }, - { - "name": "offset", - "nativeSrc": "6752:6:39", - "nodeType": "YulIdentifier", - "src": "6752:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6737:3:39", - "nodeType": "YulIdentifier", - "src": "6737:3:39" - }, - "nativeSrc": "6737:22:39", - "nodeType": "YulFunctionCall", - "src": "6737:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6761:7:39", - "nodeType": "YulIdentifier", - "src": "6761:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint48", - "nativeSrc": "6717:19:39", - "nodeType": "YulIdentifier", - "src": "6717:19:39" - }, - "nativeSrc": "6717:52:39", - "nodeType": "YulFunctionCall", - "src": "6717:52:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6707:6:39", - "nodeType": "YulIdentifier", - "src": "6707:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint48", - "nativeSrc": "6459:327:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6494:9:39", - "nodeType": "YulTypedName", - "src": "6494:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "6505:7:39", - "nodeType": "YulTypedName", - "src": "6505:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "6517:6:39", - "nodeType": "YulTypedName", - "src": "6517:6:39", - "type": "" - } - ], - "src": "6459:327:39" - }, - { - "body": { - "nativeSrc": "6873:66:39", - "nodeType": "YulBlock", - "src": "6873:66:39", - "statements": [ - { - "nativeSrc": "6883:50:39", - "nodeType": "YulAssignment", - "src": "6883:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6927:5:39", - "nodeType": "YulIdentifier", - "src": "6927:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "6896:30:39", - "nodeType": "YulIdentifier", - "src": "6896:30:39" - }, - "nativeSrc": "6896:37:39", - "nodeType": "YulFunctionCall", - "src": "6896:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "6883:9:39", - "nodeType": "YulIdentifier", - "src": "6883:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "6792:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "6853:5:39", - "nodeType": "YulTypedName", - "src": "6853:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "6863:9:39", - "nodeType": "YulTypedName", - "src": "6863:9:39", - "type": "" - } - ], - "src": "6792:147:39" - }, - { - "body": { - "nativeSrc": "7031:87:39", - "nodeType": "YulBlock", - "src": "7031:87:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7048:3:39", - "nodeType": "YulIdentifier", - "src": "7048:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "7105:5:39", - "nodeType": "YulIdentifier", - "src": "7105:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "7053:51:39", - "nodeType": "YulIdentifier", - "src": "7053:51:39" - }, - "nativeSrc": "7053:58:39", - "nodeType": "YulFunctionCall", - "src": "7053:58:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7041:6:39", - "nodeType": "YulIdentifier", - "src": "7041:6:39" - }, - "nativeSrc": "7041:71:39", - "nodeType": "YulFunctionCall", - "src": "7041:71:39" - }, - "nativeSrc": "7041:71:39", - "nodeType": "YulExpressionStatement", - "src": "7041:71:39" - } - ] - }, - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "6945:173:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7019:5:39", - "nodeType": "YulTypedName", - "src": "7019:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "7026:3:39", - "nodeType": "YulTypedName", - "src": "7026:3:39", - "type": "" - } - ], - "src": "6945:173:39" - }, - { - "body": { - "nativeSrc": "7243:145:39", - "nodeType": "YulBlock", - "src": "7243:145:39", - "statements": [ - { - "nativeSrc": "7253:26:39", - "nodeType": "YulAssignment", - "src": "7253:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7265:9:39", - "nodeType": "YulIdentifier", - "src": "7265:9:39" - }, - { - "kind": "number", - "nativeSrc": "7276:2:39", - "nodeType": "YulLiteral", - "src": "7276:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7261:3:39", - "nodeType": "YulIdentifier", - "src": "7261:3:39" - }, - "nativeSrc": "7261:18:39", - "nodeType": "YulFunctionCall", - "src": "7261:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7253:4:39", - "nodeType": "YulIdentifier", - "src": "7253:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7354:6:39", - "nodeType": "YulIdentifier", - "src": "7354:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7367:9:39", - "nodeType": "YulIdentifier", - "src": "7367:9:39" - }, - { - "kind": "number", - "nativeSrc": "7378:1:39", - "nodeType": "YulLiteral", - "src": "7378:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7363:3:39", - "nodeType": "YulIdentifier", - "src": "7363:3:39" - }, - "nativeSrc": "7363:17:39", - "nodeType": "YulFunctionCall", - "src": "7363:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "7289:64:39", - "nodeType": "YulIdentifier", - "src": "7289:64:39" - }, - "nativeSrc": "7289:92:39", - "nodeType": "YulFunctionCall", - "src": "7289:92:39" - }, - "nativeSrc": "7289:92:39", - "nodeType": "YulExpressionStatement", - "src": "7289:92:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed", - "nativeSrc": "7124:264:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7215:9:39", - "nodeType": "YulTypedName", - "src": "7215:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7227:6:39", - "nodeType": "YulTypedName", - "src": "7227:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7238:4:39", - "nodeType": "YulTypedName", - "src": "7238:4:39", - "type": "" - } - ], - "src": "7124:264:39" - }, - { - "body": { - "nativeSrc": "7492:124:39", - "nodeType": "YulBlock", - "src": "7492:124:39", - "statements": [ - { - "nativeSrc": "7502:26:39", - "nodeType": "YulAssignment", - "src": "7502:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7514:9:39", - "nodeType": "YulIdentifier", - "src": "7514:9:39" - }, - { - "kind": "number", - "nativeSrc": "7525:2:39", - "nodeType": "YulLiteral", - "src": "7525:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7510:3:39", - "nodeType": "YulIdentifier", - "src": "7510:3:39" - }, - "nativeSrc": "7510:18:39", - "nodeType": "YulFunctionCall", - "src": "7510:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7502:4:39", - "nodeType": "YulIdentifier", - "src": "7502:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7582:6:39", - "nodeType": "YulIdentifier", - "src": "7582:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7595:9:39", - "nodeType": "YulIdentifier", - "src": "7595:9:39" - }, - { - "kind": "number", - "nativeSrc": "7606:1:39", - "nodeType": "YulLiteral", - "src": "7606:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7591:3:39", - "nodeType": "YulIdentifier", - "src": "7591:3:39" - }, - "nativeSrc": "7591:17:39", - "nodeType": "YulFunctionCall", - "src": "7591:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "7538:43:39", - "nodeType": "YulIdentifier", - "src": "7538:43:39" - }, - "nativeSrc": "7538:71:39", - "nodeType": "YulFunctionCall", - "src": "7538:71:39" - }, - "nativeSrc": "7538:71:39", - "nodeType": "YulExpressionStatement", - "src": "7538:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "7394:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7464:9:39", - "nodeType": "YulTypedName", - "src": "7464:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7476:6:39", - "nodeType": "YulTypedName", - "src": "7476:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7487:4:39", - "nodeType": "YulTypedName", - "src": "7487:4:39", - "type": "" - } - ], - "src": "7394:222:39" - }, - { - "body": { - "nativeSrc": "7744:202:39", - "nodeType": "YulBlock", - "src": "7744:202:39", - "statements": [ - { - "nativeSrc": "7754:26:39", - "nodeType": "YulAssignment", - "src": "7754:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7766:9:39", - "nodeType": "YulIdentifier", - "src": "7766:9:39" - }, - { - "kind": "number", - "nativeSrc": "7777:2:39", - "nodeType": "YulLiteral", - "src": "7777:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7762:3:39", - "nodeType": "YulIdentifier", - "src": "7762:3:39" - }, - "nativeSrc": "7762:18:39", - "nodeType": "YulFunctionCall", - "src": "7762:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7754:4:39", - "nodeType": "YulIdentifier", - "src": "7754:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7832:6:39", - "nodeType": "YulIdentifier", - "src": "7832:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7845:9:39", - "nodeType": "YulIdentifier", - "src": "7845:9:39" - }, - { - "kind": "number", - "nativeSrc": "7856:1:39", - "nodeType": "YulLiteral", - "src": "7856:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7841:3:39", - "nodeType": "YulIdentifier", - "src": "7841:3:39" - }, - "nativeSrc": "7841:17:39", - "nodeType": "YulFunctionCall", - "src": "7841:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "7790:41:39", - "nodeType": "YulIdentifier", - "src": "7790:41:39" - }, - "nativeSrc": "7790:69:39", - "nodeType": "YulFunctionCall", - "src": "7790:69:39" - }, - "nativeSrc": "7790:69:39", - "nodeType": "YulExpressionStatement", - "src": "7790:69:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "7911:6:39", - "nodeType": "YulIdentifier", - "src": "7911:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7924:9:39", - "nodeType": "YulIdentifier", - "src": "7924:9:39" - }, - { - "kind": "number", - "nativeSrc": "7935:2:39", - "nodeType": "YulLiteral", - "src": "7935:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7920:3:39", - "nodeType": "YulIdentifier", - "src": "7920:3:39" - }, - "nativeSrc": "7920:18:39", - "nodeType": "YulFunctionCall", - "src": "7920:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "7869:41:39", - "nodeType": "YulIdentifier", - "src": "7869:41:39" - }, - "nativeSrc": "7869:70:39", - "nodeType": "YulFunctionCall", - "src": "7869:70:39" - }, - "nativeSrc": "7869:70:39", - "nodeType": "YulExpressionStatement", - "src": "7869:70:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed", - "nativeSrc": "7622:324:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7708:9:39", - "nodeType": "YulTypedName", - "src": "7708:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7720:6:39", - "nodeType": "YulTypedName", - "src": "7720:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7728:6:39", - "nodeType": "YulTypedName", - "src": "7728:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7739:4:39", - "nodeType": "YulTypedName", - "src": "7739:4:39", - "type": "" - } - ], - "src": "7622:324:39" - }, - { - "body": { - "nativeSrc": "8050:124:39", - "nodeType": "YulBlock", - "src": "8050:124:39", - "statements": [ - { - "nativeSrc": "8060:26:39", - "nodeType": "YulAssignment", - "src": "8060:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8072:9:39", - "nodeType": "YulIdentifier", - "src": "8072:9:39" - }, - { - "kind": "number", - "nativeSrc": "8083:2:39", - "nodeType": "YulLiteral", - "src": "8083:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8068:3:39", - "nodeType": "YulIdentifier", - "src": "8068:3:39" - }, - "nativeSrc": "8068:18:39", - "nodeType": "YulFunctionCall", - "src": "8068:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8060:4:39", - "nodeType": "YulIdentifier", - "src": "8060:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8140:6:39", - "nodeType": "YulIdentifier", - "src": "8140:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8153:9:39", - "nodeType": "YulIdentifier", - "src": "8153:9:39" - }, - { - "kind": "number", - "nativeSrc": "8164:1:39", - "nodeType": "YulLiteral", - "src": "8164:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8149:3:39", - "nodeType": "YulIdentifier", - "src": "8149:3:39" - }, - "nativeSrc": "8149:17:39", - "nodeType": "YulFunctionCall", - "src": "8149:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "8096:43:39", - "nodeType": "YulIdentifier", - "src": "8096:43:39" - }, - "nativeSrc": "8096:71:39", - "nodeType": "YulFunctionCall", - "src": "8096:71:39" - }, - "nativeSrc": "8096:71:39", - "nodeType": "YulExpressionStatement", - "src": "8096:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "7952:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8022:9:39", - "nodeType": "YulTypedName", - "src": "8022:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8034:6:39", - "nodeType": "YulTypedName", - "src": "8034:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8045:4:39", - "nodeType": "YulTypedName", - "src": "8045:4:39", - "type": "" - } - ], - "src": "7952:222:39" - }, - { - "body": { - "nativeSrc": "8243:51:39", - "nodeType": "YulBlock", - "src": "8243:51:39", - "statements": [ - { - "nativeSrc": "8253:35:39", - "nodeType": "YulAssignment", - "src": "8253:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8282:5:39", - "nodeType": "YulIdentifier", - "src": "8282:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "8264:17:39", - "nodeType": "YulIdentifier", - "src": "8264:17:39" - }, - "nativeSrc": "8264:24:39", - "nodeType": "YulFunctionCall", - "src": "8264:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "8253:7:39", - "nodeType": "YulIdentifier", - "src": "8253:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "8180:114:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8225:5:39", - "nodeType": "YulTypedName", - "src": "8225:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "8235:7:39", - "nodeType": "YulTypedName", - "src": "8235:7:39", - "type": "" - } - ], - "src": "8180:114:39" - }, - { - "body": { - "nativeSrc": "8361:97:39", - "nodeType": "YulBlock", - "src": "8361:97:39", - "statements": [ - { - "body": { - "nativeSrc": "8436:16:39", - "nodeType": "YulBlock", - "src": "8436:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8445:1:39", - "nodeType": "YulLiteral", - "src": "8445:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8448:1:39", - "nodeType": "YulLiteral", - "src": "8448:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "8438:6:39", - "nodeType": "YulIdentifier", - "src": "8438:6:39" - }, - "nativeSrc": "8438:12:39", - "nodeType": "YulFunctionCall", - "src": "8438:12:39" - }, - "nativeSrc": "8438:12:39", - "nodeType": "YulExpressionStatement", - "src": "8438:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "8384:5:39", - "nodeType": "YulIdentifier", - "src": "8384:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "8427:5:39", - "nodeType": "YulIdentifier", - "src": "8427:5:39" - } - ], - "functionName": { - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "8391:35:39", - "nodeType": "YulIdentifier", - "src": "8391:35:39" - }, - "nativeSrc": "8391:42:39", - "nodeType": "YulFunctionCall", - "src": "8391:42:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "8381:2:39", - "nodeType": "YulIdentifier", - "src": "8381:2:39" - }, - "nativeSrc": "8381:53:39", - "nodeType": "YulFunctionCall", - "src": "8381:53:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "8374:6:39", - "nodeType": "YulIdentifier", - "src": "8374:6:39" - }, - "nativeSrc": "8374:61:39", - "nodeType": "YulFunctionCall", - "src": "8374:61:39" - }, - "nativeSrc": "8371:81:39", - "nodeType": "YulIf", - "src": "8371:81:39" - } - ] - }, - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "8300:158:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8354:5:39", - "nodeType": "YulTypedName", - "src": "8354:5:39", - "type": "" - } - ], - "src": "8300:158:39" - }, - { - "body": { - "nativeSrc": "8534:105:39", - "nodeType": "YulBlock", - "src": "8534:105:39", - "statements": [ - { - "nativeSrc": "8544:29:39", - "nodeType": "YulAssignment", - "src": "8544:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "8566:6:39", - "nodeType": "YulIdentifier", - "src": "8566:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "8553:12:39", - "nodeType": "YulIdentifier", - "src": "8553:12:39" - }, - "nativeSrc": "8553:20:39", - "nodeType": "YulFunctionCall", - "src": "8553:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "8544:5:39", - "nodeType": "YulIdentifier", - "src": "8544:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8627:5:39", - "nodeType": "YulIdentifier", - "src": "8627:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "8582:44:39", - "nodeType": "YulIdentifier", - "src": "8582:44:39" - }, - "nativeSrc": "8582:51:39", - "nodeType": "YulFunctionCall", - "src": "8582:51:39" - }, - "nativeSrc": "8582:51:39", - "nodeType": "YulExpressionStatement", - "src": "8582:51:39" - } - ] - }, - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "8464:175:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "8512:6:39", - "nodeType": "YulTypedName", - "src": "8512:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "8520:3:39", - "nodeType": "YulTypedName", - "src": "8520:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "8528:5:39", - "nodeType": "YulTypedName", - "src": "8528:5:39", - "type": "" - } - ], - "src": "8464:175:39" - }, - { - "body": { - "nativeSrc": "8746:409:39", - "nodeType": "YulBlock", - "src": "8746:409:39", - "statements": [ - { - "body": { - "nativeSrc": "8792:83:39", - "nodeType": "YulBlock", - "src": "8792:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "8794:77:39", - "nodeType": "YulIdentifier", - "src": "8794:77:39" - }, - "nativeSrc": "8794:79:39", - "nodeType": "YulFunctionCall", - "src": "8794:79:39" - }, - "nativeSrc": "8794:79:39", - "nodeType": "YulExpressionStatement", - "src": "8794:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "8767:7:39", - "nodeType": "YulIdentifier", - "src": "8767:7:39" - }, - { - "name": "headStart", - "nativeSrc": "8776:9:39", - "nodeType": "YulIdentifier", - "src": "8776:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "8763:3:39", - "nodeType": "YulIdentifier", - "src": "8763:3:39" - }, - "nativeSrc": "8763:23:39", - "nodeType": "YulFunctionCall", - "src": "8763:23:39" - }, - { - "kind": "number", - "nativeSrc": "8788:2:39", - "nodeType": "YulLiteral", - "src": "8788:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "8759:3:39", - "nodeType": "YulIdentifier", - "src": "8759:3:39" - }, - "nativeSrc": "8759:32:39", - "nodeType": "YulFunctionCall", - "src": "8759:32:39" - }, - "nativeSrc": "8756:119:39", - "nodeType": "YulIf", - "src": "8756:119:39" - }, - { - "nativeSrc": "8885:117:39", - "nodeType": "YulBlock", - "src": "8885:117:39", - "statements": [ - { - "nativeSrc": "8900:15:39", - "nodeType": "YulVariableDeclaration", - "src": "8900:15:39", - "value": { - "kind": "number", - "nativeSrc": "8914:1:39", - "nodeType": "YulLiteral", - "src": "8914:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8904:6:39", - "nodeType": "YulTypedName", - "src": "8904:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8929:63:39", - "nodeType": "YulAssignment", - "src": "8929:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8964:9:39", - "nodeType": "YulIdentifier", - "src": "8964:9:39" - }, - { - "name": "offset", - "nativeSrc": "8975:6:39", - "nodeType": "YulIdentifier", - "src": "8975:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8960:3:39", - "nodeType": "YulIdentifier", - "src": "8960:3:39" - }, - "nativeSrc": "8960:22:39", - "nodeType": "YulFunctionCall", - "src": "8960:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8984:7:39", - "nodeType": "YulIdentifier", - "src": "8984:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "8939:20:39", - "nodeType": "YulIdentifier", - "src": "8939:20:39" - }, - "nativeSrc": "8939:53:39", - "nodeType": "YulFunctionCall", - "src": "8939:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "8929:6:39", - "nodeType": "YulIdentifier", - "src": "8929:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "9012:136:39", - "nodeType": "YulBlock", - "src": "9012:136:39", - "statements": [ - { - "nativeSrc": "9027:16:39", - "nodeType": "YulVariableDeclaration", - "src": "9027:16:39", - "value": { - "kind": "number", - "nativeSrc": "9041:2:39", - "nodeType": "YulLiteral", - "src": "9041:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "9031:6:39", - "nodeType": "YulTypedName", - "src": "9031:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "9057:81:39", - "nodeType": "YulAssignment", - "src": "9057:81:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9110:9:39", - "nodeType": "YulIdentifier", - "src": "9110:9:39" - }, - { - "name": "offset", - "nativeSrc": "9121:6:39", - "nodeType": "YulIdentifier", - "src": "9121:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9106:3:39", - "nodeType": "YulIdentifier", - "src": "9106:3:39" - }, - "nativeSrc": "9106:22:39", - "nodeType": "YulFunctionCall", - "src": "9106:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "9130:7:39", - "nodeType": "YulIdentifier", - "src": "9130:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "9067:38:39", - "nodeType": "YulIdentifier", - "src": "9067:38:39" - }, - "nativeSrc": "9067:71:39", - "nodeType": "YulFunctionCall", - "src": "9067:71:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "9057:6:39", - "nodeType": "YulIdentifier", - "src": "9057:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8101", - "nativeSrc": "8645:510:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8708:9:39", - "nodeType": "YulTypedName", - "src": "8708:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "8719:7:39", - "nodeType": "YulTypedName", - "src": "8719:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "8731:6:39", - "nodeType": "YulTypedName", - "src": "8731:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8739:6:39", - "nodeType": "YulTypedName", - "src": "8739:6:39", - "type": "" - } - ], - "src": "8645:510:39" - }, - { - "body": { - "nativeSrc": "9244:391:39", - "nodeType": "YulBlock", - "src": "9244:391:39", - "statements": [ - { - "body": { - "nativeSrc": "9290:83:39", - "nodeType": "YulBlock", - "src": "9290:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "9292:77:39", - "nodeType": "YulIdentifier", - "src": "9292:77:39" - }, - "nativeSrc": "9292:79:39", - "nodeType": "YulFunctionCall", - "src": "9292:79:39" - }, - "nativeSrc": "9292:79:39", - "nodeType": "YulExpressionStatement", - "src": "9292:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "9265:7:39", - "nodeType": "YulIdentifier", - "src": "9265:7:39" - }, - { - "name": "headStart", - "nativeSrc": "9274:9:39", - "nodeType": "YulIdentifier", - "src": "9274:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "9261:3:39", - "nodeType": "YulIdentifier", - "src": "9261:3:39" - }, - "nativeSrc": "9261:23:39", - "nodeType": "YulFunctionCall", - "src": "9261:23:39" - }, - { - "kind": "number", - "nativeSrc": "9286:2:39", - "nodeType": "YulLiteral", - "src": "9286:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "9257:3:39", - "nodeType": "YulIdentifier", - "src": "9257:3:39" - }, - "nativeSrc": "9257:32:39", - "nodeType": "YulFunctionCall", - "src": "9257:32:39" - }, - "nativeSrc": "9254:119:39", - "nodeType": "YulIf", - "src": "9254:119:39" - }, - { - "nativeSrc": "9383:117:39", - "nodeType": "YulBlock", - "src": "9383:117:39", - "statements": [ - { - "nativeSrc": "9398:15:39", - "nodeType": "YulVariableDeclaration", - "src": "9398:15:39", - "value": { - "kind": "number", - "nativeSrc": "9412:1:39", - "nodeType": "YulLiteral", - "src": "9412:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "9402:6:39", - "nodeType": "YulTypedName", - "src": "9402:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "9427:63:39", - "nodeType": "YulAssignment", - "src": "9427:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9462:9:39", - "nodeType": "YulIdentifier", - "src": "9462:9:39" - }, - { - "name": "offset", - "nativeSrc": "9473:6:39", - "nodeType": "YulIdentifier", - "src": "9473:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9458:3:39", - "nodeType": "YulIdentifier", - "src": "9458:3:39" - }, - "nativeSrc": "9458:22:39", - "nodeType": "YulFunctionCall", - "src": "9458:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "9482:7:39", - "nodeType": "YulIdentifier", - "src": "9482:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "9437:20:39", - "nodeType": "YulIdentifier", - "src": "9437:20:39" - }, - "nativeSrc": "9437:53:39", - "nodeType": "YulFunctionCall", - "src": "9437:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "9427:6:39", - "nodeType": "YulIdentifier", - "src": "9427:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "9510:118:39", - "nodeType": "YulBlock", - "src": "9510:118:39", - "statements": [ - { - "nativeSrc": "9525:16:39", - "nodeType": "YulVariableDeclaration", - "src": "9525:16:39", - "value": { - "kind": "number", - "nativeSrc": "9539:2:39", - "nodeType": "YulLiteral", - "src": "9539:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "9529:6:39", - "nodeType": "YulTypedName", - "src": "9529:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "9555:63:39", - "nodeType": "YulAssignment", - "src": "9555:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9590:9:39", - "nodeType": "YulIdentifier", - "src": "9590:9:39" - }, - { - "name": "offset", - "nativeSrc": "9601:6:39", - "nodeType": "YulIdentifier", - "src": "9601:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9586:3:39", - "nodeType": "YulIdentifier", - "src": "9586:3:39" - }, - "nativeSrc": "9586:22:39", - "nodeType": "YulFunctionCall", - "src": "9586:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "9610:7:39", - "nodeType": "YulIdentifier", - "src": "9610:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "9565:20:39", - "nodeType": "YulIdentifier", - "src": "9565:20:39" - }, - "nativeSrc": "9565:53:39", - "nodeType": "YulFunctionCall", - "src": "9565:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "9555:6:39", - "nodeType": "YulIdentifier", - "src": "9555:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32", - "nativeSrc": "9161:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9206:9:39", - "nodeType": "YulTypedName", - "src": "9206:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "9217:7:39", - "nodeType": "YulTypedName", - "src": "9217:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "9229:6:39", - "nodeType": "YulTypedName", - "src": "9229:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "9237:6:39", - "nodeType": "YulTypedName", - "src": "9237:6:39", - "type": "" - } - ], - "src": "9161:474:39" - }, - { - "body": { - "nativeSrc": "9765:204:39", - "nodeType": "YulBlock", - "src": "9765:204:39", - "statements": [ - { - "nativeSrc": "9775:26:39", - "nodeType": "YulAssignment", - "src": "9775:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9787:9:39", - "nodeType": "YulIdentifier", - "src": "9787:9:39" - }, - { - "kind": "number", - "nativeSrc": "9798:2:39", - "nodeType": "YulLiteral", - "src": "9798:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9783:3:39", - "nodeType": "YulIdentifier", - "src": "9783:3:39" - }, - "nativeSrc": "9783:18:39", - "nodeType": "YulFunctionCall", - "src": "9783:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "9775:4:39", - "nodeType": "YulIdentifier", - "src": "9775:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "9855:6:39", - "nodeType": "YulIdentifier", - "src": "9855:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9868:9:39", - "nodeType": "YulIdentifier", - "src": "9868:9:39" - }, - { - "kind": "number", - "nativeSrc": "9879:1:39", - "nodeType": "YulLiteral", - "src": "9879:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9864:3:39", - "nodeType": "YulIdentifier", - "src": "9864:3:39" - }, - "nativeSrc": "9864:17:39", - "nodeType": "YulFunctionCall", - "src": "9864:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "9811:43:39", - "nodeType": "YulIdentifier", - "src": "9811:43:39" - }, - "nativeSrc": "9811:71:39", - "nodeType": "YulFunctionCall", - "src": "9811:71:39" - }, - "nativeSrc": "9811:71:39", - "nodeType": "YulExpressionStatement", - "src": "9811:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "9934:6:39", - "nodeType": "YulIdentifier", - "src": "9934:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9947:9:39", - "nodeType": "YulIdentifier", - "src": "9947:9:39" - }, - { - "kind": "number", - "nativeSrc": "9958:2:39", - "nodeType": "YulLiteral", - "src": "9958:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9943:3:39", - "nodeType": "YulIdentifier", - "src": "9943:3:39" - }, - "nativeSrc": "9943:18:39", - "nodeType": "YulFunctionCall", - "src": "9943:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "9892:41:39", - "nodeType": "YulIdentifier", - "src": "9892:41:39" - }, - "nativeSrc": "9892:70:39", - "nodeType": "YulFunctionCall", - "src": "9892:70:39" - }, - "nativeSrc": "9892:70:39", - "nodeType": "YulExpressionStatement", - "src": "9892:70:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed", - "nativeSrc": "9641:328:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9729:9:39", - "nodeType": "YulTypedName", - "src": "9729:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "9741:6:39", - "nodeType": "YulTypedName", - "src": "9741:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "9749:6:39", - "nodeType": "YulTypedName", - "src": "9749:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "9760:4:39", - "nodeType": "YulTypedName", - "src": "9760:4:39", - "type": "" - } - ], - "src": "9641:328:39" - }, - { - "body": { - "nativeSrc": "10093:537:39", - "nodeType": "YulBlock", - "src": "10093:537:39", - "statements": [ - { - "body": { - "nativeSrc": "10139:83:39", - "nodeType": "YulBlock", - "src": "10139:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "10141:77:39", - "nodeType": "YulIdentifier", - "src": "10141:77:39" - }, - "nativeSrc": "10141:79:39", - "nodeType": "YulFunctionCall", - "src": "10141:79:39" - }, - "nativeSrc": "10141:79:39", - "nodeType": "YulExpressionStatement", - "src": "10141:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "10114:7:39", - "nodeType": "YulIdentifier", - "src": "10114:7:39" - }, - { - "name": "headStart", - "nativeSrc": "10123:9:39", - "nodeType": "YulIdentifier", - "src": "10123:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10110:3:39", - "nodeType": "YulIdentifier", - "src": "10110:3:39" - }, - "nativeSrc": "10110:23:39", - "nodeType": "YulFunctionCall", - "src": "10110:23:39" - }, - { - "kind": "number", - "nativeSrc": "10135:2:39", - "nodeType": "YulLiteral", - "src": "10135:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "10106:3:39", - "nodeType": "YulIdentifier", - "src": "10106:3:39" - }, - "nativeSrc": "10106:32:39", - "nodeType": "YulFunctionCall", - "src": "10106:32:39" - }, - "nativeSrc": "10103:119:39", - "nodeType": "YulIf", - "src": "10103:119:39" - }, - { - "nativeSrc": "10232:117:39", - "nodeType": "YulBlock", - "src": "10232:117:39", - "statements": [ - { - "nativeSrc": "10247:15:39", - "nodeType": "YulVariableDeclaration", - "src": "10247:15:39", - "value": { - "kind": "number", - "nativeSrc": "10261:1:39", - "nodeType": "YulLiteral", - "src": "10261:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "10251:6:39", - "nodeType": "YulTypedName", - "src": "10251:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "10276:63:39", - "nodeType": "YulAssignment", - "src": "10276:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10311:9:39", - "nodeType": "YulIdentifier", - "src": "10311:9:39" - }, - { - "name": "offset", - "nativeSrc": "10322:6:39", - "nodeType": "YulIdentifier", - "src": "10322:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10307:3:39", - "nodeType": "YulIdentifier", - "src": "10307:3:39" - }, - "nativeSrc": "10307:22:39", - "nodeType": "YulFunctionCall", - "src": "10307:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "10331:7:39", - "nodeType": "YulIdentifier", - "src": "10331:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "10286:20:39", - "nodeType": "YulIdentifier", - "src": "10286:20:39" - }, - "nativeSrc": "10286:53:39", - "nodeType": "YulFunctionCall", - "src": "10286:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "10276:6:39", - "nodeType": "YulIdentifier", - "src": "10276:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "10359:118:39", - "nodeType": "YulBlock", - "src": "10359:118:39", - "statements": [ - { - "nativeSrc": "10374:16:39", - "nodeType": "YulVariableDeclaration", - "src": "10374:16:39", - "value": { - "kind": "number", - "nativeSrc": "10388:2:39", - "nodeType": "YulLiteral", - "src": "10388:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "10378:6:39", - "nodeType": "YulTypedName", - "src": "10378:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "10404:63:39", - "nodeType": "YulAssignment", - "src": "10404:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10439:9:39", - "nodeType": "YulIdentifier", - "src": "10439:9:39" - }, - { - "name": "offset", - "nativeSrc": "10450:6:39", - "nodeType": "YulIdentifier", - "src": "10450:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10435:3:39", - "nodeType": "YulIdentifier", - "src": "10435:3:39" - }, - "nativeSrc": "10435:22:39", - "nodeType": "YulFunctionCall", - "src": "10435:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "10459:7:39", - "nodeType": "YulIdentifier", - "src": "10459:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "10414:20:39", - "nodeType": "YulIdentifier", - "src": "10414:20:39" - }, - "nativeSrc": "10414:53:39", - "nodeType": "YulFunctionCall", - "src": "10414:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "10404:6:39", - "nodeType": "YulIdentifier", - "src": "10404:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "10487:136:39", - "nodeType": "YulBlock", - "src": "10487:136:39", - "statements": [ - { - "nativeSrc": "10502:16:39", - "nodeType": "YulVariableDeclaration", - "src": "10502:16:39", - "value": { - "kind": "number", - "nativeSrc": "10516:2:39", - "nodeType": "YulLiteral", - "src": "10516:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "10506:6:39", - "nodeType": "YulTypedName", - "src": "10506:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "10532:81:39", - "nodeType": "YulAssignment", - "src": "10532:81:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10585:9:39", - "nodeType": "YulIdentifier", - "src": "10585:9:39" - }, - { - "name": "offset", - "nativeSrc": "10596:6:39", - "nodeType": "YulIdentifier", - "src": "10596:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10581:3:39", - "nodeType": "YulIdentifier", - "src": "10581:3:39" - }, - "nativeSrc": "10581:22:39", - "nodeType": "YulFunctionCall", - "src": "10581:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "10605:7:39", - "nodeType": "YulIdentifier", - "src": "10605:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "10542:38:39", - "nodeType": "YulIdentifier", - "src": "10542:38:39" - }, - "nativeSrc": "10542:71:39", - "nodeType": "YulFunctionCall", - "src": "10542:71:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "10532:6:39", - "nodeType": "YulIdentifier", - "src": "10532:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8101", - "nativeSrc": "9975:655:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10047:9:39", - "nodeType": "YulTypedName", - "src": "10047:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "10058:7:39", - "nodeType": "YulTypedName", - "src": "10058:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "10070:6:39", - "nodeType": "YulTypedName", - "src": "10070:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "10078:6:39", - "nodeType": "YulTypedName", - "src": "10078:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "10086:6:39", - "nodeType": "YulTypedName", - "src": "10086:6:39", - "type": "" - } - ], - "src": "9975:655:39" - }, - { - "body": { - "nativeSrc": "10664:152:39", - "nodeType": "YulBlock", - "src": "10664:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "10681:1:39", - "nodeType": "YulLiteral", - "src": "10681:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "10684:77:39", - "nodeType": "YulLiteral", - "src": "10684:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10674:6:39", - "nodeType": "YulIdentifier", - "src": "10674:6:39" - }, - "nativeSrc": "10674:88:39", - "nodeType": "YulFunctionCall", - "src": "10674:88:39" - }, - "nativeSrc": "10674:88:39", - "nodeType": "YulExpressionStatement", - "src": "10674:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "10778:1:39", - "nodeType": "YulLiteral", - "src": "10778:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "10781:4:39", - "nodeType": "YulLiteral", - "src": "10781:4:39", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10771:6:39", - "nodeType": "YulIdentifier", - "src": "10771:6:39" - }, - "nativeSrc": "10771:15:39", - "nodeType": "YulFunctionCall", - "src": "10771:15:39" - }, - "nativeSrc": "10771:15:39", - "nodeType": "YulExpressionStatement", - "src": "10771:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "10802:1:39", - "nodeType": "YulLiteral", - "src": "10802:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "10805:4:39", - "nodeType": "YulLiteral", - "src": "10805:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "10795:6:39", - "nodeType": "YulIdentifier", - "src": "10795:6:39" - }, - "nativeSrc": "10795:15:39", - "nodeType": "YulFunctionCall", - "src": "10795:15:39" - }, - "nativeSrc": "10795:15:39", - "nodeType": "YulExpressionStatement", - "src": "10795:15:39" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "10636:180:39", - "nodeType": "YulFunctionDefinition", - "src": "10636:180:39" - }, - { - "body": { - "nativeSrc": "10865:158:39", - "nodeType": "YulBlock", - "src": "10865:158:39", - "statements": [ - { - "nativeSrc": "10875:24:39", - "nodeType": "YulAssignment", - "src": "10875:24:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "10897:1:39", - "nodeType": "YulIdentifier", - "src": "10897:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "10880:16:39", - "nodeType": "YulIdentifier", - "src": "10880:16:39" - }, - "nativeSrc": "10880:19:39", - "nodeType": "YulFunctionCall", - "src": "10880:19:39" - }, - "variableNames": [ - { - "name": "x", - "nativeSrc": "10875:1:39", - "nodeType": "YulIdentifier", - "src": "10875:1:39" - } - ] - }, - { - "nativeSrc": "10908:24:39", - "nodeType": "YulAssignment", - "src": "10908:24:39", - "value": { - "arguments": [ - { - "name": "y", - "nativeSrc": "10930:1:39", - "nodeType": "YulIdentifier", - "src": "10930:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "10913:16:39", - "nodeType": "YulIdentifier", - "src": "10913:16:39" - }, - "nativeSrc": "10913:19:39", - "nodeType": "YulFunctionCall", - "src": "10913:19:39" - }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "10908:1:39", - "nodeType": "YulIdentifier", - "src": "10908:1:39" - } - ] - }, - { - "nativeSrc": "10941:16:39", - "nodeType": "YulAssignment", - "src": "10941:16:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "10952:1:39", - "nodeType": "YulIdentifier", - "src": "10952:1:39" - }, - { - "name": "y", - "nativeSrc": "10955:1:39", - "nodeType": "YulIdentifier", - "src": "10955:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10948:3:39", - "nodeType": "YulIdentifier", - "src": "10948:3:39" - }, - "nativeSrc": "10948:9:39", - "nodeType": "YulFunctionCall", - "src": "10948:9:39" - }, - "variableNames": [ - { - "name": "sum", - "nativeSrc": "10941:3:39", - "nodeType": "YulIdentifier", - "src": "10941:3:39" - } - ] - }, - { - "body": { - "nativeSrc": "10994:22:39", - "nodeType": "YulBlock", - "src": "10994:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "10996:16:39", - "nodeType": "YulIdentifier", - "src": "10996:16:39" - }, - "nativeSrc": "10996:18:39", - "nodeType": "YulFunctionCall", - "src": "10996:18:39" - }, - "nativeSrc": "10996:18:39", - "nodeType": "YulExpressionStatement", - "src": "10996:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "sum", - "nativeSrc": "10973:3:39", - "nodeType": "YulIdentifier", - "src": "10973:3:39" - }, - { - "kind": "number", - "nativeSrc": "10978:14:39", - "nodeType": "YulLiteral", - "src": "10978:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "10970:2:39", - "nodeType": "YulIdentifier", - "src": "10970:2:39" - }, - "nativeSrc": "10970:23:39", - "nodeType": "YulFunctionCall", - "src": "10970:23:39" - }, - "nativeSrc": "10967:49:39", - "nodeType": "YulIf", - "src": "10967:49:39" - } - ] - }, - "name": "checked_add_t_uint48", - "nativeSrc": "10822:201:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "10852:1:39", - "nodeType": "YulTypedName", - "src": "10852:1:39", - "type": "" - }, - { - "name": "y", - "nativeSrc": "10855:1:39", - "nodeType": "YulTypedName", - "src": "10855:1:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nativeSrc": "10861:3:39", - "nodeType": "YulTypedName", - "src": "10861:3:39", - "type": "" - } - ], - "src": "10822:201:39" - }, - { - "body": { - "nativeSrc": "11092:80:39", - "nodeType": "YulBlock", - "src": "11092:80:39", - "statements": [ - { - "nativeSrc": "11102:22:39", - "nodeType": "YulAssignment", - "src": "11102:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "11117:6:39", - "nodeType": "YulIdentifier", - "src": "11117:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "11111:5:39", - "nodeType": "YulIdentifier", - "src": "11111:5:39" - }, - "nativeSrc": "11111:13:39", - "nodeType": "YulFunctionCall", - "src": "11111:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "11102:5:39", - "nodeType": "YulIdentifier", - "src": "11102:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "11160:5:39", - "nodeType": "YulIdentifier", - "src": "11160:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "11133:26:39", - "nodeType": "YulIdentifier", - "src": "11133:26:39" - }, - "nativeSrc": "11133:33:39", - "nodeType": "YulFunctionCall", - "src": "11133:33:39" - }, - "nativeSrc": "11133:33:39", - "nodeType": "YulExpressionStatement", - "src": "11133:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "11029:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "11070:6:39", - "nodeType": "YulTypedName", - "src": "11070:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "11078:3:39", - "nodeType": "YulTypedName", - "src": "11078:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "11086:5:39", - "nodeType": "YulTypedName", - "src": "11086:5:39", - "type": "" - } - ], - "src": "11029:143:39" - }, - { - "body": { - "nativeSrc": "11255:274:39", - "nodeType": "YulBlock", - "src": "11255:274:39", - "statements": [ - { - "body": { - "nativeSrc": "11301:83:39", - "nodeType": "YulBlock", - "src": "11301:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "11303:77:39", - "nodeType": "YulIdentifier", - "src": "11303:77:39" - }, - "nativeSrc": "11303:79:39", - "nodeType": "YulFunctionCall", - "src": "11303:79:39" - }, - "nativeSrc": "11303:79:39", - "nodeType": "YulExpressionStatement", - "src": "11303:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "11276:7:39", - "nodeType": "YulIdentifier", - "src": "11276:7:39" - }, - { - "name": "headStart", - "nativeSrc": "11285:9:39", - "nodeType": "YulIdentifier", - "src": "11285:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11272:3:39", - "nodeType": "YulIdentifier", - "src": "11272:3:39" - }, - "nativeSrc": "11272:23:39", - "nodeType": "YulFunctionCall", - "src": "11272:23:39" - }, - { - "kind": "number", - "nativeSrc": "11297:2:39", - "nodeType": "YulLiteral", - "src": "11297:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "11268:3:39", - "nodeType": "YulIdentifier", - "src": "11268:3:39" - }, - "nativeSrc": "11268:32:39", - "nodeType": "YulFunctionCall", - "src": "11268:32:39" - }, - "nativeSrc": "11265:119:39", - "nodeType": "YulIf", - "src": "11265:119:39" - }, - { - "nativeSrc": "11394:128:39", - "nodeType": "YulBlock", - "src": "11394:128:39", - "statements": [ - { - "nativeSrc": "11409:15:39", - "nodeType": "YulVariableDeclaration", - "src": "11409:15:39", - "value": { - "kind": "number", - "nativeSrc": "11423:1:39", - "nodeType": "YulLiteral", - "src": "11423:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11413:6:39", - "nodeType": "YulTypedName", - "src": "11413:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "11438:74:39", - "nodeType": "YulAssignment", - "src": "11438:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11484:9:39", - "nodeType": "YulIdentifier", - "src": "11484:9:39" - }, - { - "name": "offset", - "nativeSrc": "11495:6:39", - "nodeType": "YulIdentifier", - "src": "11495:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11480:3:39", - "nodeType": "YulIdentifier", - "src": "11480:3:39" - }, - "nativeSrc": "11480:22:39", - "nodeType": "YulFunctionCall", - "src": "11480:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "11504:7:39", - "nodeType": "YulIdentifier", - "src": "11504:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "11448:31:39", - "nodeType": "YulIdentifier", - "src": "11448:31:39" - }, - "nativeSrc": "11448:64:39", - "nodeType": "YulFunctionCall", - "src": "11448:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "11438:6:39", - "nodeType": "YulIdentifier", - "src": "11438:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "11178:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11225:9:39", - "nodeType": "YulTypedName", - "src": "11225:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "11236:7:39", - "nodeType": "YulTypedName", - "src": "11236:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "11248:6:39", - "nodeType": "YulTypedName", - "src": "11248:6:39", - "type": "" - } - ], - "src": "11178:351:39" - }, - { - "body": { - "nativeSrc": "11661:206:39", - "nodeType": "YulBlock", - "src": "11661:206:39", - "statements": [ - { - "nativeSrc": "11671:26:39", - "nodeType": "YulAssignment", - "src": "11671:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11683:9:39", - "nodeType": "YulIdentifier", - "src": "11683:9:39" - }, - { - "kind": "number", - "nativeSrc": "11694:2:39", - "nodeType": "YulLiteral", - "src": "11694:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11679:3:39", - "nodeType": "YulIdentifier", - "src": "11679:3:39" - }, - "nativeSrc": "11679:18:39", - "nodeType": "YulFunctionCall", - "src": "11679:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "11671:4:39", - "nodeType": "YulIdentifier", - "src": "11671:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "11751:6:39", - "nodeType": "YulIdentifier", - "src": "11751:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11764:9:39", - "nodeType": "YulIdentifier", - "src": "11764:9:39" - }, - { - "kind": "number", - "nativeSrc": "11775:1:39", - "nodeType": "YulLiteral", - "src": "11775:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11760:3:39", - "nodeType": "YulIdentifier", - "src": "11760:3:39" - }, - "nativeSrc": "11760:17:39", - "nodeType": "YulFunctionCall", - "src": "11760:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "11707:43:39", - "nodeType": "YulIdentifier", - "src": "11707:43:39" - }, - "nativeSrc": "11707:71:39", - "nodeType": "YulFunctionCall", - "src": "11707:71:39" - }, - "nativeSrc": "11707:71:39", - "nodeType": "YulExpressionStatement", - "src": "11707:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "11832:6:39", - "nodeType": "YulIdentifier", - "src": "11832:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11845:9:39", - "nodeType": "YulIdentifier", - "src": "11845:9:39" - }, - { - "kind": "number", - "nativeSrc": "11856:2:39", - "nodeType": "YulLiteral", - "src": "11856:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11841:3:39", - "nodeType": "YulIdentifier", - "src": "11841:3:39" - }, - "nativeSrc": "11841:18:39", - "nodeType": "YulFunctionCall", - "src": "11841:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "11788:43:39", - "nodeType": "YulIdentifier", - "src": "11788:43:39" - }, - "nativeSrc": "11788:72:39", - "nodeType": "YulFunctionCall", - "src": "11788:72:39" - }, - "nativeSrc": "11788:72:39", - "nodeType": "YulExpressionStatement", - "src": "11788:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "11535:332:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11625:9:39", - "nodeType": "YulTypedName", - "src": "11625:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "11637:6:39", - "nodeType": "YulTypedName", - "src": "11637:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "11645:6:39", - "nodeType": "YulTypedName", - "src": "11645:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "11656:4:39", - "nodeType": "YulTypedName", - "src": "11656:4:39", - "type": "" - } - ], - "src": "11535:332:39" - }, - { - "body": { - "nativeSrc": "11927:32:39", - "nodeType": "YulBlock", - "src": "11927:32:39", - "statements": [ - { - "nativeSrc": "11937:16:39", - "nodeType": "YulAssignment", - "src": "11937:16:39", - "value": { - "name": "value", - "nativeSrc": "11948:5:39", - "nodeType": "YulIdentifier", - "src": "11948:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "11937:7:39", - "nodeType": "YulIdentifier", - "src": "11937:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_rational_48_by_1", - "nativeSrc": "11873:86:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "11909:5:39", - "nodeType": "YulTypedName", - "src": "11909:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "11919:7:39", - "nodeType": "YulTypedName", - "src": "11919:7:39", - "type": "" - } - ], - "src": "11873:86:39" - }, - { - "body": { - "nativeSrc": "12008:43:39", - "nodeType": "YulBlock", - "src": "12008:43:39", - "statements": [ - { - "nativeSrc": "12018:27:39", - "nodeType": "YulAssignment", - "src": "12018:27:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "12033:5:39", - "nodeType": "YulIdentifier", - "src": "12033:5:39" - }, - { - "kind": "number", - "nativeSrc": "12040:4:39", - "nodeType": "YulLiteral", - "src": "12040:4:39", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "12029:3:39", - "nodeType": "YulIdentifier", - "src": "12029:3:39" - }, - "nativeSrc": "12029:16:39", - "nodeType": "YulFunctionCall", - "src": "12029:16:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "12018:7:39", - "nodeType": "YulIdentifier", - "src": "12018:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint8", - "nativeSrc": "11965:86:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "11990:5:39", - "nodeType": "YulTypedName", - "src": "11990:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "12000:7:39", - "nodeType": "YulTypedName", - "src": "12000:7:39", - "type": "" - } - ], - "src": "11965:86:39" - }, - { - "body": { - "nativeSrc": "12124:89:39", - "nodeType": "YulBlock", - "src": "12124:89:39", - "statements": [ - { - "nativeSrc": "12134:73:39", - "nodeType": "YulAssignment", - "src": "12134:73:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "12199:5:39", - "nodeType": "YulIdentifier", - "src": "12199:5:39" - } - ], - "functionName": { - "name": "cleanup_t_rational_48_by_1", - "nativeSrc": "12172:26:39", - "nodeType": "YulIdentifier", - "src": "12172:26:39" - }, - "nativeSrc": "12172:33:39", - "nodeType": "YulFunctionCall", - "src": "12172:33:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "12163:8:39", - "nodeType": "YulIdentifier", - "src": "12163:8:39" - }, - "nativeSrc": "12163:43:39", - "nodeType": "YulFunctionCall", - "src": "12163:43:39" - } - ], - "functionName": { - "name": "cleanup_t_uint8", - "nativeSrc": "12147:15:39", - "nodeType": "YulIdentifier", - "src": "12147:15:39" - }, - "nativeSrc": "12147:60:39", - "nodeType": "YulFunctionCall", - "src": "12147:60:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "12134:9:39", - "nodeType": "YulIdentifier", - "src": "12134:9:39" - } - ] - } - ] - }, - "name": "convert_t_rational_48_by_1_to_t_uint8", - "nativeSrc": "12057:156:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "12104:5:39", - "nodeType": "YulTypedName", - "src": "12104:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "12114:9:39", - "nodeType": "YulTypedName", - "src": "12114:9:39", - "type": "" - } - ], - "src": "12057:156:39" - }, - { - "body": { - "nativeSrc": "12291:73:39", - "nodeType": "YulBlock", - "src": "12291:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "12308:3:39", - "nodeType": "YulIdentifier", - "src": "12308:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "12351:5:39", - "nodeType": "YulIdentifier", - "src": "12351:5:39" - } - ], - "functionName": { - "name": "convert_t_rational_48_by_1_to_t_uint8", - "nativeSrc": "12313:37:39", - "nodeType": "YulIdentifier", - "src": "12313:37:39" - }, - "nativeSrc": "12313:44:39", - "nodeType": "YulFunctionCall", - "src": "12313:44:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12301:6:39", - "nodeType": "YulIdentifier", - "src": "12301:6:39" - }, - "nativeSrc": "12301:57:39", - "nodeType": "YulFunctionCall", - "src": "12301:57:39" - }, - "nativeSrc": "12301:57:39", - "nodeType": "YulExpressionStatement", - "src": "12301:57:39" - } - ] - }, - "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", - "nativeSrc": "12219:145:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "12279:5:39", - "nodeType": "YulTypedName", - "src": "12279:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "12286:3:39", - "nodeType": "YulTypedName", - "src": "12286:3:39", - "type": "" - } - ], - "src": "12219:145:39" - }, - { - "body": { - "nativeSrc": "12503:213:39", - "nodeType": "YulBlock", - "src": "12503:213:39", - "statements": [ - { - "nativeSrc": "12513:26:39", - "nodeType": "YulAssignment", - "src": "12513:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12525:9:39", - "nodeType": "YulIdentifier", - "src": "12525:9:39" - }, - { - "kind": "number", - "nativeSrc": "12536:2:39", - "nodeType": "YulLiteral", - "src": "12536:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12521:3:39", - "nodeType": "YulIdentifier", - "src": "12521:3:39" - }, - "nativeSrc": "12521:18:39", - "nodeType": "YulFunctionCall", - "src": "12521:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "12513:4:39", - "nodeType": "YulIdentifier", - "src": "12513:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "12600:6:39", - "nodeType": "YulIdentifier", - "src": "12600:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12613:9:39", - "nodeType": "YulIdentifier", - "src": "12613:9:39" - }, - { - "kind": "number", - "nativeSrc": "12624:1:39", - "nodeType": "YulLiteral", - "src": "12624:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12609:3:39", - "nodeType": "YulIdentifier", - "src": "12609:3:39" - }, - "nativeSrc": "12609:17:39", - "nodeType": "YulFunctionCall", - "src": "12609:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", - "nativeSrc": "12549:50:39", - "nodeType": "YulIdentifier", - "src": "12549:50:39" - }, - "nativeSrc": "12549:78:39", - "nodeType": "YulFunctionCall", - "src": "12549:78:39" - }, - "nativeSrc": "12549:78:39", - "nodeType": "YulExpressionStatement", - "src": "12549:78:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "12681:6:39", - "nodeType": "YulIdentifier", - "src": "12681:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12694:9:39", - "nodeType": "YulIdentifier", - "src": "12694:9:39" - }, - { - "kind": "number", - "nativeSrc": "12705:2:39", - "nodeType": "YulLiteral", - "src": "12705:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12690:3:39", - "nodeType": "YulIdentifier", - "src": "12690:3:39" - }, - "nativeSrc": "12690:18:39", - "nodeType": "YulFunctionCall", - "src": "12690:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "12637:43:39", - "nodeType": "YulIdentifier", - "src": "12637:43:39" - }, - "nativeSrc": "12637:72:39", - "nodeType": "YulFunctionCall", - "src": "12637:72:39" - }, - "nativeSrc": "12637:72:39", - "nodeType": "YulExpressionStatement", - "src": "12637:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed", - "nativeSrc": "12370:346:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "12467:9:39", - "nodeType": "YulTypedName", - "src": "12467:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "12479:6:39", - "nodeType": "YulTypedName", - "src": "12479:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "12487:6:39", - "nodeType": "YulTypedName", - "src": "12487:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "12498:4:39", - "nodeType": "YulTypedName", - "src": "12498:4:39", - "type": "" - } - ], - "src": "12370:346:39" - }, - { - "body": { - "nativeSrc": "12766:160:39", - "nodeType": "YulBlock", - "src": "12766:160:39", - "statements": [ - { - "nativeSrc": "12776:24:39", - "nodeType": "YulAssignment", - "src": "12776:24:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "12798:1:39", - "nodeType": "YulIdentifier", - "src": "12798:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "12781:16:39", - "nodeType": "YulIdentifier", - "src": "12781:16:39" - }, - "nativeSrc": "12781:19:39", - "nodeType": "YulFunctionCall", - "src": "12781:19:39" - }, - "variableNames": [ - { - "name": "x", - "nativeSrc": "12776:1:39", - "nodeType": "YulIdentifier", - "src": "12776:1:39" - } - ] - }, - { - "nativeSrc": "12809:24:39", - "nodeType": "YulAssignment", - "src": "12809:24:39", - "value": { - "arguments": [ - { - "name": "y", - "nativeSrc": "12831:1:39", - "nodeType": "YulIdentifier", - "src": "12831:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "12814:16:39", - "nodeType": "YulIdentifier", - "src": "12814:16:39" - }, - "nativeSrc": "12814:19:39", - "nodeType": "YulFunctionCall", - "src": "12814:19:39" - }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "12809:1:39", - "nodeType": "YulIdentifier", - "src": "12809:1:39" - } - ] - }, - { - "nativeSrc": "12842:17:39", - "nodeType": "YulAssignment", - "src": "12842:17:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "12854:1:39", - "nodeType": "YulIdentifier", - "src": "12854:1:39" - }, - { - "name": "y", - "nativeSrc": "12857:1:39", - "nodeType": "YulIdentifier", - "src": "12857:1:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "12850:3:39", - "nodeType": "YulIdentifier", - "src": "12850:3:39" - }, - "nativeSrc": "12850:9:39", - "nodeType": "YulFunctionCall", - "src": "12850:9:39" - }, - "variableNames": [ - { - "name": "diff", - "nativeSrc": "12842:4:39", - "nodeType": "YulIdentifier", - "src": "12842:4:39" - } - ] - }, - { - "body": { - "nativeSrc": "12897:22:39", - "nodeType": "YulBlock", - "src": "12897:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "12899:16:39", - "nodeType": "YulIdentifier", - "src": "12899:16:39" - }, - "nativeSrc": "12899:18:39", - "nodeType": "YulFunctionCall", - "src": "12899:18:39" - }, - "nativeSrc": "12899:18:39", - "nodeType": "YulExpressionStatement", - "src": "12899:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "diff", - "nativeSrc": "12875:4:39", - "nodeType": "YulIdentifier", - "src": "12875:4:39" - }, - { - "kind": "number", - "nativeSrc": "12881:14:39", - "nodeType": "YulLiteral", - "src": "12881:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "12872:2:39", - "nodeType": "YulIdentifier", - "src": "12872:2:39" - }, - "nativeSrc": "12872:24:39", - "nodeType": "YulFunctionCall", - "src": "12872:24:39" - }, - "nativeSrc": "12869:50:39", - "nodeType": "YulIf", - "src": "12869:50:39" - } - ] - }, - "name": "checked_sub_t_uint48", - "nativeSrc": "12722:204:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "12752:1:39", - "nodeType": "YulTypedName", - "src": "12752:1:39", - "type": "" - }, - { - "name": "y", - "nativeSrc": "12755:1:39", - "nodeType": "YulTypedName", - "src": "12755:1:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "diff", - "nativeSrc": "12761:4:39", - "nodeType": "YulTypedName", - "src": "12761:4:39", - "type": "" - } - ], - "src": "12722:204:39" - } - ] - }, - "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_$8101_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$8101_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IVerifier_$8101__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IVerifier_$8101_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_$8101_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_$8101_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_$7736_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7736_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7736_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_$8101(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$8101(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$8101(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$8101(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IVerifier_$8101(value)\n }\n\n function abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8101(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_$8101(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_$8101(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_$8101(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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "7147": [ - { - "length": 32, - "start": 2340 - }, - { - "length": 32, - "start": 4442 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ccb565b6105ff565b6040516102279190611d13565b60405180910390f35b610238610679565b6040516102459190611d4f565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611da0565b61069c565b60405161027f9190611ddc565b60405180910390f35b6102a2600480360381019061029d9190611e55565b6106bb565b005b6102be60048036038101906102b99190611e55565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611da0565b610827565b6040516102f19190611ef4565b60405180910390f35b610314600480360381019061030f9190611da0565b610867565b6040516103249493929190611f37565b60405180910390f35b6103356108d7565b6040516103429190611d13565b60405180910390f35b61036560048036038101906103609190611f7c565b6108ee565b005b610381600480360381019061037c9190611fd5565b610908565b005b61038b610922565b6040516103989190612023565b60405180910390f35b6103bb60048036038101906103b69190611e55565b610946565b6040516103c89190611d13565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061203e565b60405180910390f35b6104016109e6565b60405161040e919061203e565b60405180910390f35b610431600480360381019061042c9190611e55565b6109f5565b60405161043e9190611d13565b60405180910390f35b61044f610a5f565b60405161045d929190612059565b60405180910390f35b61046e610abf565b60405161047b9190611ddc565b60405180910390f35b61049e60048036038101906104999190611da0565b610ac6565b6040516104ab9190612082565b60405180910390f35b6104ce60048036038101906104c991906120db565b610ae6565b005b6104ea60048036038101906104e5919061211b565b610b09565b005b6104f4610b17565b6040516105019190611ddc565b60405180910390f35b610512610b3b565b60405161051f9190611d4f565b60405180910390f35b610530610ba9565b005b61053a610c3f565b60405161054892919061215b565b60405180910390f35b61056b60048036038101906105669190611da0565b610c82565b604051610578919061203e565b60405180910390f35b61059b60048036038101906105969190611e55565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612184565b610d24565b005b6105cb610d3d565b6040516105d89190611ddc565b60405180910390f35b6105e9610d61565b6040516105f69190611ddc565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d4f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061203e565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061203e565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b6110119190612206565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d4f565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d9190612206565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612059565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061203e565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611ddc565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612255565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611243929190612282565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061203e565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d4f565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c4929190612282565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122f3565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b2919061231c565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061203e565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000611c408284108484611c48565b905092915050565b6000611c5384611c62565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ca881611c73565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b600060208284031215611ce157611ce0611c6e565b5b6000611cef84828501611cb6565b91505092915050565b60008115159050919050565b611d0d81611cf8565b82525050565b6000602082019050611d286000830184611d04565b92915050565b600065ffffffffffff82169050919050565b611d4981611d2e565b82525050565b6000602082019050611d646000830184611d40565b92915050565b6000819050919050565b611d7d81611d6a565b8114611d8857600080fd5b50565b600081359050611d9a81611d74565b92915050565b600060208284031215611db657611db5611c6e565b5b6000611dc484828501611d8b565b91505092915050565b611dd681611d6a565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e2282611df7565b9050919050565b611e3281611e17565b8114611e3d57600080fd5b50565b600081359050611e4f81611e29565b92915050565b60008060408385031215611e6c57611e6b611c6e565b5b6000611e7a85828601611d8b565b9250506020611e8b85828601611e40565b9150509250929050565b6000819050919050565b6000611eba611eb5611eb084611df7565b611e95565b611df7565b9050919050565b6000611ecc82611e9f565b9050919050565b6000611ede82611ec1565b9050919050565b611eee81611ed3565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b611f1881611e17565b82525050565b6000819050919050565b611f3181611f1e565b82525050565b6000608082019050611f4c6000830187611f0f565b611f596020830186611ee5565b611f666040830185611f28565b611f736060830184611f28565b95945050505050565b600060208284031215611f9257611f91611c6e565b5b6000611fa084828501611e40565b91505092915050565b611fb281611d2e565b8114611fbd57600080fd5b50565b600081359050611fcf81611fa9565b92915050565b600060208284031215611feb57611fea611c6e565b5b6000611ff984828501611fc0565b91505092915050565b600061200d82611ec1565b9050919050565b61201d81612002565b82525050565b60006020820190506120386000830184612014565b92915050565b60006020820190506120536000830184611f0f565b92915050565b600060408201905061206e6000830185611d40565b61207b6020830184611d40565b9392505050565b60006020820190506120976000830184611f28565b92915050565b60006120a882611e17565b9050919050565b6120b88161209d565b81146120c357600080fd5b50565b6000813590506120d5816120af565b92915050565b600080604083850312156120f2576120f1611c6e565b5b600061210085828601611d8b565b9250506020612111858286016120c6565b9150509250929050565b6000806040838503121561213257612131611c6e565b5b600061214085828601611e40565b925050602061215185828601611d8b565b9150509250929050565b60006040820190506121706000830185611f0f565b61217d6020830184611d40565b9392505050565b60008060006060848603121561219d5761219c611c6e565b5b60006121ab86828701611e40565b93505060206121bc86828701611d8b565b92505060406121cd868287016120c6565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061221182611d2e565b915061221c83611d2e565b9250828201905065ffffffffffff81111561223a576122396121d7565b5b92915050565b60008151905061224f81611e29565b92915050565b60006020828403121561226b5761226a611c6e565b5b600061227984828501612240565b91505092915050565b60006040820190506122976000830185611f0f565b6122a46020830184611dcd565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122dd6122d86122d3846122ab565b611e95565b6122b5565b9050919050565b6122ed816122c2565b82525050565b600060408201905061230860008301856122e4565b6123156020830184611f28565b9392505050565b600061232782611d2e565b915061233283611d2e565b9250828203905065ffffffffffff8111156123505761234f6121d7565b5b9291505056fea26469706673582212208d9faa5a557b2963a1f0927d9241c63c1ae66f5d48267732b4a8678b6cd45e3b64736f6c634300081c0033", - "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 0x1CCB JUMP JUMPDEST PUSH2 0x5FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x227 SWAP2 SWAP1 PUSH2 0x1D13 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 0x1D4F 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 0x1DA0 JUMP JUMPDEST PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1E55 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x1E55 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 0x1DA0 JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0x1EF4 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 0x1DA0 JUMP JUMPDEST PUSH2 0x867 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F37 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 0x1D13 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 0x1F7C JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x381 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x1FD5 JUMP JUMPDEST PUSH2 0x908 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x38B PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x398 SWAP2 SWAP1 PUSH2 0x2023 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 0x1E55 JUMP JUMPDEST PUSH2 0x946 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x1D13 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 0x203E 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 0x203E 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 0x1E55 JUMP JUMPDEST PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x1D13 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 0x2059 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 0x1DDC 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 0x1DA0 JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x2082 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 0x20DB JUMP JUMPDEST PUSH2 0xAE6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x211B JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F4 PUSH2 0xB17 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x501 SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1D4F 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 0x215B 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 0x1DA0 JUMP JUMPDEST PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x203E 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 0x1E55 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 0x2184 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5CB PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D8 SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1DDC 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 0x1D4F 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 0x203E 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 0x203E 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 0x2206 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 0x1D4F 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 0x2206 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 0x2059 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 0x203E 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 0x1DDC 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 0x2255 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 0x2282 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 0x203E 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 0x1D4F 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 0x2282 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 0x22F3 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 0x231C 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 0x203E 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 PUSH2 0x1C40 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1C48 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C53 DUP5 PUSH2 0x1C62 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CA8 DUP2 PUSH2 0x1C73 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CC5 DUP2 PUSH2 0x1C9F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE1 JUMPI PUSH2 0x1CE0 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CEF DUP5 DUP3 DUP6 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D0D DUP2 PUSH2 0x1CF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D28 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D04 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D49 DUP2 PUSH2 0x1D2E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D64 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D7D DUP2 PUSH2 0x1D6A JUMP JUMPDEST DUP2 EQ PUSH2 0x1D88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D9A DUP2 PUSH2 0x1D74 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DB6 JUMPI PUSH2 0x1DB5 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DC4 DUP5 DUP3 DUP6 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1DD6 DUP2 PUSH2 0x1D6A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DF1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DCD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E22 DUP3 PUSH2 0x1DF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E32 DUP2 PUSH2 0x1E17 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E4F DUP2 PUSH2 0x1E29 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E6C JUMPI PUSH2 0x1E6B PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7A DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E8B DUP6 DUP3 DUP7 ADD PUSH2 0x1E40 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 0x1EBA PUSH2 0x1EB5 PUSH2 0x1EB0 DUP5 PUSH2 0x1DF7 JUMP JUMPDEST PUSH2 0x1E95 JUMP JUMPDEST PUSH2 0x1DF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1ECC DUP3 PUSH2 0x1E9F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EDE DUP3 PUSH2 0x1EC1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EEE DUP2 PUSH2 0x1ED3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F09 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EE5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1F18 DUP2 PUSH2 0x1E17 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F31 DUP2 PUSH2 0x1F1E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1F4C PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x1F59 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EE5 JUMP JUMPDEST PUSH2 0x1F66 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1F28 JUMP JUMPDEST PUSH2 0x1F73 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F92 JUMPI PUSH2 0x1F91 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FA0 DUP5 DUP3 DUP6 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1FB2 DUP2 PUSH2 0x1D2E JUMP JUMPDEST DUP2 EQ PUSH2 0x1FBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FCF DUP2 PUSH2 0x1FA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FEB JUMPI PUSH2 0x1FEA PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FF9 DUP5 DUP3 DUP6 ADD PUSH2 0x1FC0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200D DUP3 PUSH2 0x1EC1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x201D DUP2 PUSH2 0x2002 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2038 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2014 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2053 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F0F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x206E PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1D40 JUMP JUMPDEST PUSH2 0x207B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2097 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A8 DUP3 PUSH2 0x1E17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x20B8 DUP2 PUSH2 0x209D JUMP JUMPDEST DUP2 EQ PUSH2 0x20C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x20D5 DUP2 PUSH2 0x20AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20F2 JUMPI PUSH2 0x20F1 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2100 DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2111 DUP6 DUP3 DUP7 ADD PUSH2 0x20C6 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2132 JUMPI PUSH2 0x2131 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2140 DUP6 DUP3 DUP7 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2151 DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2170 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x217D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x219D JUMPI PUSH2 0x219C PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x21AB DUP7 DUP3 DUP8 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x21BC DUP7 DUP3 DUP8 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x21CD DUP7 DUP3 DUP8 ADD PUSH2 0x20C6 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 0x2211 DUP3 PUSH2 0x1D2E JUMP JUMPDEST SWAP2 POP PUSH2 0x221C DUP4 PUSH2 0x1D2E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x223A JUMPI PUSH2 0x2239 PUSH2 0x21D7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x224F DUP2 PUSH2 0x1E29 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x226B JUMPI PUSH2 0x226A PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2279 DUP5 DUP3 DUP6 ADD PUSH2 0x2240 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2297 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x22A4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DCD 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 0x22DD PUSH2 0x22D8 PUSH2 0x22D3 DUP5 PUSH2 0x22AB JUMP JUMPDEST PUSH2 0x1E95 JUMP JUMPDEST PUSH2 0x22B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22ED DUP2 PUSH2 0x22C2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2308 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22E4 JUMP JUMPDEST PUSH2 0x2315 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2327 DUP3 PUSH2 0x1D2E JUMP JUMPDEST SWAP2 POP PUSH2 0x2332 DUP4 PUSH2 0x1D2E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2350 JUMPI PUSH2 0x234F PUSH2 0x21D7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 SWAP16 0xAA GAS SSTORE PUSH28 0x2963A1F0927D9241C63C1AE66F5D48267732B4A8678B6CD45E3B6473 PUSH16 0x6C634300081C00330000000000000000 ", - "sourceMap": "598:5743:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:219:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:126;;;:::i;:::-;;3810:120:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4273:137:36;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:566:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2945:77:36;;;:::i;:::-;;3596:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1662:68;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;1850:84:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8068:150:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;349:38:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3090:186:36;;;;;;;;;;;;;:::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:36;;;;;;;;;;;;;:::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:36;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3563:267:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8706:128;;;:::i;:::-;;2473:225:36;;;;;;;;;;;;;:::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:36:-;4348:18;4361:4;4348:12;:18::i;:::-;2464:16:6;2475:4;2464:10;:16::i;:::-;4378:25:36::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:36:-;1560:24;2464:16:6;2475:4;2464:10;:16::i;:::-;3005:10:36::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:23:-;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:29:-;;;:::o;3090:186:36:-;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:36::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:36:-;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:29;890:7;899:10;872:17;:38::i;:::-;3486:34:36::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:36:-;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:36:-;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:23:-;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:23:-;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:29:-;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:36:-;1474:19:23;:17;:19::i;:::-;5603:21:36::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:23::1;:17;:19::i;:::-;5140:34:36::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;763:146:25:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763: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:23:-;2265:8;:6;:8::i;:::-;2260:62;;2296:15;;;;;;;;;;;;;;2260:62;2202:126::o;14296:213:28:-;14352:6;14382:16;14374:24;;:5;:24;14370:103;;;14452:2;14456:5;14421:41;;;;;;;;;;;;:::i;:::-;;;;;;;;14370:103;14496:5;14482:20;;14296: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:23:-;2067:8;:6;:8::i;:::-;2063:61;;;2098:15;;;;;;;;;;;;;;2063:61;2002:128::o;6008:331:36:-;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;3371:111:27:-;3429:7;3455:20;3467:1;3463;:5;3470:1;3473;3455:7;:20::i;:::-;3448:27;;3371:111;;;;:::o;2825:294::-;2903:7;3075:26;3091:9;3075:15;:26::i;:::-;3070:1;3066;:5;3065:36;3060:1;:42;3053:49;;2825:294;;;;;:::o;34795:145:28:-;34842:9;34921:1;34914:9;34907:17;34902:22;;34795:145;;;:::o;88:117:39:-;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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@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/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"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": 3500, - "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", - "label": "_paused", - "offset": 0, - "slot": "3", - "type": "t_bool" - }, - { - "astId": 7793, - "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", - "label": "domainHashToRecord", - "offset": 0, - "slot": "4", - "type": "t_mapping(t_bytes32,t_struct(Record)7772_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)8101": { - "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)7772_storage)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => struct SciRegistry.Record)", - "numberOfBytes": "32", - "value": "t_struct(Record)7772_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)7772_storage": { - "encoding": "inplace", - "label": "struct SciRegistry.Record", - "members": [ - { - "astId": 7764, - "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", - "label": "owner", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 7767, - "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", - "label": "verifier", - "offset": 0, - "slot": "1", - "type": "t_contract(IVerifier)8101" - }, - { - "astId": 7769, - "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", - "label": "ownerSetTime", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 7771, - "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": { - "@_7181": { - "entryPoint": null, - "id": 7181, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_8162": { - "entryPoint": null, - "id": 8162, - "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:39", - "nodeType": "YulBlock", - "src": "0:1199:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "922:274:39", - "nodeType": "YulBlock", - "src": "922:274:39", - "statements": [ - { - "body": { - "nativeSrc": "968:83:39", - "nodeType": "YulBlock", - "src": "968:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "970:77:39", - "nodeType": "YulIdentifier", - "src": "970:77:39" - }, - "nativeSrc": "970:79:39", - "nodeType": "YulFunctionCall", - "src": "970:79:39" - }, - "nativeSrc": "970:79:39", - "nodeType": "YulExpressionStatement", - "src": "970:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "943:7:39", - "nodeType": "YulIdentifier", - "src": "943:7:39" - }, - { - "name": "headStart", - "nativeSrc": "952:9:39", - "nodeType": "YulIdentifier", - "src": "952:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "939:3:39", - "nodeType": "YulIdentifier", - "src": "939:3:39" - }, - "nativeSrc": "939:23:39", - "nodeType": "YulFunctionCall", - "src": "939:23:39" - }, - { - "kind": "number", - "nativeSrc": "964:2:39", - "nodeType": "YulLiteral", - "src": "964:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "935:3:39", - "nodeType": "YulIdentifier", - "src": "935:3:39" - }, - "nativeSrc": "935:32:39", - "nodeType": "YulFunctionCall", - "src": "935:32:39" - }, - "nativeSrc": "932:119:39", - "nodeType": "YulIf", - "src": "932:119:39" - }, - { - "nativeSrc": "1061:128:39", - "nodeType": "YulBlock", - "src": "1061:128:39", - "statements": [ - { - "nativeSrc": "1076:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1076:15:39", - "value": { - "kind": "number", - "nativeSrc": "1090:1:39", - "nodeType": "YulLiteral", - "src": "1090:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1080:6:39", - "nodeType": "YulTypedName", - "src": "1080:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1105:74:39", - "nodeType": "YulAssignment", - "src": "1105:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1151:9:39", - "nodeType": "YulIdentifier", - "src": "1151:9:39" - }, - { - "name": "offset", - "nativeSrc": "1162:6:39", - "nodeType": "YulIdentifier", - "src": "1162:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1147:3:39", - "nodeType": "YulIdentifier", - "src": "1147:3:39" - }, - "nativeSrc": "1147:22:39", - "nodeType": "YulFunctionCall", - "src": "1147:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1171:7:39", - "nodeType": "YulIdentifier", - "src": "1171:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1115:31:39", - "nodeType": "YulIdentifier", - "src": "1115:31:39" - }, - "nativeSrc": "1115:64:39", - "nodeType": "YulFunctionCall", - "src": "1115:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1105:6:39", - "nodeType": "YulIdentifier", - "src": "1105:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "845:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "892:9:39", - "nodeType": "YulTypedName", - "src": "892:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "903:7:39", - "nodeType": "YulTypedName", - "src": "903:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "915:6:39", - "nodeType": "YulTypedName", - "src": "915:6:39", - "type": "" - } - ], - "src": "845:351:39" - } - ] - }, - "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": 39, - "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:38:-:0;;;1536:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1581:9;1171:19:29;1147:44;;;;;;;;;;1096:102;1536:58:38;626:3305;;88:117:39;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:38:-;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkDomainOwner_7203": { - "entryPoint": 1663, - "id": 7203, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_msgSender_3399": { - "entryPoint": 1655, - "id": 3399, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@addAddresses_8240": { - "entryPoint": 554, - "id": 8240, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@isVerified_8369": { - "entryPoint": 274, - "id": 8369, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@registry_7147": { - "entryPoint": 1105, - "id": 7147, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@removeAddresses_8320": { - "entryPoint": 1141, - "id": 8320, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@verifiedContracts_8131": { - "entryPoint": 1055, - "id": 8131, - "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_$7736_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_$7736__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_$7736_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:39", - "nodeType": "YulBlock", - "src": "0:9803:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:32:39", - "nodeType": "YulBlock", - "src": "379:32:39", - "statements": [ - { - "nativeSrc": "389:16:39", - "nodeType": "YulAssignment", - "src": "389:16:39", - "value": { - "name": "value", - "nativeSrc": "400:5:39", - "nodeType": "YulIdentifier", - "src": "400:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "334:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:77:39" - }, - { - "body": { - "nativeSrc": "460:79:39", - "nodeType": "YulBlock", - "src": "460:79:39", - "statements": [ - { - "body": { - "nativeSrc": "517:16:39", - "nodeType": "YulBlock", - "src": "517:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "526:1:39", - "nodeType": "YulLiteral", - "src": "526:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "529:1:39", - "nodeType": "YulLiteral", - "src": "529:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "519:6:39", - "nodeType": "YulIdentifier", - "src": "519:6:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulFunctionCall", - "src": "519:12:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulExpressionStatement", - "src": "519:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "483:5:39", - "nodeType": "YulIdentifier", - "src": "483:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "508:5:39", - "nodeType": "YulIdentifier", - "src": "508:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "490:17:39", - "nodeType": "YulIdentifier", - "src": "490:17:39" - }, - "nativeSrc": "490:24:39", - "nodeType": "YulFunctionCall", - "src": "490:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "480:2:39", - "nodeType": "YulIdentifier", - "src": "480:2:39" - }, - "nativeSrc": "480:35:39", - "nodeType": "YulFunctionCall", - "src": "480:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "473:6:39", - "nodeType": "YulIdentifier", - "src": "473:6:39" - }, - "nativeSrc": "473:43:39", - "nodeType": "YulFunctionCall", - "src": "473:43:39" - }, - "nativeSrc": "470:63:39", - "nodeType": "YulIf", - "src": "470:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "417:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "453:5:39", - "nodeType": "YulTypedName", - "src": "453:5:39", - "type": "" - } - ], - "src": "417:122:39" - }, - { - "body": { - "nativeSrc": "597:87:39", - "nodeType": "YulBlock", - "src": "597:87:39", - "statements": [ - { - "nativeSrc": "607:29:39", - "nodeType": "YulAssignment", - "src": "607:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "629:6:39", - "nodeType": "YulIdentifier", - "src": "629:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "616:12:39", - "nodeType": "YulIdentifier", - "src": "616:12:39" - }, - "nativeSrc": "616:20:39", - "nodeType": "YulFunctionCall", - "src": "616:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "607:5:39", - "nodeType": "YulIdentifier", - "src": "607:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "672:5:39", - "nodeType": "YulIdentifier", - "src": "672:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "645:26:39", - "nodeType": "YulIdentifier", - "src": "645:26:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulFunctionCall", - "src": "645:33:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulExpressionStatement", - "src": "645:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "545:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "575:6:39", - "nodeType": "YulTypedName", - "src": "575:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "583:3:39", - "nodeType": "YulTypedName", - "src": "583:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "591:5:39", - "nodeType": "YulTypedName", - "src": "591:5:39", - "type": "" - } - ], - "src": "545:139:39" - }, - { - "body": { - "nativeSrc": "735:81:39", - "nodeType": "YulBlock", - "src": "735:81:39", - "statements": [ - { - "nativeSrc": "745:65:39", - "nodeType": "YulAssignment", - "src": "745:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "760:5:39", - "nodeType": "YulIdentifier", - "src": "760:5:39" - }, - { - "kind": "number", - "nativeSrc": "767:42:39", - "nodeType": "YulLiteral", - "src": "767:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "756:3:39", - "nodeType": "YulIdentifier", - "src": "756:3:39" - }, - "nativeSrc": "756:54:39", - "nodeType": "YulFunctionCall", - "src": "756:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "745:7:39", - "nodeType": "YulIdentifier", - "src": "745:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "690:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "717:5:39", - "nodeType": "YulTypedName", - "src": "717:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "727:7:39", - "nodeType": "YulTypedName", - "src": "727:7:39", - "type": "" - } - ], - "src": "690:126:39" - }, - { - "body": { - "nativeSrc": "867:51:39", - "nodeType": "YulBlock", - "src": "867:51:39", - "statements": [ - { - "nativeSrc": "877:35:39", - "nodeType": "YulAssignment", - "src": "877:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "906:5:39", - "nodeType": "YulIdentifier", - "src": "906:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "888:17:39", - "nodeType": "YulIdentifier", - "src": "888:17:39" - }, - "nativeSrc": "888:24:39", - "nodeType": "YulFunctionCall", - "src": "888:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "877:7:39", - "nodeType": "YulIdentifier", - "src": "877:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "822:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "849:5:39", - "nodeType": "YulTypedName", - "src": "849:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "859:7:39", - "nodeType": "YulTypedName", - "src": "859:7:39", - "type": "" - } - ], - "src": "822:96:39" - }, - { - "body": { - "nativeSrc": "967:79:39", - "nodeType": "YulBlock", - "src": "967:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1024:16:39", - "nodeType": "YulBlock", - "src": "1024:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1033:1:39", - "nodeType": "YulLiteral", - "src": "1033:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1036:1:39", - "nodeType": "YulLiteral", - "src": "1036:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1026:6:39", - "nodeType": "YulIdentifier", - "src": "1026:6:39" - }, - "nativeSrc": "1026:12:39", - "nodeType": "YulFunctionCall", - "src": "1026:12:39" - }, - "nativeSrc": "1026:12:39", - "nodeType": "YulExpressionStatement", - "src": "1026:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "990:5:39", - "nodeType": "YulIdentifier", - "src": "990:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1015:5:39", - "nodeType": "YulIdentifier", - "src": "1015:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "997:17:39", - "nodeType": "YulIdentifier", - "src": "997:17:39" - }, - "nativeSrc": "997:24:39", - "nodeType": "YulFunctionCall", - "src": "997:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "987:2:39", - "nodeType": "YulIdentifier", - "src": "987:2:39" - }, - "nativeSrc": "987:35:39", - "nodeType": "YulFunctionCall", - "src": "987:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "980:6:39", - "nodeType": "YulIdentifier", - "src": "980:6:39" - }, - "nativeSrc": "980:43:39", - "nodeType": "YulFunctionCall", - "src": "980:43:39" - }, - "nativeSrc": "977:63:39", - "nodeType": "YulIf", - "src": "977:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "924:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "960:5:39", - "nodeType": "YulTypedName", - "src": "960:5:39", - "type": "" - } - ], - "src": "924:122:39" - }, - { - "body": { - "nativeSrc": "1104:87:39", - "nodeType": "YulBlock", - "src": "1104:87:39", - "statements": [ - { - "nativeSrc": "1114:29:39", - "nodeType": "YulAssignment", - "src": "1114:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1136:6:39", - "nodeType": "YulIdentifier", - "src": "1136:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1123:12:39", - "nodeType": "YulIdentifier", - "src": "1123:12:39" - }, - "nativeSrc": "1123:20:39", - "nodeType": "YulFunctionCall", - "src": "1123:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1114:5:39", - "nodeType": "YulIdentifier", - "src": "1114:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1179:5:39", - "nodeType": "YulIdentifier", - "src": "1179:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "1152:26:39", - "nodeType": "YulIdentifier", - "src": "1152:26:39" - }, - "nativeSrc": "1152:33:39", - "nodeType": "YulFunctionCall", - "src": "1152:33:39" - }, - "nativeSrc": "1152:33:39", - "nodeType": "YulExpressionStatement", - "src": "1152:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "1052:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1082:6:39", - "nodeType": "YulTypedName", - "src": "1082:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1090:3:39", - "nodeType": "YulTypedName", - "src": "1090:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1098:5:39", - "nodeType": "YulTypedName", - "src": "1098:5:39", - "type": "" - } - ], - "src": "1052:139:39" - }, - { - "body": { - "nativeSrc": "1242:32:39", - "nodeType": "YulBlock", - "src": "1242:32:39", - "statements": [ - { - "nativeSrc": "1252:16:39", - "nodeType": "YulAssignment", - "src": "1252:16:39", - "value": { - "name": "value", - "nativeSrc": "1263:5:39", - "nodeType": "YulIdentifier", - "src": "1263:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1252:7:39", - "nodeType": "YulIdentifier", - "src": "1252:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "1197:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1224:5:39", - "nodeType": "YulTypedName", - "src": "1224:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1234:7:39", - "nodeType": "YulTypedName", - "src": "1234:7:39", - "type": "" - } - ], - "src": "1197:77:39" - }, - { - "body": { - "nativeSrc": "1323:79:39", - "nodeType": "YulBlock", - "src": "1323:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1380:16:39", - "nodeType": "YulBlock", - "src": "1380:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1389:1:39", - "nodeType": "YulLiteral", - "src": "1389:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1392:1:39", - "nodeType": "YulLiteral", - "src": "1392:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1382:6:39", - "nodeType": "YulIdentifier", - "src": "1382:6:39" - }, - "nativeSrc": "1382:12:39", - "nodeType": "YulFunctionCall", - "src": "1382:12:39" - }, - "nativeSrc": "1382:12:39", - "nodeType": "YulExpressionStatement", - "src": "1382:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1346:5:39", - "nodeType": "YulIdentifier", - "src": "1346:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1371:5:39", - "nodeType": "YulIdentifier", - "src": "1371:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "1353:17:39", - "nodeType": "YulIdentifier", - "src": "1353:17:39" - }, - "nativeSrc": "1353:24:39", - "nodeType": "YulFunctionCall", - "src": "1353:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1343:2:39", - "nodeType": "YulIdentifier", - "src": "1343:2:39" - }, - "nativeSrc": "1343:35:39", - "nodeType": "YulFunctionCall", - "src": "1343:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1336:6:39", - "nodeType": "YulIdentifier", - "src": "1336:6:39" - }, - "nativeSrc": "1336:43:39", - "nodeType": "YulFunctionCall", - "src": "1336:43:39" - }, - "nativeSrc": "1333:63:39", - "nodeType": "YulIf", - "src": "1333:63:39" - } - ] - }, - "name": "validator_revert_t_uint256", - "nativeSrc": "1280:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1316:5:39", - "nodeType": "YulTypedName", - "src": "1316:5:39", - "type": "" - } - ], - "src": "1280:122:39" - }, - { - "body": { - "nativeSrc": "1460:87:39", - "nodeType": "YulBlock", - "src": "1460:87:39", - "statements": [ - { - "nativeSrc": "1470:29:39", - "nodeType": "YulAssignment", - "src": "1470:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1492:6:39", - "nodeType": "YulIdentifier", - "src": "1492:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1479:12:39", - "nodeType": "YulIdentifier", - "src": "1479:12:39" - }, - "nativeSrc": "1479:20:39", - "nodeType": "YulFunctionCall", - "src": "1479:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1470:5:39", - "nodeType": "YulIdentifier", - "src": "1470:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1535:5:39", - "nodeType": "YulIdentifier", - "src": "1535:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "1508:26:39", - "nodeType": "YulIdentifier", - "src": "1508:26:39" - }, - "nativeSrc": "1508:33:39", - "nodeType": "YulFunctionCall", - "src": "1508:33:39" - }, - "nativeSrc": "1508:33:39", - "nodeType": "YulExpressionStatement", - "src": "1508:33:39" - } - ] - }, - "name": "abi_decode_t_uint256", - "nativeSrc": "1408:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1438:6:39", - "nodeType": "YulTypedName", - "src": "1438:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1446:3:39", - "nodeType": "YulTypedName", - "src": "1446:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1454:5:39", - "nodeType": "YulTypedName", - "src": "1454:5:39", - "type": "" - } - ], - "src": "1408:139:39" - }, - { - "body": { - "nativeSrc": "1653:519:39", - "nodeType": "YulBlock", - "src": "1653:519:39", - "statements": [ - { - "body": { - "nativeSrc": "1699:83:39", - "nodeType": "YulBlock", - "src": "1699:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1701:77:39", - "nodeType": "YulIdentifier", - "src": "1701:77:39" - }, - "nativeSrc": "1701:79:39", - "nodeType": "YulFunctionCall", - "src": "1701:79:39" - }, - "nativeSrc": "1701:79:39", - "nodeType": "YulExpressionStatement", - "src": "1701:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1674:7:39", - "nodeType": "YulIdentifier", - "src": "1674:7:39" - }, - { - "name": "headStart", - "nativeSrc": "1683:9:39", - "nodeType": "YulIdentifier", - "src": "1683:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1670:3:39", - "nodeType": "YulIdentifier", - "src": "1670:3:39" - }, - "nativeSrc": "1670:23:39", - "nodeType": "YulFunctionCall", - "src": "1670:23:39" - }, - { - "kind": "number", - "nativeSrc": "1695:2:39", - "nodeType": "YulLiteral", - "src": "1695:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1666:3:39", - "nodeType": "YulIdentifier", - "src": "1666:3:39" - }, - "nativeSrc": "1666:32:39", - "nodeType": "YulFunctionCall", - "src": "1666:32:39" - }, - "nativeSrc": "1663:119:39", - "nodeType": "YulIf", - "src": "1663:119:39" - }, - { - "nativeSrc": "1792:117:39", - "nodeType": "YulBlock", - "src": "1792:117:39", - "statements": [ - { - "nativeSrc": "1807:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1807:15:39", - "value": { - "kind": "number", - "nativeSrc": "1821:1:39", - "nodeType": "YulLiteral", - "src": "1821:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1811:6:39", - "nodeType": "YulTypedName", - "src": "1811:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1836:63:39", - "nodeType": "YulAssignment", - "src": "1836:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1871:9:39", - "nodeType": "YulIdentifier", - "src": "1871:9:39" - }, - { - "name": "offset", - "nativeSrc": "1882:6:39", - "nodeType": "YulIdentifier", - "src": "1882:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1867:3:39", - "nodeType": "YulIdentifier", - "src": "1867:3:39" - }, - "nativeSrc": "1867:22:39", - "nodeType": "YulFunctionCall", - "src": "1867:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1891:7:39", - "nodeType": "YulIdentifier", - "src": "1891:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "1846:20:39", - "nodeType": "YulIdentifier", - "src": "1846:20:39" - }, - "nativeSrc": "1846:53:39", - "nodeType": "YulFunctionCall", - "src": "1846:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1836:6:39", - "nodeType": "YulIdentifier", - "src": "1836:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "1919:118:39", - "nodeType": "YulBlock", - "src": "1919:118:39", - "statements": [ - { - "nativeSrc": "1934:16:39", - "nodeType": "YulVariableDeclaration", - "src": "1934:16:39", - "value": { - "kind": "number", - "nativeSrc": "1948:2:39", - "nodeType": "YulLiteral", - "src": "1948:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1938:6:39", - "nodeType": "YulTypedName", - "src": "1938:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1964:63:39", - "nodeType": "YulAssignment", - "src": "1964:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1999:9:39", - "nodeType": "YulIdentifier", - "src": "1999:9:39" - }, - { - "name": "offset", - "nativeSrc": "2010:6:39", - "nodeType": "YulIdentifier", - "src": "2010:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1995:3:39", - "nodeType": "YulIdentifier", - "src": "1995:3:39" - }, - "nativeSrc": "1995:22:39", - "nodeType": "YulFunctionCall", - "src": "1995:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2019:7:39", - "nodeType": "YulIdentifier", - "src": "2019:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "1974:20:39", - "nodeType": "YulIdentifier", - "src": "1974:20:39" - }, - "nativeSrc": "1974:53:39", - "nodeType": "YulFunctionCall", - "src": "1974:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1964:6:39", - "nodeType": "YulIdentifier", - "src": "1964:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "2047:118:39", - "nodeType": "YulBlock", - "src": "2047:118:39", - "statements": [ - { - "nativeSrc": "2062:16:39", - "nodeType": "YulVariableDeclaration", - "src": "2062:16:39", - "value": { - "kind": "number", - "nativeSrc": "2076:2:39", - "nodeType": "YulLiteral", - "src": "2076:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2066:6:39", - "nodeType": "YulTypedName", - "src": "2066:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2092:63:39", - "nodeType": "YulAssignment", - "src": "2092:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2127:9:39", - "nodeType": "YulIdentifier", - "src": "2127:9:39" - }, - { - "name": "offset", - "nativeSrc": "2138:6:39", - "nodeType": "YulIdentifier", - "src": "2138:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2123:3:39", - "nodeType": "YulIdentifier", - "src": "2123:3:39" - }, - "nativeSrc": "2123:22:39", - "nodeType": "YulFunctionCall", - "src": "2123:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2147:7:39", - "nodeType": "YulIdentifier", - "src": "2147:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "2102:20:39", - "nodeType": "YulIdentifier", - "src": "2102:20:39" - }, - "nativeSrc": "2102:53:39", - "nodeType": "YulFunctionCall", - "src": "2102:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "2092:6:39", - "nodeType": "YulIdentifier", - "src": "2092:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_addresst_uint256", - "nativeSrc": "1553:619:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1607:9:39", - "nodeType": "YulTypedName", - "src": "1607:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1618:7:39", - "nodeType": "YulTypedName", - "src": "1618:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1630:6:39", - "nodeType": "YulTypedName", - "src": "1630:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1638:6:39", - "nodeType": "YulTypedName", - "src": "1638:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1646:6:39", - "nodeType": "YulTypedName", - "src": "1646:6:39", - "type": "" - } - ], - "src": "1553:619:39" - }, - { - "body": { - "nativeSrc": "2243:53:39", - "nodeType": "YulBlock", - "src": "2243:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2260:3:39", - "nodeType": "YulIdentifier", - "src": "2260:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2283:5:39", - "nodeType": "YulIdentifier", - "src": "2283:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "2265:17:39", - "nodeType": "YulIdentifier", - "src": "2265:17:39" - }, - "nativeSrc": "2265:24:39", - "nodeType": "YulFunctionCall", - "src": "2265:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2253:6:39", - "nodeType": "YulIdentifier", - "src": "2253:6:39" - }, - "nativeSrc": "2253:37:39", - "nodeType": "YulFunctionCall", - "src": "2253:37:39" - }, - "nativeSrc": "2253:37:39", - "nodeType": "YulExpressionStatement", - "src": "2253:37:39" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "2178:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2231:5:39", - "nodeType": "YulTypedName", - "src": "2231:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2238:3:39", - "nodeType": "YulTypedName", - "src": "2238:3:39", - "type": "" - } - ], - "src": "2178:118:39" - }, - { - "body": { - "nativeSrc": "2400:124:39", - "nodeType": "YulBlock", - "src": "2400:124:39", - "statements": [ - { - "nativeSrc": "2410:26:39", - "nodeType": "YulAssignment", - "src": "2410:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2422:9:39", - "nodeType": "YulIdentifier", - "src": "2422:9:39" - }, - { - "kind": "number", - "nativeSrc": "2433:2:39", - "nodeType": "YulLiteral", - "src": "2433:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2418:3:39", - "nodeType": "YulIdentifier", - "src": "2418:3:39" - }, - "nativeSrc": "2418:18:39", - "nodeType": "YulFunctionCall", - "src": "2418:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2410:4:39", - "nodeType": "YulIdentifier", - "src": "2410:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2490:6:39", - "nodeType": "YulIdentifier", - "src": "2490:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2503:9:39", - "nodeType": "YulIdentifier", - "src": "2503:9:39" - }, - { - "kind": "number", - "nativeSrc": "2514:1:39", - "nodeType": "YulLiteral", - "src": "2514:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2499:3:39", - "nodeType": "YulIdentifier", - "src": "2499:3:39" - }, - "nativeSrc": "2499:17:39", - "nodeType": "YulFunctionCall", - "src": "2499:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "2446:43:39", - "nodeType": "YulIdentifier", - "src": "2446:43:39" - }, - "nativeSrc": "2446:71:39", - "nodeType": "YulFunctionCall", - "src": "2446:71:39" - }, - "nativeSrc": "2446:71:39", - "nodeType": "YulExpressionStatement", - "src": "2446:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "2302:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2372:9:39", - "nodeType": "YulTypedName", - "src": "2372:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2384:6:39", - "nodeType": "YulTypedName", - "src": "2384:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2395:4:39", - "nodeType": "YulTypedName", - "src": "2395:4:39", - "type": "" - } - ], - "src": "2302:222:39" - }, - { - "body": { - "nativeSrc": "2619:28:39", - "nodeType": "YulBlock", - "src": "2619:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2636:1:39", - "nodeType": "YulLiteral", - "src": "2636:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2639:1:39", - "nodeType": "YulLiteral", - "src": "2639:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2629:6:39", - "nodeType": "YulIdentifier", - "src": "2629:6:39" - }, - "nativeSrc": "2629:12:39", - "nodeType": "YulFunctionCall", - "src": "2629:12:39" - }, - "nativeSrc": "2629:12:39", - "nodeType": "YulExpressionStatement", - "src": "2629:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "2530:117:39", - "nodeType": "YulFunctionDefinition", - "src": "2530:117:39" - }, - { - "body": { - "nativeSrc": "2742:28:39", - "nodeType": "YulBlock", - "src": "2742:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2759:1:39", - "nodeType": "YulLiteral", - "src": "2759:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2762:1:39", - "nodeType": "YulLiteral", - "src": "2762:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2752:6:39", - "nodeType": "YulIdentifier", - "src": "2752:6:39" - }, - "nativeSrc": "2752:12:39", - "nodeType": "YulFunctionCall", - "src": "2752:12:39" - }, - "nativeSrc": "2752:12:39", - "nodeType": "YulExpressionStatement", - "src": "2752:12:39" - } - ] - }, - "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", - "nativeSrc": "2653:117:39", - "nodeType": "YulFunctionDefinition", - "src": "2653:117:39" - }, - { - "body": { - "nativeSrc": "2865:28:39", - "nodeType": "YulBlock", - "src": "2865:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2882:1:39", - "nodeType": "YulLiteral", - "src": "2882:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2885:1:39", - "nodeType": "YulLiteral", - "src": "2885:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2875:6:39", - "nodeType": "YulIdentifier", - "src": "2875:6:39" - }, - "nativeSrc": "2875:12:39", - "nodeType": "YulFunctionCall", - "src": "2875:12:39" - }, - "nativeSrc": "2875:12:39", - "nodeType": "YulExpressionStatement", - "src": "2875:12:39" - } - ] - }, - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "2776:117:39", - "nodeType": "YulFunctionDefinition", - "src": "2776:117:39" - }, - { - "body": { - "nativeSrc": "3006:478:39", - "nodeType": "YulBlock", - "src": "3006:478:39", - "statements": [ - { - "body": { - "nativeSrc": "3055:83:39", - "nodeType": "YulBlock", - "src": "3055:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "3057:77:39", - "nodeType": "YulIdentifier", - "src": "3057:77:39" - }, - "nativeSrc": "3057:79:39", - "nodeType": "YulFunctionCall", - "src": "3057:79:39" - }, - "nativeSrc": "3057:79:39", - "nodeType": "YulExpressionStatement", - "src": "3057:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3034:6:39", - "nodeType": "YulIdentifier", - "src": "3034:6:39" - }, - { - "kind": "number", - "nativeSrc": "3042:4:39", - "nodeType": "YulLiteral", - "src": "3042:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3030:3:39", - "nodeType": "YulIdentifier", - "src": "3030:3:39" - }, - "nativeSrc": "3030:17:39", - "nodeType": "YulFunctionCall", - "src": "3030:17:39" - }, - { - "name": "end", - "nativeSrc": "3049:3:39", - "nodeType": "YulIdentifier", - "src": "3049:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3026:3:39", - "nodeType": "YulIdentifier", - "src": "3026:3:39" - }, - "nativeSrc": "3026:27:39", - "nodeType": "YulFunctionCall", - "src": "3026:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3019:6:39", - "nodeType": "YulIdentifier", - "src": "3019:6:39" - }, - "nativeSrc": "3019:35:39", - "nodeType": "YulFunctionCall", - "src": "3019:35:39" - }, - "nativeSrc": "3016:122:39", - "nodeType": "YulIf", - "src": "3016:122:39" - }, - { - "nativeSrc": "3147:30:39", - "nodeType": "YulAssignment", - "src": "3147:30:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3170:6:39", - "nodeType": "YulIdentifier", - "src": "3170:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3157:12:39", - "nodeType": "YulIdentifier", - "src": "3157:12:39" - }, - "nativeSrc": "3157:20:39", - "nodeType": "YulFunctionCall", - "src": "3157:20:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "3147:6:39", - "nodeType": "YulIdentifier", - "src": "3147:6:39" - } - ] - }, - { - "body": { - "nativeSrc": "3220:83:39", - "nodeType": "YulBlock", - "src": "3220:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", - "nativeSrc": "3222:77:39", - "nodeType": "YulIdentifier", - "src": "3222:77:39" - }, - "nativeSrc": "3222:79:39", - "nodeType": "YulFunctionCall", - "src": "3222:79:39" - }, - "nativeSrc": "3222:79:39", - "nodeType": "YulExpressionStatement", - "src": "3222:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "3192:6:39", - "nodeType": "YulIdentifier", - "src": "3192:6:39" - }, - { - "kind": "number", - "nativeSrc": "3200:18:39", - "nodeType": "YulLiteral", - "src": "3200:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3189:2:39", - "nodeType": "YulIdentifier", - "src": "3189:2:39" - }, - "nativeSrc": "3189:30:39", - "nodeType": "YulFunctionCall", - "src": "3189:30:39" - }, - "nativeSrc": "3186:117:39", - "nodeType": "YulIf", - "src": "3186:117:39" - }, - { - "nativeSrc": "3312:29:39", - "nodeType": "YulAssignment", - "src": "3312:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3328:6:39", - "nodeType": "YulIdentifier", - "src": "3328:6:39" - }, - { - "kind": "number", - "nativeSrc": "3336:4:39", - "nodeType": "YulLiteral", - "src": "3336:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3324:3:39", - "nodeType": "YulIdentifier", - "src": "3324:3:39" - }, - "nativeSrc": "3324:17:39", - "nodeType": "YulFunctionCall", - "src": "3324:17:39" - }, - "variableNames": [ - { - "name": "arrayPos", - "nativeSrc": "3312:8:39", - "nodeType": "YulIdentifier", - "src": "3312:8:39" - } - ] - }, - { - "body": { - "nativeSrc": "3395:83:39", - "nodeType": "YulBlock", - "src": "3395:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "3397:77:39", - "nodeType": "YulIdentifier", - "src": "3397:77:39" - }, - "nativeSrc": "3397:79:39", - "nodeType": "YulFunctionCall", - "src": "3397:79:39" - }, - "nativeSrc": "3397:79:39", - "nodeType": "YulExpressionStatement", - "src": "3397:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "arrayPos", - "nativeSrc": "3360:8:39", - "nodeType": "YulIdentifier", - "src": "3360:8:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "3374:6:39", - "nodeType": "YulIdentifier", - "src": "3374:6:39" - }, - { - "kind": "number", - "nativeSrc": "3382:4:39", - "nodeType": "YulLiteral", - "src": "3382:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "3370:3:39", - "nodeType": "YulIdentifier", - "src": "3370:3:39" - }, - "nativeSrc": "3370:17:39", - "nodeType": "YulFunctionCall", - "src": "3370:17:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3356:3:39", - "nodeType": "YulIdentifier", - "src": "3356:3:39" - }, - "nativeSrc": "3356:32:39", - "nodeType": "YulFunctionCall", - "src": "3356:32:39" - }, - { - "name": "end", - "nativeSrc": "3390:3:39", - "nodeType": "YulIdentifier", - "src": "3390:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3353:2:39", - "nodeType": "YulIdentifier", - "src": "3353:2:39" - }, - "nativeSrc": "3353:41:39", - "nodeType": "YulFunctionCall", - "src": "3353:41:39" - }, - "nativeSrc": "3350:128:39", - "nodeType": "YulIf", - "src": "3350:128:39" - } - ] - }, - "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", - "nativeSrc": "2916:568:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2973:6:39", - "nodeType": "YulTypedName", - "src": "2973:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2981:3:39", - "nodeType": "YulTypedName", - "src": "2981:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "arrayPos", - "nativeSrc": "2989:8:39", - "nodeType": "YulTypedName", - "src": "2989:8:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2999:6:39", - "nodeType": "YulTypedName", - "src": "2999:6:39", - "type": "" - } - ], - "src": "2916:568:39" - }, - { - "body": { - "nativeSrc": "3626:478:39", - "nodeType": "YulBlock", - "src": "3626:478:39", - "statements": [ - { - "body": { - "nativeSrc": "3675:83:39", - "nodeType": "YulBlock", - "src": "3675:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "3677:77:39", - "nodeType": "YulIdentifier", - "src": "3677:77:39" - }, - "nativeSrc": "3677:79:39", - "nodeType": "YulFunctionCall", - "src": "3677:79:39" - }, - "nativeSrc": "3677:79:39", - "nodeType": "YulExpressionStatement", - "src": "3677:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3654:6:39", - "nodeType": "YulIdentifier", - "src": "3654:6:39" - }, - { - "kind": "number", - "nativeSrc": "3662:4:39", - "nodeType": "YulLiteral", - "src": "3662:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3650:3:39", - "nodeType": "YulIdentifier", - "src": "3650:3:39" - }, - "nativeSrc": "3650:17:39", - "nodeType": "YulFunctionCall", - "src": "3650:17:39" - }, - { - "name": "end", - "nativeSrc": "3669:3:39", - "nodeType": "YulIdentifier", - "src": "3669:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3646:3:39", - "nodeType": "YulIdentifier", - "src": "3646:3:39" - }, - "nativeSrc": "3646:27:39", - "nodeType": "YulFunctionCall", - "src": "3646:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3639:6:39", - "nodeType": "YulIdentifier", - "src": "3639:6:39" - }, - "nativeSrc": "3639:35:39", - "nodeType": "YulFunctionCall", - "src": "3639:35:39" - }, - "nativeSrc": "3636:122:39", - "nodeType": "YulIf", - "src": "3636:122:39" - }, - { - "nativeSrc": "3767:30:39", - "nodeType": "YulAssignment", - "src": "3767:30:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3790:6:39", - "nodeType": "YulIdentifier", - "src": "3790:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3777:12:39", - "nodeType": "YulIdentifier", - "src": "3777:12:39" - }, - "nativeSrc": "3777:20:39", - "nodeType": "YulFunctionCall", - "src": "3777:20:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "3767:6:39", - "nodeType": "YulIdentifier", - "src": "3767:6:39" - } - ] - }, - { - "body": { - "nativeSrc": "3840:83:39", - "nodeType": "YulBlock", - "src": "3840:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", - "nativeSrc": "3842:77:39", - "nodeType": "YulIdentifier", - "src": "3842:77:39" - }, - "nativeSrc": "3842:79:39", - "nodeType": "YulFunctionCall", - "src": "3842:79:39" - }, - "nativeSrc": "3842:79:39", - "nodeType": "YulExpressionStatement", - "src": "3842:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "3812:6:39", - "nodeType": "YulIdentifier", - "src": "3812:6:39" - }, - { - "kind": "number", - "nativeSrc": "3820:18:39", - "nodeType": "YulLiteral", - "src": "3820:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3809:2:39", - "nodeType": "YulIdentifier", - "src": "3809:2:39" - }, - "nativeSrc": "3809:30:39", - "nodeType": "YulFunctionCall", - "src": "3809:30:39" - }, - "nativeSrc": "3806:117:39", - "nodeType": "YulIf", - "src": "3806:117:39" - }, - { - "nativeSrc": "3932:29:39", - "nodeType": "YulAssignment", - "src": "3932:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3948:6:39", - "nodeType": "YulIdentifier", - "src": "3948:6:39" - }, - { - "kind": "number", - "nativeSrc": "3956:4:39", - "nodeType": "YulLiteral", - "src": "3956:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3944:3:39", - "nodeType": "YulIdentifier", - "src": "3944:3:39" - }, - "nativeSrc": "3944:17:39", - "nodeType": "YulFunctionCall", - "src": "3944:17:39" - }, - "variableNames": [ - { - "name": "arrayPos", - "nativeSrc": "3932:8:39", - "nodeType": "YulIdentifier", - "src": "3932:8:39" - } - ] - }, - { - "body": { - "nativeSrc": "4015:83:39", - "nodeType": "YulBlock", - "src": "4015:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "4017:77:39", - "nodeType": "YulIdentifier", - "src": "4017:77:39" - }, - "nativeSrc": "4017:79:39", - "nodeType": "YulFunctionCall", - "src": "4017:79:39" - }, - "nativeSrc": "4017:79:39", - "nodeType": "YulExpressionStatement", - "src": "4017:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "arrayPos", - "nativeSrc": "3980:8:39", - "nodeType": "YulIdentifier", - "src": "3980:8:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "3994:6:39", - "nodeType": "YulIdentifier", - "src": "3994:6:39" - }, - { - "kind": "number", - "nativeSrc": "4002:4:39", - "nodeType": "YulLiteral", - "src": "4002:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "3990:3:39", - "nodeType": "YulIdentifier", - "src": "3990:3:39" - }, - "nativeSrc": "3990:17:39", - "nodeType": "YulFunctionCall", - "src": "3990:17:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3976:3:39", - "nodeType": "YulIdentifier", - "src": "3976:3:39" - }, - "nativeSrc": "3976:32:39", - "nodeType": "YulFunctionCall", - "src": "3976:32:39" - }, - { - "name": "end", - "nativeSrc": "4010:3:39", - "nodeType": "YulIdentifier", - "src": "4010:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3973:2:39", - "nodeType": "YulIdentifier", - "src": "3973:2:39" - }, - "nativeSrc": "3973:41:39", - "nodeType": "YulFunctionCall", - "src": "3973:41:39" - }, - "nativeSrc": "3970:128:39", - "nodeType": "YulIf", - "src": "3970:128:39" - } - ] - }, - "name": "abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "nativeSrc": "3509:595:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3593:6:39", - "nodeType": "YulTypedName", - "src": "3593:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3601:3:39", - "nodeType": "YulTypedName", - "src": "3601:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "arrayPos", - "nativeSrc": "3609:8:39", - "nodeType": "YulTypedName", - "src": "3609:8:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3619:6:39", - "nodeType": "YulTypedName", - "src": "3619:6:39", - "type": "" - } - ], - "src": "3509:595:39" - }, - { - "body": { - "nativeSrc": "4307:936:39", - "nodeType": "YulBlock", - "src": "4307:936:39", - "statements": [ - { - "body": { - "nativeSrc": "4353:83:39", - "nodeType": "YulBlock", - "src": "4353:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4355:77:39", - "nodeType": "YulIdentifier", - "src": "4355:77:39" - }, - "nativeSrc": "4355:79:39", - "nodeType": "YulFunctionCall", - "src": "4355:79:39" - }, - "nativeSrc": "4355:79:39", - "nodeType": "YulExpressionStatement", - "src": "4355:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4328:7:39", - "nodeType": "YulIdentifier", - "src": "4328:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4337:9:39", - "nodeType": "YulIdentifier", - "src": "4337:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4324:3:39", - "nodeType": "YulIdentifier", - "src": "4324:3:39" - }, - "nativeSrc": "4324:23:39", - "nodeType": "YulFunctionCall", - "src": "4324:23:39" - }, - { - "kind": "number", - "nativeSrc": "4349:2:39", - "nodeType": "YulLiteral", - "src": "4349:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4320:3:39", - "nodeType": "YulIdentifier", - "src": "4320:3:39" - }, - "nativeSrc": "4320:32:39", - "nodeType": "YulFunctionCall", - "src": "4320:32:39" - }, - "nativeSrc": "4317:119:39", - "nodeType": "YulIf", - "src": "4317:119:39" - }, - { - "nativeSrc": "4446:117:39", - "nodeType": "YulBlock", - "src": "4446:117:39", - "statements": [ - { - "nativeSrc": "4461:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4461:15:39", - "value": { - "kind": "number", - "nativeSrc": "4475:1:39", - "nodeType": "YulLiteral", - "src": "4475:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4465:6:39", - "nodeType": "YulTypedName", - "src": "4465:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4490:63:39", - "nodeType": "YulAssignment", - "src": "4490:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4525:9:39", - "nodeType": "YulIdentifier", - "src": "4525:9:39" - }, - { - "name": "offset", - "nativeSrc": "4536:6:39", - "nodeType": "YulIdentifier", - "src": "4536:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4521:3:39", - "nodeType": "YulIdentifier", - "src": "4521:3:39" - }, - "nativeSrc": "4521:22:39", - "nodeType": "YulFunctionCall", - "src": "4521:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4545:7:39", - "nodeType": "YulIdentifier", - "src": "4545:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "4500:20:39", - "nodeType": "YulIdentifier", - "src": "4500:20:39" - }, - "nativeSrc": "4500:53:39", - "nodeType": "YulFunctionCall", - "src": "4500:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4490:6:39", - "nodeType": "YulIdentifier", - "src": "4490:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4573:313:39", - "nodeType": "YulBlock", - "src": "4573:313:39", - "statements": [ - { - "nativeSrc": "4588:46:39", - "nodeType": "YulVariableDeclaration", - "src": "4588:46:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4619:9:39", - "nodeType": "YulIdentifier", - "src": "4619:9:39" - }, - { - "kind": "number", - "nativeSrc": "4630:2:39", - "nodeType": "YulLiteral", - "src": "4630:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4615:3:39", - "nodeType": "YulIdentifier", - "src": "4615:3:39" - }, - "nativeSrc": "4615:18:39", - "nodeType": "YulFunctionCall", - "src": "4615:18:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4602:12:39", - "nodeType": "YulIdentifier", - "src": "4602:12:39" - }, - "nativeSrc": "4602:32:39", - "nodeType": "YulFunctionCall", - "src": "4602:32:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4592:6:39", - "nodeType": "YulTypedName", - "src": "4592:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "4681:83:39", - "nodeType": "YulBlock", - "src": "4681:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "4683:77:39", - "nodeType": "YulIdentifier", - "src": "4683:77:39" - }, - "nativeSrc": "4683:79:39", - "nodeType": "YulFunctionCall", - "src": "4683:79:39" - }, - "nativeSrc": "4683:79:39", - "nodeType": "YulExpressionStatement", - "src": "4683:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "4653:6:39", - "nodeType": "YulIdentifier", - "src": "4653:6:39" - }, - { - "kind": "number", - "nativeSrc": "4661:18:39", - "nodeType": "YulLiteral", - "src": "4661:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "4650:2:39", - "nodeType": "YulIdentifier", - "src": "4650:2:39" - }, - "nativeSrc": "4650:30:39", - "nodeType": "YulFunctionCall", - "src": "4650:30:39" - }, - "nativeSrc": "4647:117:39", - "nodeType": "YulIf", - "src": "4647:117:39" - }, - { - "nativeSrc": "4778:98:39", - "nodeType": "YulAssignment", - "src": "4778:98:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4848:9:39", - "nodeType": "YulIdentifier", - "src": "4848:9:39" - }, - { - "name": "offset", - "nativeSrc": "4859:6:39", - "nodeType": "YulIdentifier", - "src": "4859:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4844:3:39", - "nodeType": "YulIdentifier", - "src": "4844:3:39" - }, - "nativeSrc": "4844:22:39", - "nodeType": "YulFunctionCall", - "src": "4844:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4868:7:39", - "nodeType": "YulIdentifier", - "src": "4868:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", - "nativeSrc": "4796:47:39", - "nodeType": "YulIdentifier", - "src": "4796:47:39" - }, - "nativeSrc": "4796:80:39", - "nodeType": "YulFunctionCall", - "src": "4796:80:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4778:6:39", - "nodeType": "YulIdentifier", - "src": "4778:6:39" - }, - { - "name": "value2", - "nativeSrc": "4786:6:39", - "nodeType": "YulIdentifier", - "src": "4786:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4896:340:39", - "nodeType": "YulBlock", - "src": "4896:340:39", - "statements": [ - { - "nativeSrc": "4911:46:39", - "nodeType": "YulVariableDeclaration", - "src": "4911:46:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4942:9:39", - "nodeType": "YulIdentifier", - "src": "4942:9:39" - }, - { - "kind": "number", - "nativeSrc": "4953:2:39", - "nodeType": "YulLiteral", - "src": "4953:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4938:3:39", - "nodeType": "YulIdentifier", - "src": "4938:3:39" - }, - "nativeSrc": "4938:18:39", - "nodeType": "YulFunctionCall", - "src": "4938:18:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4925:12:39", - "nodeType": "YulIdentifier", - "src": "4925:12:39" - }, - "nativeSrc": "4925:32:39", - "nodeType": "YulFunctionCall", - "src": "4925:32:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4915:6:39", - "nodeType": "YulTypedName", - "src": "4915:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5004:83:39", - "nodeType": "YulBlock", - "src": "5004:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "5006:77:39", - "nodeType": "YulIdentifier", - "src": "5006:77:39" - }, - "nativeSrc": "5006:79:39", - "nodeType": "YulFunctionCall", - "src": "5006:79:39" - }, - "nativeSrc": "5006:79:39", - "nodeType": "YulExpressionStatement", - "src": "5006:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "4976:6:39", - "nodeType": "YulIdentifier", - "src": "4976:6:39" - }, - { - "kind": "number", - "nativeSrc": "4984:18:39", - "nodeType": "YulLiteral", - "src": "4984:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "4973:2:39", - "nodeType": "YulIdentifier", - "src": "4973:2:39" - }, - "nativeSrc": "4973:30:39", - "nodeType": "YulFunctionCall", - "src": "4973:30:39" - }, - "nativeSrc": "4970:117:39", - "nodeType": "YulIf", - "src": "4970:117:39" - }, - { - "nativeSrc": "5101:125:39", - "nodeType": "YulAssignment", - "src": "5101:125:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5198:9:39", - "nodeType": "YulIdentifier", - "src": "5198:9:39" - }, - { - "name": "offset", - "nativeSrc": "5209:6:39", - "nodeType": "YulIdentifier", - "src": "5209:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5194:3:39", - "nodeType": "YulIdentifier", - "src": "5194:3:39" - }, - "nativeSrc": "5194:22:39", - "nodeType": "YulFunctionCall", - "src": "5194:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "5218:7:39", - "nodeType": "YulIdentifier", - "src": "5218:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "nativeSrc": "5119:74:39", - "nodeType": "YulIdentifier", - "src": "5119:74:39" - }, - "nativeSrc": "5119:107:39", - "nodeType": "YulFunctionCall", - "src": "5119:107:39" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "5101:6:39", - "nodeType": "YulIdentifier", - "src": "5101:6:39" - }, - { - "name": "value4", - "nativeSrc": "5109:6:39", - "nodeType": "YulIdentifier", - "src": "5109:6:39" - } - ] - } - ] - } - ] - }, - "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:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4245:9:39", - "nodeType": "YulTypedName", - "src": "4245:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4256:7:39", - "nodeType": "YulTypedName", - "src": "4256:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4268:6:39", - "nodeType": "YulTypedName", - "src": "4268:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4276:6:39", - "nodeType": "YulTypedName", - "src": "4276:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4284:6:39", - "nodeType": "YulTypedName", - "src": "4284:6:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "4292:6:39", - "nodeType": "YulTypedName", - "src": "4292:6:39", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "4300:6:39", - "nodeType": "YulTypedName", - "src": "4300:6:39", - "type": "" - } - ], - "src": "4110:1133:39" - }, - { - "body": { - "nativeSrc": "5281:28:39", - "nodeType": "YulBlock", - "src": "5281:28:39", - "statements": [ - { - "nativeSrc": "5291:12:39", - "nodeType": "YulAssignment", - "src": "5291:12:39", - "value": { - "name": "value", - "nativeSrc": "5298:5:39", - "nodeType": "YulIdentifier", - "src": "5298:5:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "5291:3:39", - "nodeType": "YulIdentifier", - "src": "5291:3:39" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "5249:60:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5267:5:39", - "nodeType": "YulTypedName", - "src": "5267:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "5277:3:39", - "nodeType": "YulTypedName", - "src": "5277:3:39", - "type": "" - } - ], - "src": "5249:60:39" - }, - { - "body": { - "nativeSrc": "5375:82:39", - "nodeType": "YulBlock", - "src": "5375:82:39", - "statements": [ - { - "nativeSrc": "5385:66:39", - "nodeType": "YulAssignment", - "src": "5385:66:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5443:5:39", - "nodeType": "YulIdentifier", - "src": "5443:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "5425:17:39", - "nodeType": "YulIdentifier", - "src": "5425:17:39" - }, - "nativeSrc": "5425:24:39", - "nodeType": "YulFunctionCall", - "src": "5425:24:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "5416:8:39", - "nodeType": "YulIdentifier", - "src": "5416:8:39" - }, - "nativeSrc": "5416:34:39", - "nodeType": "YulFunctionCall", - "src": "5416:34:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "5398:17:39", - "nodeType": "YulIdentifier", - "src": "5398:17:39" - }, - "nativeSrc": "5398:53:39", - "nodeType": "YulFunctionCall", - "src": "5398:53:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5385:9:39", - "nodeType": "YulIdentifier", - "src": "5385:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "5315:142:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5355:5:39", - "nodeType": "YulTypedName", - "src": "5355:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5365:9:39", - "nodeType": "YulTypedName", - "src": "5365:9:39", - "type": "" - } - ], - "src": "5315:142:39" - }, - { - "body": { - "nativeSrc": "5523:66:39", - "nodeType": "YulBlock", - "src": "5523:66:39", - "statements": [ - { - "nativeSrc": "5533:50:39", - "nodeType": "YulAssignment", - "src": "5533:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5577:5:39", - "nodeType": "YulIdentifier", - "src": "5577:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "5546:30:39", - "nodeType": "YulIdentifier", - "src": "5546:30:39" - }, - "nativeSrc": "5546:37:39", - "nodeType": "YulFunctionCall", - "src": "5546:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5533:9:39", - "nodeType": "YulIdentifier", - "src": "5533:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "5463:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5503:5:39", - "nodeType": "YulTypedName", - "src": "5503:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5513:9:39", - "nodeType": "YulTypedName", - "src": "5513:9:39", - "type": "" - } - ], - "src": "5463:126:39" - }, - { - "body": { - "nativeSrc": "5676:66:39", - "nodeType": "YulBlock", - "src": "5676:66:39", - "statements": [ - { - "nativeSrc": "5686:50:39", - "nodeType": "YulAssignment", - "src": "5686:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5730:5:39", - "nodeType": "YulIdentifier", - "src": "5730:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "5699:30:39", - "nodeType": "YulIdentifier", - "src": "5699:30:39" - }, - "nativeSrc": "5699:37:39", - "nodeType": "YulFunctionCall", - "src": "5699:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5686:9:39", - "nodeType": "YulIdentifier", - "src": "5686:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "5595:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5656:5:39", - "nodeType": "YulTypedName", - "src": "5656:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5666:9:39", - "nodeType": "YulTypedName", - "src": "5666:9:39", - "type": "" - } - ], - "src": "5595:147:39" - }, - { - "body": { - "nativeSrc": "5834:87:39", - "nodeType": "YulBlock", - "src": "5834:87:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5851:3:39", - "nodeType": "YulIdentifier", - "src": "5851:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5908:5:39", - "nodeType": "YulIdentifier", - "src": "5908:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "5856:51:39", - "nodeType": "YulIdentifier", - "src": "5856:51:39" - }, - "nativeSrc": "5856:58:39", - "nodeType": "YulFunctionCall", - "src": "5856:58:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5844:6:39", - "nodeType": "YulIdentifier", - "src": "5844:6:39" - }, - "nativeSrc": "5844:71:39", - "nodeType": "YulFunctionCall", - "src": "5844:71:39" - }, - "nativeSrc": "5844:71:39", - "nodeType": "YulExpressionStatement", - "src": "5844:71:39" - } - ] - }, - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "5748:173:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5822:5:39", - "nodeType": "YulTypedName", - "src": "5822:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5829:3:39", - "nodeType": "YulTypedName", - "src": "5829:3:39", - "type": "" - } - ], - "src": "5748:173:39" - }, - { - "body": { - "nativeSrc": "6046:145:39", - "nodeType": "YulBlock", - "src": "6046:145:39", - "statements": [ - { - "nativeSrc": "6056:26:39", - "nodeType": "YulAssignment", - "src": "6056:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6068:9:39", - "nodeType": "YulIdentifier", - "src": "6068:9:39" - }, - { - "kind": "number", - "nativeSrc": "6079:2:39", - "nodeType": "YulLiteral", - "src": "6079:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6064:3:39", - "nodeType": "YulIdentifier", - "src": "6064:3:39" - }, - "nativeSrc": "6064:18:39", - "nodeType": "YulFunctionCall", - "src": "6064:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6056:4:39", - "nodeType": "YulIdentifier", - "src": "6056:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6157:6:39", - "nodeType": "YulIdentifier", - "src": "6157:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6170:9:39", - "nodeType": "YulIdentifier", - "src": "6170:9:39" - }, - { - "kind": "number", - "nativeSrc": "6181:1:39", - "nodeType": "YulLiteral", - "src": "6181:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6166:3:39", - "nodeType": "YulIdentifier", - "src": "6166:3:39" - }, - "nativeSrc": "6166:17:39", - "nodeType": "YulFunctionCall", - "src": "6166:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "6092:64:39", - "nodeType": "YulIdentifier", - "src": "6092:64:39" - }, - "nativeSrc": "6092:92:39", - "nodeType": "YulFunctionCall", - "src": "6092:92:39" - }, - "nativeSrc": "6092:92:39", - "nodeType": "YulExpressionStatement", - "src": "6092:92:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed", - "nativeSrc": "5927:264:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6018:9:39", - "nodeType": "YulTypedName", - "src": "6018:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "6030:6:39", - "nodeType": "YulTypedName", - "src": "6030:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "6041:4:39", - "nodeType": "YulTypedName", - "src": "6041:4:39", - "type": "" - } - ], - "src": "5927:264:39" - }, - { - "body": { - "nativeSrc": "6225:152:39", - "nodeType": "YulBlock", - "src": "6225:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6242:1:39", - "nodeType": "YulLiteral", - "src": "6242:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6245:77:39", - "nodeType": "YulLiteral", - "src": "6245:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6235:6:39", - "nodeType": "YulIdentifier", - "src": "6235:6:39" - }, - "nativeSrc": "6235:88:39", - "nodeType": "YulFunctionCall", - "src": "6235:88:39" - }, - "nativeSrc": "6235:88:39", - "nodeType": "YulExpressionStatement", - "src": "6235:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6339:1:39", - "nodeType": "YulLiteral", - "src": "6339:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "6342:4:39", - "nodeType": "YulLiteral", - "src": "6342:4:39", - "type": "", - "value": "0x32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6332:6:39", - "nodeType": "YulIdentifier", - "src": "6332:6:39" - }, - "nativeSrc": "6332:15:39", - "nodeType": "YulFunctionCall", - "src": "6332:15:39" - }, - "nativeSrc": "6332:15:39", - "nodeType": "YulExpressionStatement", - "src": "6332:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6363:1:39", - "nodeType": "YulLiteral", - "src": "6363:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6366:4:39", - "nodeType": "YulLiteral", - "src": "6366:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6356:6:39", - "nodeType": "YulIdentifier", - "src": "6356:6:39" - }, - "nativeSrc": "6356:15:39", - "nodeType": "YulFunctionCall", - "src": "6356:15:39" - }, - "nativeSrc": "6356:15:39", - "nodeType": "YulExpressionStatement", - "src": "6356:15:39" - } - ] - }, - "name": "panic_error_0x32", - "nativeSrc": "6197:180:39", - "nodeType": "YulFunctionDefinition", - "src": "6197:180:39" - }, - { - "body": { - "nativeSrc": "6472:28:39", - "nodeType": "YulBlock", - "src": "6472:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6489:1:39", - "nodeType": "YulLiteral", - "src": "6489:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6492:1:39", - "nodeType": "YulLiteral", - "src": "6492:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6482:6:39", - "nodeType": "YulIdentifier", - "src": "6482:6:39" - }, - "nativeSrc": "6482:12:39", - "nodeType": "YulFunctionCall", - "src": "6482:12:39" - }, - "nativeSrc": "6482:12:39", - "nodeType": "YulExpressionStatement", - "src": "6482:12:39" - } - ] - }, - "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", - "nativeSrc": "6383:117:39", - "nodeType": "YulFunctionDefinition", - "src": "6383:117:39" - }, - { - "body": { - "nativeSrc": "6595:28:39", - "nodeType": "YulBlock", - "src": "6595:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6612:1:39", - "nodeType": "YulLiteral", - "src": "6612:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6615:1:39", - "nodeType": "YulLiteral", - "src": "6615:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6605:6:39", - "nodeType": "YulIdentifier", - "src": "6605:6:39" - }, - "nativeSrc": "6605:12:39", - "nodeType": "YulFunctionCall", - "src": "6605:12:39" - }, - "nativeSrc": "6605:12:39", - "nodeType": "YulExpressionStatement", - "src": "6605:12:39" - } - ] - }, - "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", - "nativeSrc": "6506:117:39", - "nodeType": "YulFunctionDefinition", - "src": "6506:117:39" - }, - { - "body": { - "nativeSrc": "6718:28:39", - "nodeType": "YulBlock", - "src": "6718:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6735:1:39", - "nodeType": "YulLiteral", - "src": "6735:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6738:1:39", - "nodeType": "YulLiteral", - "src": "6738:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6728:6:39", - "nodeType": "YulIdentifier", - "src": "6728:6:39" - }, - "nativeSrc": "6728:12:39", - "nodeType": "YulFunctionCall", - "src": "6728:12:39" - }, - "nativeSrc": "6728:12:39", - "nodeType": "YulExpressionStatement", - "src": "6728:12:39" - } - ] - }, - "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", - "nativeSrc": "6629:117:39", - "nodeType": "YulFunctionDefinition", - "src": "6629:117:39" - }, - { - "body": { - "nativeSrc": "6858:634:39", - "nodeType": "YulBlock", - "src": "6858:634:39", - "statements": [ - { - "nativeSrc": "6868:51:39", - "nodeType": "YulVariableDeclaration", - "src": "6868:51:39", - "value": { - "arguments": [ - { - "name": "ptr_to_tail", - "nativeSrc": "6907:11:39", - "nodeType": "YulIdentifier", - "src": "6907:11:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "6894:12:39", - "nodeType": "YulIdentifier", - "src": "6894:12:39" - }, - "nativeSrc": "6894:25:39", - "nodeType": "YulFunctionCall", - "src": "6894:25:39" - }, - "variables": [ - { - "name": "rel_offset_of_tail", - "nativeSrc": "6872:18:39", - "nodeType": "YulTypedName", - "src": "6872:18:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "7013:83:39", - "nodeType": "YulBlock", - "src": "7013:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", - "nativeSrc": "7015:77:39", - "nodeType": "YulIdentifier", - "src": "7015:77:39" - }, - "nativeSrc": "7015:79:39", - "nodeType": "YulFunctionCall", - "src": "7015:79:39" - }, - "nativeSrc": "7015:79:39", - "nodeType": "YulExpressionStatement", - "src": "7015:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "rel_offset_of_tail", - "nativeSrc": "6942:18:39", - "nodeType": "YulIdentifier", - "src": "6942:18:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "calldatasize", - "nativeSrc": "6970:12:39", - "nodeType": "YulIdentifier", - "src": "6970:12:39" - }, - "nativeSrc": "6970:14:39", - "nodeType": "YulFunctionCall", - "src": "6970:14:39" - }, - { - "name": "base_ref", - "nativeSrc": "6986:8:39", - "nodeType": "YulIdentifier", - "src": "6986:8:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6966:3:39", - "nodeType": "YulIdentifier", - "src": "6966:3:39" - }, - "nativeSrc": "6966:29:39", - "nodeType": "YulFunctionCall", - "src": "6966:29:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7001:4:39", - "nodeType": "YulLiteral", - "src": "7001:4:39", - "type": "", - "value": "0x20" - }, - { - "kind": "number", - "nativeSrc": "7007:1:39", - "nodeType": "YulLiteral", - "src": "7007:1:39", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6997:3:39", - "nodeType": "YulIdentifier", - "src": "6997:3:39" - }, - "nativeSrc": "6997:12:39", - "nodeType": "YulFunctionCall", - "src": "6997:12:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6962:3:39", - "nodeType": "YulIdentifier", - "src": "6962:3:39" - }, - "nativeSrc": "6962:48:39", - "nodeType": "YulFunctionCall", - "src": "6962:48:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6938:3:39", - "nodeType": "YulIdentifier", - "src": "6938:3:39" - }, - "nativeSrc": "6938:73:39", - "nodeType": "YulFunctionCall", - "src": "6938:73:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "6931:6:39", - "nodeType": "YulIdentifier", - "src": "6931:6:39" - }, - "nativeSrc": "6931:81:39", - "nodeType": "YulFunctionCall", - "src": "6931:81:39" - }, - "nativeSrc": "6928:168:39", - "nodeType": "YulIf", - "src": "6928:168:39" - }, - { - "nativeSrc": "7105:41:39", - "nodeType": "YulAssignment", - "src": "7105:41:39", - "value": { - "arguments": [ - { - "name": "base_ref", - "nativeSrc": "7117:8:39", - "nodeType": "YulIdentifier", - "src": "7117:8:39" - }, - { - "name": "rel_offset_of_tail", - "nativeSrc": "7127:18:39", - "nodeType": "YulIdentifier", - "src": "7127:18:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7113:3:39", - "nodeType": "YulIdentifier", - "src": "7113:3:39" - }, - "nativeSrc": "7113:33:39", - "nodeType": "YulFunctionCall", - "src": "7113:33:39" - }, - "variableNames": [ - { - "name": "addr", - "nativeSrc": "7105:4:39", - "nodeType": "YulIdentifier", - "src": "7105:4:39" - } - ] - }, - { - "nativeSrc": "7156:28:39", - "nodeType": "YulAssignment", - "src": "7156:28:39", - "value": { - "arguments": [ - { - "name": "addr", - "nativeSrc": "7179:4:39", - "nodeType": "YulIdentifier", - "src": "7179:4:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7166:12:39", - "nodeType": "YulIdentifier", - "src": "7166:12:39" - }, - "nativeSrc": "7166:18:39", - "nodeType": "YulFunctionCall", - "src": "7166:18:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "7156:6:39", - "nodeType": "YulIdentifier", - "src": "7156:6:39" - } - ] - }, - { - "body": { - "nativeSrc": "7227:83:39", - "nodeType": "YulBlock", - "src": "7227:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", - "nativeSrc": "7229:77:39", - "nodeType": "YulIdentifier", - "src": "7229:77:39" - }, - "nativeSrc": "7229:79:39", - "nodeType": "YulFunctionCall", - "src": "7229:79:39" - }, - "nativeSrc": "7229:79:39", - "nodeType": "YulExpressionStatement", - "src": "7229:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "7199:6:39", - "nodeType": "YulIdentifier", - "src": "7199:6:39" - }, - { - "kind": "number", - "nativeSrc": "7207:18:39", - "nodeType": "YulLiteral", - "src": "7207:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "7196:2:39", - "nodeType": "YulIdentifier", - "src": "7196:2:39" - }, - "nativeSrc": "7196:30:39", - "nodeType": "YulFunctionCall", - "src": "7196:30:39" - }, - "nativeSrc": "7193:117:39", - "nodeType": "YulIf", - "src": "7193:117:39" - }, - { - "nativeSrc": "7319:21:39", - "nodeType": "YulAssignment", - "src": "7319:21:39", - "value": { - "arguments": [ - { - "name": "addr", - "nativeSrc": "7331:4:39", - "nodeType": "YulIdentifier", - "src": "7331:4:39" - }, - { - "kind": "number", - "nativeSrc": "7337:2:39", - "nodeType": "YulLiteral", - "src": "7337:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7327:3:39", - "nodeType": "YulIdentifier", - "src": "7327:3:39" - }, - "nativeSrc": "7327:13:39", - "nodeType": "YulFunctionCall", - "src": "7327:13:39" - }, - "variableNames": [ - { - "name": "addr", - "nativeSrc": "7319:4:39", - "nodeType": "YulIdentifier", - "src": "7319:4:39" - } - ] - }, - { - "body": { - "nativeSrc": "7402:83:39", - "nodeType": "YulBlock", - "src": "7402:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", - "nativeSrc": "7404:77:39", - "nodeType": "YulIdentifier", - "src": "7404:77:39" - }, - "nativeSrc": "7404:79:39", - "nodeType": "YulFunctionCall", - "src": "7404:79:39" - }, - "nativeSrc": "7404:79:39", - "nodeType": "YulExpressionStatement", - "src": "7404:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "addr", - "nativeSrc": "7356:4:39", - "nodeType": "YulIdentifier", - "src": "7356:4:39" - }, - { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "calldatasize", - "nativeSrc": "7366:12:39", - "nodeType": "YulIdentifier", - "src": "7366:12:39" - }, - "nativeSrc": "7366:14:39", - "nodeType": "YulFunctionCall", - "src": "7366:14:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "7386:6:39", - "nodeType": "YulIdentifier", - "src": "7386:6:39" - }, - { - "kind": "number", - "nativeSrc": "7394:4:39", - "nodeType": "YulLiteral", - "src": "7394:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "7382:3:39", - "nodeType": "YulIdentifier", - "src": "7382:3:39" - }, - "nativeSrc": "7382:17:39", - "nodeType": "YulFunctionCall", - "src": "7382:17:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7362:3:39", - "nodeType": "YulIdentifier", - "src": "7362:3:39" - }, - "nativeSrc": "7362:38:39", - "nodeType": "YulFunctionCall", - "src": "7362:38:39" - } - ], - "functionName": { - "name": "sgt", - "nativeSrc": "7352:3:39", - "nodeType": "YulIdentifier", - "src": "7352:3:39" - }, - "nativeSrc": "7352:49:39", - "nodeType": "YulFunctionCall", - "src": "7352:49:39" - }, - "nativeSrc": "7349:136:39", - "nodeType": "YulIf", - "src": "7349:136:39" - } - ] - }, - "name": "access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr", - "nativeSrc": "6752:740:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "base_ref", - "nativeSrc": "6819:8:39", - "nodeType": "YulTypedName", - "src": "6819:8:39", - "type": "" - }, - { - "name": "ptr_to_tail", - "nativeSrc": "6829:11:39", - "nodeType": "YulTypedName", - "src": "6829:11:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "addr", - "nativeSrc": "6845:4:39", - "nodeType": "YulTypedName", - "src": "6845:4:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "6851:6:39", - "nodeType": "YulTypedName", - "src": "6851:6:39", - "type": "" - } - ], - "src": "6752:740:39" - }, - { - "body": { - "nativeSrc": "7564:263:39", - "nodeType": "YulBlock", - "src": "7564:263:39", - "statements": [ - { - "body": { - "nativeSrc": "7610:83:39", - "nodeType": "YulBlock", - "src": "7610:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "7612:77:39", - "nodeType": "YulIdentifier", - "src": "7612:77:39" - }, - "nativeSrc": "7612:79:39", - "nodeType": "YulFunctionCall", - "src": "7612:79:39" - }, - "nativeSrc": "7612:79:39", - "nodeType": "YulExpressionStatement", - "src": "7612:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "7585:7:39", - "nodeType": "YulIdentifier", - "src": "7585:7:39" - }, - { - "name": "headStart", - "nativeSrc": "7594:9:39", - "nodeType": "YulIdentifier", - "src": "7594:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7581:3:39", - "nodeType": "YulIdentifier", - "src": "7581:3:39" - }, - "nativeSrc": "7581:23:39", - "nodeType": "YulFunctionCall", - "src": "7581:23:39" - }, - { - "kind": "number", - "nativeSrc": "7606:2:39", - "nodeType": "YulLiteral", - "src": "7606:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "7577:3:39", - "nodeType": "YulIdentifier", - "src": "7577:3:39" - }, - "nativeSrc": "7577:32:39", - "nodeType": "YulFunctionCall", - "src": "7577:32:39" - }, - "nativeSrc": "7574:119:39", - "nodeType": "YulIf", - "src": "7574:119:39" - }, - { - "nativeSrc": "7703:117:39", - "nodeType": "YulBlock", - "src": "7703:117:39", - "statements": [ - { - "nativeSrc": "7718:15:39", - "nodeType": "YulVariableDeclaration", - "src": "7718:15:39", - "value": { - "kind": "number", - "nativeSrc": "7732:1:39", - "nodeType": "YulLiteral", - "src": "7732:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "7722:6:39", - "nodeType": "YulTypedName", - "src": "7722:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "7747:63:39", - "nodeType": "YulAssignment", - "src": "7747:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7782:9:39", - "nodeType": "YulIdentifier", - "src": "7782:9:39" - }, - { - "name": "offset", - "nativeSrc": "7793:6:39", - "nodeType": "YulIdentifier", - "src": "7793:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7778:3:39", - "nodeType": "YulIdentifier", - "src": "7778:3:39" - }, - "nativeSrc": "7778:22:39", - "nodeType": "YulFunctionCall", - "src": "7778:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "7802:7:39", - "nodeType": "YulIdentifier", - "src": "7802:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "7757:20:39", - "nodeType": "YulIdentifier", - "src": "7757:20:39" - }, - "nativeSrc": "7757:53:39", - "nodeType": "YulFunctionCall", - "src": "7757:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "7747:6:39", - "nodeType": "YulIdentifier", - "src": "7747:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "7498:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7534:9:39", - "nodeType": "YulTypedName", - "src": "7534:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "7545:7:39", - "nodeType": "YulTypedName", - "src": "7545:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "7557:6:39", - "nodeType": "YulTypedName", - "src": "7557:6:39", - "type": "" - } - ], - "src": "7498:329:39" - }, - { - "body": { - "nativeSrc": "7898:53:39", - "nodeType": "YulBlock", - "src": "7898:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7915:3:39", - "nodeType": "YulIdentifier", - "src": "7915:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "7938:5:39", - "nodeType": "YulIdentifier", - "src": "7938:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "7920:17:39", - "nodeType": "YulIdentifier", - "src": "7920:17:39" - }, - "nativeSrc": "7920:24:39", - "nodeType": "YulFunctionCall", - "src": "7920:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7908:6:39", - "nodeType": "YulIdentifier", - "src": "7908:6:39" - }, - "nativeSrc": "7908:37:39", - "nodeType": "YulFunctionCall", - "src": "7908:37:39" - }, - "nativeSrc": "7908:37:39", - "nodeType": "YulExpressionStatement", - "src": "7908:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "7833:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7886:5:39", - "nodeType": "YulTypedName", - "src": "7886:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "7893:3:39", - "nodeType": "YulTypedName", - "src": "7893:3:39", - "type": "" - } - ], - "src": "7833:118:39" - }, - { - "body": { - "nativeSrc": "8055:124:39", - "nodeType": "YulBlock", - "src": "8055:124:39", - "statements": [ - { - "nativeSrc": "8065:26:39", - "nodeType": "YulAssignment", - "src": "8065:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8077:9:39", - "nodeType": "YulIdentifier", - "src": "8077:9:39" - }, - { - "kind": "number", - "nativeSrc": "8088:2:39", - "nodeType": "YulLiteral", - "src": "8088:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8073:3:39", - "nodeType": "YulIdentifier", - "src": "8073:3:39" - }, - "nativeSrc": "8073:18:39", - "nodeType": "YulFunctionCall", - "src": "8073:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8065:4:39", - "nodeType": "YulIdentifier", - "src": "8065:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8145:6:39", - "nodeType": "YulIdentifier", - "src": "8145:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8158:9:39", - "nodeType": "YulIdentifier", - "src": "8158:9:39" - }, - { - "kind": "number", - "nativeSrc": "8169:1:39", - "nodeType": "YulLiteral", - "src": "8169:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8154:3:39", - "nodeType": "YulIdentifier", - "src": "8154:3:39" - }, - "nativeSrc": "8154:17:39", - "nodeType": "YulFunctionCall", - "src": "8154:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "8101:43:39", - "nodeType": "YulIdentifier", - "src": "8101:43:39" - }, - "nativeSrc": "8101:71:39", - "nodeType": "YulFunctionCall", - "src": "8101:71:39" - }, - "nativeSrc": "8101:71:39", - "nodeType": "YulExpressionStatement", - "src": "8101:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "7957:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8027:9:39", - "nodeType": "YulTypedName", - "src": "8027:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8039:6:39", - "nodeType": "YulTypedName", - "src": "8039:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8050:4:39", - "nodeType": "YulTypedName", - "src": "8050:4:39", - "type": "" - } - ], - "src": "7957:222:39" - }, - { - "body": { - "nativeSrc": "8213:152:39", - "nodeType": "YulBlock", - "src": "8213:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8230:1:39", - "nodeType": "YulLiteral", - "src": "8230:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8233:77:39", - "nodeType": "YulLiteral", - "src": "8233:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8223:6:39", - "nodeType": "YulIdentifier", - "src": "8223:6:39" - }, - "nativeSrc": "8223:88:39", - "nodeType": "YulFunctionCall", - "src": "8223:88:39" - }, - "nativeSrc": "8223:88:39", - "nodeType": "YulExpressionStatement", - "src": "8223:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8327:1:39", - "nodeType": "YulLiteral", - "src": "8327:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "8330:4:39", - "nodeType": "YulLiteral", - "src": "8330:4:39", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8320:6:39", - "nodeType": "YulIdentifier", - "src": "8320:6:39" - }, - "nativeSrc": "8320:15:39", - "nodeType": "YulFunctionCall", - "src": "8320:15:39" - }, - "nativeSrc": "8320:15:39", - "nodeType": "YulExpressionStatement", - "src": "8320:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8351:1:39", - "nodeType": "YulLiteral", - "src": "8351:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8354:4:39", - "nodeType": "YulLiteral", - "src": "8354:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "8344:6:39", - "nodeType": "YulIdentifier", - "src": "8344:6:39" - }, - "nativeSrc": "8344:15:39", - "nodeType": "YulFunctionCall", - "src": "8344:15:39" - }, - "nativeSrc": "8344:15:39", - "nodeType": "YulExpressionStatement", - "src": "8344:15:39" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "8185:180:39", - "nodeType": "YulFunctionDefinition", - "src": "8185:180:39" - }, - { - "body": { - "nativeSrc": "8414:190:39", - "nodeType": "YulBlock", - "src": "8414:190:39", - "statements": [ - { - "nativeSrc": "8424:33:39", - "nodeType": "YulAssignment", - "src": "8424:33:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8451:5:39", - "nodeType": "YulIdentifier", - "src": "8451:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "8433:17:39", - "nodeType": "YulIdentifier", - "src": "8433:17:39" - }, - "nativeSrc": "8433:24:39", - "nodeType": "YulFunctionCall", - "src": "8433:24:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "8424:5:39", - "nodeType": "YulIdentifier", - "src": "8424:5:39" - } - ] - }, - { - "body": { - "nativeSrc": "8547:22:39", - "nodeType": "YulBlock", - "src": "8547:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "8549:16:39", - "nodeType": "YulIdentifier", - "src": "8549:16:39" - }, - "nativeSrc": "8549:18:39", - "nodeType": "YulFunctionCall", - "src": "8549:18:39" - }, - "nativeSrc": "8549:18:39", - "nodeType": "YulExpressionStatement", - "src": "8549:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8472:5:39", - "nodeType": "YulIdentifier", - "src": "8472:5:39" - }, - { - "kind": "number", - "nativeSrc": "8479:66:39", - "nodeType": "YulLiteral", - "src": "8479:66:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "8469:2:39", - "nodeType": "YulIdentifier", - "src": "8469:2:39" - }, - "nativeSrc": "8469:77:39", - "nodeType": "YulFunctionCall", - "src": "8469:77:39" - }, - "nativeSrc": "8466:103:39", - "nodeType": "YulIf", - "src": "8466:103:39" - }, - { - "nativeSrc": "8578:20:39", - "nodeType": "YulAssignment", - "src": "8578:20:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8589:5:39", - "nodeType": "YulIdentifier", - "src": "8589:5:39" - }, - { - "kind": "number", - "nativeSrc": "8596:1:39", - "nodeType": "YulLiteral", - "src": "8596:1:39", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8585:3:39", - "nodeType": "YulIdentifier", - "src": "8585:3:39" - }, - "nativeSrc": "8585:13:39", - "nodeType": "YulFunctionCall", - "src": "8585:13:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "8578:3:39", - "nodeType": "YulIdentifier", - "src": "8578:3:39" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nativeSrc": "8371:233:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8400:5:39", - "nodeType": "YulTypedName", - "src": "8400:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "8410:3:39", - "nodeType": "YulTypedName", - "src": "8410:3:39", - "type": "" - } - ], - "src": "8371:233:39" - }, - { - "body": { - "nativeSrc": "8675:53:39", - "nodeType": "YulBlock", - "src": "8675:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8692:3:39", - "nodeType": "YulIdentifier", - "src": "8692:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "8715:5:39", - "nodeType": "YulIdentifier", - "src": "8715:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "8697:17:39", - "nodeType": "YulIdentifier", - "src": "8697:17:39" - }, - "nativeSrc": "8697:24:39", - "nodeType": "YulFunctionCall", - "src": "8697:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8685:6:39", - "nodeType": "YulIdentifier", - "src": "8685:6:39" - }, - "nativeSrc": "8685:37:39", - "nodeType": "YulFunctionCall", - "src": "8685:37:39" - }, - "nativeSrc": "8685:37:39", - "nodeType": "YulExpressionStatement", - "src": "8685:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "8610:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8663:5:39", - "nodeType": "YulTypedName", - "src": "8663:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "8670:3:39", - "nodeType": "YulTypedName", - "src": "8670:3:39", - "type": "" - } - ], - "src": "8610:118:39" - }, - { - "body": { - "nativeSrc": "8832:124:39", - "nodeType": "YulBlock", - "src": "8832:124:39", - "statements": [ - { - "nativeSrc": "8842:26:39", - "nodeType": "YulAssignment", - "src": "8842:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8854:9:39", - "nodeType": "YulIdentifier", - "src": "8854:9:39" - }, - { - "kind": "number", - "nativeSrc": "8865:2:39", - "nodeType": "YulLiteral", - "src": "8865:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8850:3:39", - "nodeType": "YulIdentifier", - "src": "8850:3:39" - }, - "nativeSrc": "8850:18:39", - "nodeType": "YulFunctionCall", - "src": "8850:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8842:4:39", - "nodeType": "YulIdentifier", - "src": "8842:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8922:6:39", - "nodeType": "YulIdentifier", - "src": "8922:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8935:9:39", - "nodeType": "YulIdentifier", - "src": "8935:9:39" - }, - { - "kind": "number", - "nativeSrc": "8946:1:39", - "nodeType": "YulLiteral", - "src": "8946:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8931:3:39", - "nodeType": "YulIdentifier", - "src": "8931:3:39" - }, - "nativeSrc": "8931:17:39", - "nodeType": "YulFunctionCall", - "src": "8931:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "8878:43:39", - "nodeType": "YulIdentifier", - "src": "8878:43:39" - }, - "nativeSrc": "8878:71:39", - "nodeType": "YulFunctionCall", - "src": "8878:71:39" - }, - "nativeSrc": "8878:71:39", - "nodeType": "YulExpressionStatement", - "src": "8878:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "8734:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8804:9:39", - "nodeType": "YulTypedName", - "src": "8804:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8816:6:39", - "nodeType": "YulTypedName", - "src": "8816:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8827:4:39", - "nodeType": "YulTypedName", - "src": "8827:4:39", - "type": "" - } - ], - "src": "8734:222:39" - }, - { - "body": { - "nativeSrc": "9025:80:39", - "nodeType": "YulBlock", - "src": "9025:80:39", - "statements": [ - { - "nativeSrc": "9035:22:39", - "nodeType": "YulAssignment", - "src": "9035:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "9050:6:39", - "nodeType": "YulIdentifier", - "src": "9050:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "9044:5:39", - "nodeType": "YulIdentifier", - "src": "9044:5:39" - }, - "nativeSrc": "9044:13:39", - "nodeType": "YulFunctionCall", - "src": "9044:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "9035:5:39", - "nodeType": "YulIdentifier", - "src": "9035:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "9093:5:39", - "nodeType": "YulIdentifier", - "src": "9093:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "9066:26:39", - "nodeType": "YulIdentifier", - "src": "9066:26:39" - }, - "nativeSrc": "9066:33:39", - "nodeType": "YulFunctionCall", - "src": "9066:33:39" - }, - "nativeSrc": "9066:33:39", - "nodeType": "YulExpressionStatement", - "src": "9066:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "8962:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "9003:6:39", - "nodeType": "YulTypedName", - "src": "9003:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "9011:3:39", - "nodeType": "YulTypedName", - "src": "9011:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "9019:5:39", - "nodeType": "YulTypedName", - "src": "9019:5:39", - "type": "" - } - ], - "src": "8962:143:39" - }, - { - "body": { - "nativeSrc": "9188:274:39", - "nodeType": "YulBlock", - "src": "9188:274:39", - "statements": [ - { - "body": { - "nativeSrc": "9234:83:39", - "nodeType": "YulBlock", - "src": "9234:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "9236:77:39", - "nodeType": "YulIdentifier", - "src": "9236:77:39" - }, - "nativeSrc": "9236:79:39", - "nodeType": "YulFunctionCall", - "src": "9236:79:39" - }, - "nativeSrc": "9236:79:39", - "nodeType": "YulExpressionStatement", - "src": "9236:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "9209:7:39", - "nodeType": "YulIdentifier", - "src": "9209:7:39" - }, - { - "name": "headStart", - "nativeSrc": "9218:9:39", - "nodeType": "YulIdentifier", - "src": "9218:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "9205:3:39", - "nodeType": "YulIdentifier", - "src": "9205:3:39" - }, - "nativeSrc": "9205:23:39", - "nodeType": "YulFunctionCall", - "src": "9205:23:39" - }, - { - "kind": "number", - "nativeSrc": "9230:2:39", - "nodeType": "YulLiteral", - "src": "9230:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "9201:3:39", - "nodeType": "YulIdentifier", - "src": "9201:3:39" - }, - "nativeSrc": "9201:32:39", - "nodeType": "YulFunctionCall", - "src": "9201:32:39" - }, - "nativeSrc": "9198:119:39", - "nodeType": "YulIf", - "src": "9198:119:39" - }, - { - "nativeSrc": "9327:128:39", - "nodeType": "YulBlock", - "src": "9327:128:39", - "statements": [ - { - "nativeSrc": "9342:15:39", - "nodeType": "YulVariableDeclaration", - "src": "9342:15:39", - "value": { - "kind": "number", - "nativeSrc": "9356:1:39", - "nodeType": "YulLiteral", - "src": "9356:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "9346:6:39", - "nodeType": "YulTypedName", - "src": "9346:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "9371:74:39", - "nodeType": "YulAssignment", - "src": "9371:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9417:9:39", - "nodeType": "YulIdentifier", - "src": "9417:9:39" - }, - { - "name": "offset", - "nativeSrc": "9428:6:39", - "nodeType": "YulIdentifier", - "src": "9428:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9413:3:39", - "nodeType": "YulIdentifier", - "src": "9413:3:39" - }, - "nativeSrc": "9413:22:39", - "nodeType": "YulFunctionCall", - "src": "9413:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "9437:7:39", - "nodeType": "YulIdentifier", - "src": "9437:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "9381:31:39", - "nodeType": "YulIdentifier", - "src": "9381:31:39" - }, - "nativeSrc": "9381:64:39", - "nodeType": "YulFunctionCall", - "src": "9381:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "9371:6:39", - "nodeType": "YulIdentifier", - "src": "9371:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "9111:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9158:9:39", - "nodeType": "YulTypedName", - "src": "9158:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "9169:7:39", - "nodeType": "YulTypedName", - "src": "9169:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "9181:6:39", - "nodeType": "YulTypedName", - "src": "9181:6:39", - "type": "" - } - ], - "src": "9111:351:39" - }, - { - "body": { - "nativeSrc": "9594:206:39", - "nodeType": "YulBlock", - "src": "9594:206:39", - "statements": [ - { - "nativeSrc": "9604:26:39", - "nodeType": "YulAssignment", - "src": "9604:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9616:9:39", - "nodeType": "YulIdentifier", - "src": "9616:9:39" - }, - { - "kind": "number", - "nativeSrc": "9627:2:39", - "nodeType": "YulLiteral", - "src": "9627:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9612:3:39", - "nodeType": "YulIdentifier", - "src": "9612:3:39" - }, - "nativeSrc": "9612:18:39", - "nodeType": "YulFunctionCall", - "src": "9612:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "9604:4:39", - "nodeType": "YulIdentifier", - "src": "9604:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "9684:6:39", - "nodeType": "YulIdentifier", - "src": "9684:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9697:9:39", - "nodeType": "YulIdentifier", - "src": "9697:9:39" - }, - { - "kind": "number", - "nativeSrc": "9708:1:39", - "nodeType": "YulLiteral", - "src": "9708:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9693:3:39", - "nodeType": "YulIdentifier", - "src": "9693:3:39" - }, - "nativeSrc": "9693:17:39", - "nodeType": "YulFunctionCall", - "src": "9693:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "9640:43:39", - "nodeType": "YulIdentifier", - "src": "9640:43:39" - }, - "nativeSrc": "9640:71:39", - "nodeType": "YulFunctionCall", - "src": "9640:71:39" - }, - "nativeSrc": "9640:71:39", - "nodeType": "YulExpressionStatement", - "src": "9640:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "9765:6:39", - "nodeType": "YulIdentifier", - "src": "9765:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9778:9:39", - "nodeType": "YulIdentifier", - "src": "9778:9:39" - }, - { - "kind": "number", - "nativeSrc": "9789:2:39", - "nodeType": "YulLiteral", - "src": "9789:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9774:3:39", - "nodeType": "YulIdentifier", - "src": "9774:3:39" - }, - "nativeSrc": "9774:18:39", - "nodeType": "YulFunctionCall", - "src": "9774:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "9721:43:39", - "nodeType": "YulIdentifier", - "src": "9721:43:39" - }, - "nativeSrc": "9721:72:39", - "nodeType": "YulFunctionCall", - "src": "9721:72:39" - }, - "nativeSrc": "9721:72:39", - "nodeType": "YulExpressionStatement", - "src": "9721:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "9468:332:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9558:9:39", - "nodeType": "YulTypedName", - "src": "9558:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "9570:6:39", - "nodeType": "YulTypedName", - "src": "9570:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "9578:6:39", - "nodeType": "YulTypedName", - "src": "9578:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "9589:4:39", - "nodeType": "YulTypedName", - "src": "9589:4:39", - "type": "" - } - ], - "src": "9468:332:39" - } - ] - }, - "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_$7736_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7736_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7736_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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "7147": [ - { - "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:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3372:557;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1774:690;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;817:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;349:38:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2647:663:38;;;;;;;;;;;;;:::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:29;890:7;899:10;872:17;:38::i;:::-;1981:9:38::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:29:-;;;:::o;2647:663:38:-;2816:12;:10;:12::i;:::-;2830:10;872:38:29;890:7;899:10;872:17;:38::i;:::-;2857:9:38::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:29:-;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:39:-;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": 8131, - "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-10/deployed_addresses.json b/ignition/deployments/chain-10/deployed_addresses.json deleted file mode 100644 index 3597bb1..0000000 --- a/ignition/deployments/chain-10/deployed_addresses.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "ProxyModule#SCI": "0xe324A37594561b3Bfe3f535Aa7108224a703710F", - "SciRegistry#SciRegistry": "0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A", - "EnsRegistrar#EnsRegistrar": "0xd58d48185146343720df2C26FcD8D3C3734e22cf", - "PublicListVerifier#PublicListVerifier": "0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5", - "ProxyModule#TransparentUpgradeableProxy": "0x5018467c486534Bd15dfE88694Cd0Cbb27A55663", - "ProxyModule#ProxyAdmin": "0xc0f4550909FF46204CE857d6557edE3c115093C0", - "SciModule#SCI": "0x5018467c486534Bd15dfE88694Cd0Cbb27A55663", - "SciRegstrar#SciRegistrar": "0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4" -} diff --git a/ignition/deployments/chain-10/journal.jsonl b/ignition/deployments/chain-10/journal.jsonl deleted file mode 100644 index 6abdc57..0000000 --- a/ignition/deployments/chain-10/journal.jsonl +++ /dev/null @@ -1,72 +0,0 @@ - -{"chainId":10,"type":"DEPLOYMENT_INITIALIZE"} -{"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":"0x6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"ProxyModule#SCI","networkInteractionId":1,"nonce":8,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000700"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x4dfd2aeb6d9772e2d73559a546123d537633ccad910ec128a1eec8a588babb63"},"type":"TRANSACTION_SEND"} -{"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":"0x60a060405234801561001057600080fd5b506040516129513803806129518339818101604052810190610032919061051a565b308161004261019560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b45760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100ab9190610588565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100ec6000801b8261019d60201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506000600360006101000a81548160ff02191690831515021790555061018f7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092387f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750961027660201b60201c565b506105a3565b600033905090565b60008060001b830361025e57600073ffffffffffffffffffffffffffffffffffffffff166101cf6102c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461021c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61026e83836102f060201b60201c565b905092915050565b6000801b82036102b2576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c282826103ed60201b60201c565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610302838361044e60201b60201c565b6103e257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061037f61019560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506103e7565b600090505b92915050565b60006103fe836104b860201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806000838152602001908152602001600020600101549050919050565b600080fd5b600065ffffffffffff82169050919050565b6104f7816104dc565b811461050257600080fd5b50565b600081519050610514816104ee565b92915050565b6000602082840312156105305761052f6104d7565b5b600061053e84828501610505565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061057282610547565b9050919050565b61058281610567565b82525050565b600060208201905061059d6000830184610579565b92915050565b60805161238c6105c560003960008181610924015261115a015261238c6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ccb565b6105ff565b6040516102279190611d13565b60405180910390f35b610238610679565b6040516102459190611d4f565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611da0565b61069c565b60405161027f9190611ddc565b60405180910390f35b6102a2600480360381019061029d9190611e55565b6106bb565b005b6102be60048036038101906102b99190611e55565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611da0565b610827565b6040516102f19190611ef4565b60405180910390f35b610314600480360381019061030f9190611da0565b610867565b6040516103249493929190611f37565b60405180910390f35b6103356108d7565b6040516103429190611d13565b60405180910390f35b61036560048036038101906103609190611f7c565b6108ee565b005b610381600480360381019061037c9190611fd5565b610908565b005b61038b610922565b6040516103989190612023565b60405180910390f35b6103bb60048036038101906103b69190611e55565b610946565b6040516103c89190611d13565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061203e565b60405180910390f35b6104016109e6565b60405161040e919061203e565b60405180910390f35b610431600480360381019061042c9190611e55565b6109f5565b60405161043e9190611d13565b60405180910390f35b61044f610a5f565b60405161045d929190612059565b60405180910390f35b61046e610abf565b60405161047b9190611ddc565b60405180910390f35b61049e60048036038101906104999190611da0565b610ac6565b6040516104ab9190612082565b60405180910390f35b6104ce60048036038101906104c991906120db565b610ae6565b005b6104ea60048036038101906104e5919061211b565b610b09565b005b6104f4610b17565b6040516105019190611ddc565b60405180910390f35b610512610b3b565b60405161051f9190611d4f565b60405180910390f35b610530610ba9565b005b61053a610c3f565b60405161054892919061215b565b60405180910390f35b61056b60048036038101906105669190611da0565b610c82565b604051610578919061203e565b60405180910390f35b61059b60048036038101906105969190611e55565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612184565b610d24565b005b6105cb610d3d565b6040516105d89190611ddc565b60405180910390f35b6105e9610d61565b6040516105f69190611ddc565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d4f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061203e565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061203e565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b6110119190612206565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d4f565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d9190612206565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612059565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061203e565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611ddc565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612255565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611243929190612282565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061203e565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d4f565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c4929190612282565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122f3565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b2919061231c565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061203e565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000611c408284108484611c48565b905092915050565b6000611c5384611c62565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ca881611c73565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b600060208284031215611ce157611ce0611c6e565b5b6000611cef84828501611cb6565b91505092915050565b60008115159050919050565b611d0d81611cf8565b82525050565b6000602082019050611d286000830184611d04565b92915050565b600065ffffffffffff82169050919050565b611d4981611d2e565b82525050565b6000602082019050611d646000830184611d40565b92915050565b6000819050919050565b611d7d81611d6a565b8114611d8857600080fd5b50565b600081359050611d9a81611d74565b92915050565b600060208284031215611db657611db5611c6e565b5b6000611dc484828501611d8b565b91505092915050565b611dd681611d6a565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e2282611df7565b9050919050565b611e3281611e17565b8114611e3d57600080fd5b50565b600081359050611e4f81611e29565b92915050565b60008060408385031215611e6c57611e6b611c6e565b5b6000611e7a85828601611d8b565b9250506020611e8b85828601611e40565b9150509250929050565b6000819050919050565b6000611eba611eb5611eb084611df7565b611e95565b611df7565b9050919050565b6000611ecc82611e9f565b9050919050565b6000611ede82611ec1565b9050919050565b611eee81611ed3565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b611f1881611e17565b82525050565b6000819050919050565b611f3181611f1e565b82525050565b6000608082019050611f4c6000830187611f0f565b611f596020830186611ee5565b611f666040830185611f28565b611f736060830184611f28565b95945050505050565b600060208284031215611f9257611f91611c6e565b5b6000611fa084828501611e40565b91505092915050565b611fb281611d2e565b8114611fbd57600080fd5b50565b600081359050611fcf81611fa9565b92915050565b600060208284031215611feb57611fea611c6e565b5b6000611ff984828501611fc0565b91505092915050565b600061200d82611ec1565b9050919050565b61201d81612002565b82525050565b60006020820190506120386000830184612014565b92915050565b60006020820190506120536000830184611f0f565b92915050565b600060408201905061206e6000830185611d40565b61207b6020830184611d40565b9392505050565b60006020820190506120976000830184611f28565b92915050565b60006120a882611e17565b9050919050565b6120b88161209d565b81146120c357600080fd5b50565b6000813590506120d5816120af565b92915050565b600080604083850312156120f2576120f1611c6e565b5b600061210085828601611d8b565b9250506020612111858286016120c6565b9150509250929050565b6000806040838503121561213257612131611c6e565b5b600061214085828601611e40565b925050602061215185828601611d8b565b9150509250929050565b60006040820190506121706000830185611f0f565b61217d6020830184611d40565b9392505050565b60008060006060848603121561219d5761219c611c6e565b5b60006121ab86828701611e40565b93505060206121bc86828701611d8b565b92505060406121cd868287016120c6565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061221182611d2e565b915061221c83611d2e565b9250828201905065ffffffffffff81111561223a576122396121d7565b5b92915050565b60008151905061224f81611e29565b92915050565b60006020828403121561226b5761226a611c6e565b5b600061227984828501612240565b91505092915050565b60006040820190506122976000830185611f0f565b6122a46020830184611dcd565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122dd6122d86122d3846122ab565b611e95565b6122b5565b9050919050565b6122ed816122c2565b82525050565b600060408201905061230860008301856122e4565b6123156020830184611f28565b9392505050565b600061232782611d2e565b915061233283611d2e565b9250828203905065ffffffffffff8111156123505761234f6121d7565b5b9291505056fea26469706673582212208d9faa5a557b2963a1f0927d9241c63c1ae66f5d48267732b4a8678b6cd45e3b64736f6c634300081c00330000000000000000000000000000000000000000000000000000000000000000","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":"1000700"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x0f64a6c63278532a4cd6c8fa1a1e4d05c0b4389156827a51de0e5016790cf6c4"},"type":"TRANSACTION_SEND"} -{"futureId":"ProxyModule#SCI","hash":"0x4dfd2aeb6d9772e2d73559a546123d537633ccad910ec128a1eec8a588babb63","networkInteractionId":1,"receipt":{"blockHash":"0x555a8e7d2c70340686dfa368dd2d27b4e8c4d3428c5bb2c8c6a6a8520e59c096","blockNumber":129914587,"contractAddress":"0xe324A37594561b3Bfe3f535Aa7108224a703710F","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"ProxyModule#SCI","result":{"address":"0xe324A37594561b3Bfe3f535Aa7108224a703710F","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"SciRegistry#SciRegistry","hash":"0x0f64a6c63278532a4cd6c8fa1a1e4d05c0b4389156827a51de0e5016790cf6c4","networkInteractionId":1,"receipt":{"blockHash":"0x160ec5885b2f67b6584b6008d1b9b39c994be35bb755efb97e1f54ab42d233bc","blockNumber":129914593,"contractAddress":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","logs":[{"address":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","data":"0x","logIndex":5,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]},{"address":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","data":"0x","logIndex":6,"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":"1000698"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xfa93eba5dd4e010d834b6b22fd848c1cae8d1598b835fe5765553555da22dc9f"},"type":"TRANSACTION_SEND"} -{"futureId":"SciRegistry#SciRegistry.grantRole","hash":"0xfa93eba5dd4e010d834b6b22fd848c1cae8d1598b835fe5765553555da22dc9f","networkInteractionId":1,"receipt":{"blockHash":"0xad860975374e1b1d0b2114b83e5faa6d4e87e68a9eceb7fecf14a1dc2f754e67","blockNumber":129914602,"logs":[{"address":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","data":"0x","logIndex":26,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SciRegistry#SciRegistry.grantRole","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"EnsRegistrar#EnsRegistrar","constructorArgs":["0x0000000000000000000000000000000000000000","0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A"],"contractName":"EnsRegistrar","dependencies":["SciRegistry#SciRegistry"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","futureId":"EnsRegistrar#EnsRegistrar","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"EnsRegistrar#EnsRegistrar","networkInteraction":{"data":"0x60c060405234801561001057600080fd5b5060405161082e38038061082e83398181016040528101906100329190610104565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250505050610144565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100d1826100a6565b9050919050565b6100e1816100c6565b81146100ec57600080fd5b50565b6000815190506100fe816100d8565b92915050565b6000806040838503121561011b5761011a6100a1565b5b6000610129858286016100ef565b925050602061013a858286016100ef565b9150509250929050565b60805160a0516106b161017d6000396000818160da0152818161017601526101ca01526000818161019a015261027c01526106b16000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea2646970667358221220c90dbfa0c27c6833e6ed98d1937d68c4ddcf4ef68d5d349eef2753821461b49064736f6c634300081c00330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000add75aecd98f0adad899729c88bfed4f8951c02a","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"EnsRegistrar#EnsRegistrar","networkInteractionId":1,"nonce":11,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000696"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x4bd98092cad66ad47cd513919315a251a9c8f4a4fef92de192d9478353081b36"},"type":"TRANSACTION_SEND"} -{"args":[],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","dependencies":["SciRegistry#SciRegistry"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","functionName":"REGISTRAR_ROLE","futureId":"EnsRegistrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","nameOrIndex":0,"strategy":"basic","strategyConfig":{},"type":"STATIC_CALL_EXECUTION_STATE_INITIALIZE"} -{"futureId":"EnsRegistrar#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":"EnsRegistrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","networkInteractionId":1,"result":{"customErrorReported":false,"returnData":"0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","success":true},"type":"STATIC_CALL_COMPLETE"} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","result":{"type":"SUCCESS","value":"0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238"},"type":"STATIC_CALL_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":"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":12,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000696"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x86163f84545775761efb15932fc569825811a164387432e41273c43784ccba9b"},"type":"TRANSACTION_SEND"} -{"futureId":"EnsRegistrar#EnsRegistrar","hash":"0x4bd98092cad66ad47cd513919315a251a9c8f4a4fef92de192d9478353081b36","networkInteractionId":1,"receipt":{"blockHash":"0x9ab9838fb9ae530bacfab4c68668ea9c5593c88383d150a3144ee2eedf229919","blockNumber":129914611,"contractAddress":"0xd58d48185146343720df2C26FcD8D3C3734e22cf","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"EnsRegistrar#EnsRegistrar","result":{"address":"0xd58d48185146343720df2C26FcD8D3C3734e22cf","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"PublicListVerifier#PublicListVerifier","hash":"0x86163f84545775761efb15932fc569825811a164387432e41273c43784ccba9b","networkInteractionId":1,"receipt":{"blockHash":"0xa20263144c4d3b00c149aba48234ca7148b14a95e3c2f78400eedeb5cab1826a","blockNumber":129914617,"contractAddress":"0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"PublicListVerifier#PublicListVerifier","result":{"address":"0x83223D23E769CFE4b8bec8A32Eb148d0dbEc4dE5","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"args":["0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","0xd58d48185146343720df2C26FcD8D3C3734e22cf"],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","dependencies":["SciRegistry#SciRegistry","EnsRegistrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","EnsRegistrar#EnsRegistrar"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","functionName":"grantRole","futureId":"EnsRegistrar#SciRegistry~SciRegistry.grantRole","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.grantRole","networkInteraction":{"data":"0x2f2ff15dedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238000000000000000000000000d58d48185146343720df2c26fcd8d3c3734e22cf","id":1,"to":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.grantRole","networkInteractionId":1,"nonce":13,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000698"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xfc6c4b0293c4ae83d6b43e496877681ec0a7952c8f25d4a584c96498531e7f8e"},"type":"TRANSACTION_SEND"} -{"artifactId":"ProxyModule#TransparentUpgradeableProxy","constructorArgs":["0xe324A37594561b3Bfe3f535Aa7108224a703710F","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":"0x60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033000000000000000000000000e324a37594561b3bfe3f535aa7108224a703710f0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc9550000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b000000000000000000000000add75aecd98f0adad899729c88bfed4f8951c02a00000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"ProxyModule#TransparentUpgradeableProxy","networkInteractionId":1,"nonce":14,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000698"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x7a5d670e06e96c4407b07f639ac8c7354b7219714d112779defa1537fe62cf41"},"type":"TRANSACTION_SEND"} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.grantRole","hash":"0xfc6c4b0293c4ae83d6b43e496877681ec0a7952c8f25d4a584c96498531e7f8e","networkInteractionId":1,"receipt":{"blockHash":"0x516d2beef2978b2137852d8e2a1c06f6d28dcd12a48f5c692aec7b20b66c950c","blockNumber":129914626,"logs":[{"address":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","data":"0x","logIndex":67,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","0x000000000000000000000000d58d48185146343720df2c26fcd8d3c3734e22cf","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.grantRole","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"ProxyModule#TransparentUpgradeableProxy","hash":"0x7a5d670e06e96c4407b07f639ac8c7354b7219714d112779defa1537fe62cf41","networkInteractionId":1,"receipt":{"blockHash":"0x1650c41feab7bd69ccfc77ed751846519a58eef26e0c7c20b80c95917a3e6895","blockNumber":129914632,"contractAddress":"0x5018467c486534Bd15dfE88694Cd0Cbb27A55663","logs":[{"address":"0x5018467c486534Bd15dfE88694Cd0Cbb27A55663","data":"0x","logIndex":108,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000e324a37594561b3bfe3f535aa7108224a703710f"]},{"address":"0x5018467c486534Bd15dfE88694Cd0Cbb27A55663","data":"0x","logIndex":109,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]},{"address":"0x5018467c486534Bd15dfE88694Cd0Cbb27A55663","data":"0x","logIndex":110,"topics":["0x363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f5","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000add75aecd98f0adad899729c88bfed4f8951c02a"]},{"address":"0x5018467c486534Bd15dfE88694Cd0Cbb27A55663","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":111,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]},{"address":"0xc0f4550909FF46204CE857d6557edE3c115093C0","data":"0x","logIndex":112,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]},{"address":"0x5018467c486534Bd15dfE88694Cd0Cbb27A55663","data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0f4550909ff46204ce857d6557ede3c115093c0","logIndex":113,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"ProxyModule#TransparentUpgradeableProxy","result":{"address":"0x5018467c486534Bd15dfE88694Cd0Cbb27A55663","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"ProxyModule#TransparentUpgradeableProxy","dependencies":["ProxyModule#TransparentUpgradeableProxy"],"emitterAddress":"0x5018467c486534Bd15dfE88694Cd0Cbb27A55663","eventIndex":0,"eventName":"AdminChanged","futureId":"ProxyModule#TransparentUpgradeableProxy.AdminChanged.newAdmin.0","nameOrIndex":"newAdmin","result":"0xc0f4550909FF46204CE857d6557edE3c115093C0","strategy":"basic","strategyConfig":{},"txToReadFrom":"0x7a5d670e06e96c4407b07f639ac8c7354b7219714d112779defa1537fe62cf41","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"ProxyModule#ProxyAdmin","contractAddress":"0xc0f4550909FF46204CE857d6557edE3c115093C0","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":"0x5018467c486534Bd15dfE88694Cd0Cbb27A55663","contractName":"SCI","dependencies":["ProxyModule#TransparentUpgradeableProxy"],"futureId":"SciModule#SCI","futureType":"NAMED_ARTIFACT_CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"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":"0x60a060405234801561001057600080fd5b50604051611f85380380611f858339818101604052810190610032919061043c565b8061004161012960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b35760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100aa919061048b565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100eb6000801b8261013160201b60201c565b5050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506104a6565b600033905090565b60008060001b83036101f257600073ffffffffffffffffffffffffffffffffffffffff1661016361020a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146101b0576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610202838361023460201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610246838361033160201b60201c565b61032657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102c361012960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061032b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103cb826103a0565b9050919050565b6103db816103c0565b81146103e657600080fd5b50565b6000815190506103f8816103d2565b92915050565b600065ffffffffffff82169050919050565b610419816103fe565b811461042457600080fd5b50565b60008151905061043681610410565b92915050565b600080604083850312156104535761045261039b565b5b6000610461858286016103e9565b925050602061047285828601610427565b9150509250929050565b610485816103c0565b82525050565b60006020820190506104a0600083018461047c565b92915050565b608051611ab66104cf6000396000818161063e0152818161079601526109fb0152611ab66000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea2646970667358221220d44239aa553373132c81fc8c57e3b38437535b47175888a8cbee49e7e0b303e064736f6c634300081c0033000000000000000000000000add75aecd98f0adad899729c88bfed4f8951c02a0000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SciRegstrar#SciRegistrar","networkInteractionId":1,"nonce":15,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000726"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x5b294362fd250b9f1fe6fefd2803c7efabdc947984c0c8f99dd6f2c32ef6eb33"},"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":"0x5b294362fd250b9f1fe6fefd2803c7efabdc947984c0c8f99dd6f2c32ef6eb33","networkInteractionId":1,"receipt":{"blockHash":"0xeb0b5876814bde8fcd46f4cdd21e486bc846d39c4adb3bc21051b7ac82874358","blockNumber":129914789,"contractAddress":"0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","logs":[{"address":"0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","data":"0x","logIndex":12,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SciRegstrar#SciRegistrar","result":{"address":"0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"args":[],"artifactId":"SciRegstrar#SciRegistrar","contractAddress":"0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","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":"0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","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","0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4"],"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":"0x2f2ff15dedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238000000000000000000000000c29e83afee01bdcca7f69fe1dfd7a61954dce4d4","id":1,"to":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SciRegstrar#SciRegistry~SciRegistry.grantRole","networkInteractionId":1,"nonce":16,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000732"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xb42305bb459567190f20d58a4efd6b51ff89d4179eaf6a18b32c2cbd3658797f"},"type":"TRANSACTION_SEND"} -{"futureId":"SciRegstrar#SciRegistry~SciRegistry.grantRole","hash":"0xb42305bb459567190f20d58a4efd6b51ff89d4179eaf6a18b32c2cbd3658797f","networkInteractionId":1,"receipt":{"blockHash":"0x6595430ab3fa992b432db1e5ece9c553c73f6e4aef8310cb142e5be9d4db7804","blockNumber":129914800,"logs":[{"address":"0xaDD75Aecd98f0ADAD899729c88BfED4f8951c02A","data":"0x","logIndex":28,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","0x000000000000000000000000c29e83afee01bdcca7f69fe1dfd7a61954dce4d4","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":"0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","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":"0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SciRegstrar#SciRegistrar.grantRole","networkInteractionId":1,"nonce":17,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000732"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xb20f59548572be6624309ea9c91983743307f375a8e7456248cb014e9e02d88a"},"type":"TRANSACTION_SEND"} -{"futureId":"SciRegstrar#SciRegistrar.grantRole","hash":"0xb20f59548572be6624309ea9c91983743307f375a8e7456248cb014e9e02d88a","networkInteractionId":1,"receipt":{"blockHash":"0x8487fd687beb7c8d7813b8520a924299f90c9a0a7499a93ce828f6d104ae167b","blockNumber":129914810,"logs":[{"address":"0xC29e83AfEe01bDccA7f69fE1DfD7A61954dCE4d4","data":"0x","logIndex":36,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SciRegstrar#SciRegistrar.grantRole","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/EnsRegistrar#EnsRegistrar.dbg.json b/ignition/deployments/chain-11155111/artifacts/EnsRegistrar#EnsRegistrar.dbg.json deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-11155111/artifacts/EnsRegistrar#EnsRegistrar.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/EnsRegistrar#EnsRegistrar.json b/ignition/deployments/chain-11155111/artifacts/EnsRegistrar#EnsRegistrar.json deleted file mode 100644 index e573a36..0000000 --- a/ignition/deployments/chain-11155111/artifacts/EnsRegistrar#EnsRegistrar.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "EnsRegistrar", - "sourceName": "contracts/Registrars/EnsRegistrar.sol", - "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" - } - ], - "bytecode": "0x60c060405234801561001057600080fd5b5060405161082e38038061082e83398181016040528101906100329190610104565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250505050610144565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100d1826100a6565b9050919050565b6100e1816100c6565b81146100ec57600080fd5b50565b6000815190506100fe816100d8565b92915050565b6000806040838503121561011b5761011a6100a1565b5b6000610129858286016100ef565b925050602061013a858286016100ef565b9150509250929050565b60805160a0516106b161017d6000396000818160da0152818161017601526101ca01526000818161019a015261027c01526106b16000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea2646970667358221220c90dbfa0c27c6833e6ed98d1937d68c4ddcf4ef68d5d349eef2753821461b49064736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea2646970667358221220c90dbfa0c27c6833e6ed98d1937d68c4ddcf4ef68d5d349eef2753821461b49064736f6c634300081c0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.dbg.json b/ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.dbg.json deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.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 deleted file mode 100644 index 0b3e0cf..0000000 --- a/ignition/deployments/chain-11155111/artifacts/ProxyModule#ProxyAdmin.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "_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": "0x608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "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 deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-11155111/artifacts/ProxyModule#SCI.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.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 deleted file mode 100644 index 509355b..0000000 --- a/ignition/deployments/chain-11155111/artifacts/ProxyModule#SCI.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "_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": "0x6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "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 deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-11155111/artifacts/ProxyModule#TransparentUpgradeableProxy.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.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 deleted file mode 100644 index c57e5ea..0000000 --- a/ignition/deployments/chain-11155111/artifacts/ProxyModule#TransparentUpgradeableProxy.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "_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": "FailedCall", - "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": "0x60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "deployedBytecode": "0x608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033", - "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 deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-11155111/artifacts/PublicListVerifier#PublicListVerifier.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.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 deleted file mode 100644 index 145e4b6..0000000 --- a/ignition/deployments/chain-11155111/artifacts/PublicListVerifier#PublicListVerifier.json +++ /dev/null @@ -1,217 +0,0 @@ -{ - "_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 deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-11155111/artifacts/SciModule#SCI.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.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 deleted file mode 100644 index 509355b..0000000 --- a/ignition/deployments/chain-11155111/artifacts/SciModule#SCI.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "_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": "0x6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "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 deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-11155111/artifacts/SciRegistry#SciRegistry.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.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 deleted file mode 100644 index 0601e35..0000000 --- a/ignition/deployments/chain-11155111/artifacts/SciRegistry#SciRegistry.json +++ /dev/null @@ -1,867 +0,0 @@ -{ - "_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": "0x60a060405234801561001057600080fd5b506040516129513803806129518339818101604052810190610032919061051a565b308161004261019560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b45760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100ab9190610588565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100ec6000801b8261019d60201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506000600360006101000a81548160ff02191690831515021790555061018f7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092387f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750961027660201b60201c565b506105a3565b600033905090565b60008060001b830361025e57600073ffffffffffffffffffffffffffffffffffffffff166101cf6102c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461021c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61026e83836102f060201b60201c565b905092915050565b6000801b82036102b2576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c282826103ed60201b60201c565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610302838361044e60201b60201c565b6103e257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061037f61019560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506103e7565b600090505b92915050565b60006103fe836104b860201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806000838152602001908152602001600020600101549050919050565b600080fd5b600065ffffffffffff82169050919050565b6104f7816104dc565b811461050257600080fd5b50565b600081519050610514816104ee565b92915050565b6000602082840312156105305761052f6104d7565b5b600061053e84828501610505565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061057282610547565b9050919050565b61058281610567565b82525050565b600060208201905061059d6000830184610579565b92915050565b60805161238c6105c560003960008181610924015261115a015261238c6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ccb565b6105ff565b6040516102279190611d13565b60405180910390f35b610238610679565b6040516102459190611d4f565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611da0565b61069c565b60405161027f9190611ddc565b60405180910390f35b6102a2600480360381019061029d9190611e55565b6106bb565b005b6102be60048036038101906102b99190611e55565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611da0565b610827565b6040516102f19190611ef4565b60405180910390f35b610314600480360381019061030f9190611da0565b610867565b6040516103249493929190611f37565b60405180910390f35b6103356108d7565b6040516103429190611d13565b60405180910390f35b61036560048036038101906103609190611f7c565b6108ee565b005b610381600480360381019061037c9190611fd5565b610908565b005b61038b610922565b6040516103989190612023565b60405180910390f35b6103bb60048036038101906103b69190611e55565b610946565b6040516103c89190611d13565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061203e565b60405180910390f35b6104016109e6565b60405161040e919061203e565b60405180910390f35b610431600480360381019061042c9190611e55565b6109f5565b60405161043e9190611d13565b60405180910390f35b61044f610a5f565b60405161045d929190612059565b60405180910390f35b61046e610abf565b60405161047b9190611ddc565b60405180910390f35b61049e60048036038101906104999190611da0565b610ac6565b6040516104ab9190612082565b60405180910390f35b6104ce60048036038101906104c991906120db565b610ae6565b005b6104ea60048036038101906104e5919061211b565b610b09565b005b6104f4610b17565b6040516105019190611ddc565b60405180910390f35b610512610b3b565b60405161051f9190611d4f565b60405180910390f35b610530610ba9565b005b61053a610c3f565b60405161054892919061215b565b60405180910390f35b61056b60048036038101906105669190611da0565b610c82565b604051610578919061203e565b60405180910390f35b61059b60048036038101906105969190611e55565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612184565b610d24565b005b6105cb610d3d565b6040516105d89190611ddc565b60405180910390f35b6105e9610d61565b6040516105f69190611ddc565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d4f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061203e565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061203e565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b6110119190612206565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d4f565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d9190612206565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612059565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061203e565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611ddc565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612255565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611243929190612282565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061203e565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d4f565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c4929190612282565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122f3565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b2919061231c565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061203e565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000611c408284108484611c48565b905092915050565b6000611c5384611c62565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ca881611c73565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b600060208284031215611ce157611ce0611c6e565b5b6000611cef84828501611cb6565b91505092915050565b60008115159050919050565b611d0d81611cf8565b82525050565b6000602082019050611d286000830184611d04565b92915050565b600065ffffffffffff82169050919050565b611d4981611d2e565b82525050565b6000602082019050611d646000830184611d40565b92915050565b6000819050919050565b611d7d81611d6a565b8114611d8857600080fd5b50565b600081359050611d9a81611d74565b92915050565b600060208284031215611db657611db5611c6e565b5b6000611dc484828501611d8b565b91505092915050565b611dd681611d6a565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e2282611df7565b9050919050565b611e3281611e17565b8114611e3d57600080fd5b50565b600081359050611e4f81611e29565b92915050565b60008060408385031215611e6c57611e6b611c6e565b5b6000611e7a85828601611d8b565b9250506020611e8b85828601611e40565b9150509250929050565b6000819050919050565b6000611eba611eb5611eb084611df7565b611e95565b611df7565b9050919050565b6000611ecc82611e9f565b9050919050565b6000611ede82611ec1565b9050919050565b611eee81611ed3565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b611f1881611e17565b82525050565b6000819050919050565b611f3181611f1e565b82525050565b6000608082019050611f4c6000830187611f0f565b611f596020830186611ee5565b611f666040830185611f28565b611f736060830184611f28565b95945050505050565b600060208284031215611f9257611f91611c6e565b5b6000611fa084828501611e40565b91505092915050565b611fb281611d2e565b8114611fbd57600080fd5b50565b600081359050611fcf81611fa9565b92915050565b600060208284031215611feb57611fea611c6e565b5b6000611ff984828501611fc0565b91505092915050565b600061200d82611ec1565b9050919050565b61201d81612002565b82525050565b60006020820190506120386000830184612014565b92915050565b60006020820190506120536000830184611f0f565b92915050565b600060408201905061206e6000830185611d40565b61207b6020830184611d40565b9392505050565b60006020820190506120976000830184611f28565b92915050565b60006120a882611e17565b9050919050565b6120b88161209d565b81146120c357600080fd5b50565b6000813590506120d5816120af565b92915050565b600080604083850312156120f2576120f1611c6e565b5b600061210085828601611d8b565b9250506020612111858286016120c6565b9150509250929050565b6000806040838503121561213257612131611c6e565b5b600061214085828601611e40565b925050602061215185828601611d8b565b9150509250929050565b60006040820190506121706000830185611f0f565b61217d6020830184611d40565b9392505050565b60008060006060848603121561219d5761219c611c6e565b5b60006121ab86828701611e40565b93505060206121bc86828701611d8b565b92505060406121cd868287016120c6565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061221182611d2e565b915061221c83611d2e565b9250828201905065ffffffffffff81111561223a576122396121d7565b5b92915050565b60008151905061224f81611e29565b92915050565b60006020828403121561226b5761226a611c6e565b5b600061227984828501612240565b91505092915050565b60006040820190506122976000830185611f0f565b6122a46020830184611dcd565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122dd6122d86122d3846122ab565b611e95565b6122b5565b9050919050565b6122ed816122c2565b82525050565b600060408201905061230860008301856122e4565b6123156020830184611f28565b9392505050565b600061232782611d2e565b915061233283611d2e565b9250828203905065ffffffffffff8111156123505761234f6121d7565b5b9291505056fea26469706673582212208d9faa5a557b2963a1f0927d9241c63c1ae66f5d48267732b4a8678b6cd45e3b64736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ccb565b6105ff565b6040516102279190611d13565b60405180910390f35b610238610679565b6040516102459190611d4f565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611da0565b61069c565b60405161027f9190611ddc565b60405180910390f35b6102a2600480360381019061029d9190611e55565b6106bb565b005b6102be60048036038101906102b99190611e55565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611da0565b610827565b6040516102f19190611ef4565b60405180910390f35b610314600480360381019061030f9190611da0565b610867565b6040516103249493929190611f37565b60405180910390f35b6103356108d7565b6040516103429190611d13565b60405180910390f35b61036560048036038101906103609190611f7c565b6108ee565b005b610381600480360381019061037c9190611fd5565b610908565b005b61038b610922565b6040516103989190612023565b60405180910390f35b6103bb60048036038101906103b69190611e55565b610946565b6040516103c89190611d13565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061203e565b60405180910390f35b6104016109e6565b60405161040e919061203e565b60405180910390f35b610431600480360381019061042c9190611e55565b6109f5565b60405161043e9190611d13565b60405180910390f35b61044f610a5f565b60405161045d929190612059565b60405180910390f35b61046e610abf565b60405161047b9190611ddc565b60405180910390f35b61049e60048036038101906104999190611da0565b610ac6565b6040516104ab9190612082565b60405180910390f35b6104ce60048036038101906104c991906120db565b610ae6565b005b6104ea60048036038101906104e5919061211b565b610b09565b005b6104f4610b17565b6040516105019190611ddc565b60405180910390f35b610512610b3b565b60405161051f9190611d4f565b60405180910390f35b610530610ba9565b005b61053a610c3f565b60405161054892919061215b565b60405180910390f35b61056b60048036038101906105669190611da0565b610c82565b604051610578919061203e565b60405180910390f35b61059b60048036038101906105969190611e55565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612184565b610d24565b005b6105cb610d3d565b6040516105d89190611ddc565b60405180910390f35b6105e9610d61565b6040516105f69190611ddc565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d4f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061203e565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061203e565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b6110119190612206565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d4f565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d9190612206565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612059565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061203e565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611ddc565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612255565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611243929190612282565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061203e565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d4f565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c4929190612282565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122f3565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b2919061231c565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061203e565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000611c408284108484611c48565b905092915050565b6000611c5384611c62565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ca881611c73565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b600060208284031215611ce157611ce0611c6e565b5b6000611cef84828501611cb6565b91505092915050565b60008115159050919050565b611d0d81611cf8565b82525050565b6000602082019050611d286000830184611d04565b92915050565b600065ffffffffffff82169050919050565b611d4981611d2e565b82525050565b6000602082019050611d646000830184611d40565b92915050565b6000819050919050565b611d7d81611d6a565b8114611d8857600080fd5b50565b600081359050611d9a81611d74565b92915050565b600060208284031215611db657611db5611c6e565b5b6000611dc484828501611d8b565b91505092915050565b611dd681611d6a565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e2282611df7565b9050919050565b611e3281611e17565b8114611e3d57600080fd5b50565b600081359050611e4f81611e29565b92915050565b60008060408385031215611e6c57611e6b611c6e565b5b6000611e7a85828601611d8b565b9250506020611e8b85828601611e40565b9150509250929050565b6000819050919050565b6000611eba611eb5611eb084611df7565b611e95565b611df7565b9050919050565b6000611ecc82611e9f565b9050919050565b6000611ede82611ec1565b9050919050565b611eee81611ed3565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b611f1881611e17565b82525050565b6000819050919050565b611f3181611f1e565b82525050565b6000608082019050611f4c6000830187611f0f565b611f596020830186611ee5565b611f666040830185611f28565b611f736060830184611f28565b95945050505050565b600060208284031215611f9257611f91611c6e565b5b6000611fa084828501611e40565b91505092915050565b611fb281611d2e565b8114611fbd57600080fd5b50565b600081359050611fcf81611fa9565b92915050565b600060208284031215611feb57611fea611c6e565b5b6000611ff984828501611fc0565b91505092915050565b600061200d82611ec1565b9050919050565b61201d81612002565b82525050565b60006020820190506120386000830184612014565b92915050565b60006020820190506120536000830184611f0f565b92915050565b600060408201905061206e6000830185611d40565b61207b6020830184611d40565b9392505050565b60006020820190506120976000830184611f28565b92915050565b60006120a882611e17565b9050919050565b6120b88161209d565b81146120c357600080fd5b50565b6000813590506120d5816120af565b92915050565b600080604083850312156120f2576120f1611c6e565b5b600061210085828601611d8b565b9250506020612111858286016120c6565b9150509250929050565b6000806040838503121561213257612131611c6e565b5b600061214085828601611e40565b925050602061215185828601611d8b565b9150509250929050565b60006040820190506121706000830185611f0f565b61217d6020830184611d40565b9392505050565b60008060006060848603121561219d5761219c611c6e565b5b60006121ab86828701611e40565b93505060206121bc86828701611d8b565b92505060406121cd868287016120c6565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061221182611d2e565b915061221c83611d2e565b9250828201905065ffffffffffff81111561223a576122396121d7565b5b92915050565b60008151905061224f81611e29565b92915050565b60006020828403121561226b5761226a611c6e565b5b600061227984828501612240565b91505092915050565b60006040820190506122976000830185611f0f565b6122a46020830184611dcd565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122dd6122d86122d3846122ab565b611e95565b6122b5565b9050919050565b6122ed816122c2565b82525050565b600060408201905061230860008301856122e4565b6123156020830184611f28565b9392505050565b600061232782611d2e565b915061233283611d2e565b9250828203905065ffffffffffff8111156123505761234f6121d7565b5b9291505056fea26469706673582212208d9faa5a557b2963a1f0927d9241c63c1ae66f5d48267732b4a8678b6cd45e3b64736f6c634300081c0033", - "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 deleted file mode 100644 index ce050cc..0000000 --- a/ignition/deployments/chain-11155111/artifacts/SciRegstrar#SciRegistrar.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/d016ed3d45366322068f83ae4ee1f5ab.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 deleted file mode 100644 index da3403f..0000000 --- a/ignition/deployments/chain-11155111/artifacts/SciRegstrar#SciRegistrar.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "_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": "0x60a060405234801561001057600080fd5b50604051611f85380380611f858339818101604052810190610032919061043c565b8061004161012960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b35760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100aa919061048b565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100eb6000801b8261013160201b60201c565b5050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506104a6565b600033905090565b60008060001b83036101f257600073ffffffffffffffffffffffffffffffffffffffff1661016361020a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146101b0576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610202838361023460201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610246838361033160201b60201c565b61032657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102c361012960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061032b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103cb826103a0565b9050919050565b6103db816103c0565b81146103e657600080fd5b50565b6000815190506103f8816103d2565b92915050565b600065ffffffffffff82169050919050565b610419816103fe565b811461042457600080fd5b50565b60008151905061043681610410565b92915050565b600080604083850312156104535761045261039b565b5b6000610461858286016103e9565b925050602061047285828601610427565b9150509250929050565b610485816103c0565b82525050565b60006020820190506104a0600083018461047c565b92915050565b608051611ab66104cf6000396000818161063e0152818161079601526109fb0152611ab66000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea2646970667358221220d44239aa553373132c81fc8c57e3b38437535b47175888a8cbee49e7e0b303e064736f6c634300081c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea2646970667358221220d44239aa553373132c81fc8c57e3b38437535b47175888a8cbee49e7e0b303e064736f6c634300081c0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/build-info/d016ed3d45366322068f83ae4ee1f5ab.json b/ignition/deployments/chain-11155111/build-info/d016ed3d45366322068f83ae4ee1f5ab.json deleted file mode 100644 index 791d0cc..0000000 --- a/ignition/deployments/chain-11155111/build-info/d016ed3d45366322068f83ae4ee1f5ab.json +++ /dev/null @@ -1,172966 +0,0 @@ -{ - "id": "d016ed3d45366322068f83ae4ee1f5ab", - "_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": "//SPDX-License-Identifier: MIT\npragma 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.1.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 * This extension of the {Ownable} contract includes a two-step mechanism to transfer\n * ownership, where the new owner must call {acceptOwnership} in order to replace the\n * old one. This can help prevent common mistakes, such as transfers of ownership to\n * incorrect accounts, or to contracts that are unable to interact with the\n * permission system.\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 * Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\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.1.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 ERC-165 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.1.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC-165 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. This account bears the admin role (for the granted role).\n * Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\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.1.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[ERC-1967], 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 ERC-1967) 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.1.0) (proxy/ERC1967/ERC1967Utils.sol)\n\npragma solidity ^0.8.21;\n\nimport {IBeacon} from \"../beacon/IBeacon.sol\";\nimport {IERC1967} from \"../../interfaces/IERC1967.sol\";\nimport {Address} from \"../../utils/Address.sol\";\nimport {StorageSlot} from \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This library provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots.\n */\nlibrary ERC1967Utils {\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 ERC-1967 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 IERC1967.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 ERC-1967) 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 ERC-1967 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 IERC1967.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 ERC-1967 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 IERC1967.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.1.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,address)`\n * and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called,\n * while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string.\n * If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third 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.1.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 /// @dev See {UUPSUpgradeable-upgradeToAndCall}\n function upgradeToAndCall(address newImplementation, bytes calldata data) 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. Relying on the value of the admin slot\n * is generally fine if the implementation is trusted.\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 view 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.1.0) (utils/Address.sol)\n\npragma solidity ^0.8.20;\n\nimport {Errors} from \"./Errors.sol\";\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev There's no code at `target` (it is not a contract).\n */\n error AddressEmptyCode(address target);\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 Errors.InsufficientBalance(address(this).balance, amount);\n }\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n if (!success) {\n revert Errors.FailedCall();\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 * {Errors.FailedCall} 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 Errors.InsufficientBalance(address(this).balance, value);\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 {Errors.FailedCall}) in case\n * of an 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 {Errors.FailedCall} 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 {Errors.FailedCall}.\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 assembly (\"memory-safe\") {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert Errors.FailedCall();\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/Errors.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Errors.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of common custom errors used in multiple contracts\n *\n * IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.\n * It is recommended to avoid relying on the error API for critical functionality.\n *\n * _Available since v5.1._\n */\nlibrary Errors {\n /**\n * @dev The ETH balance of the account is not enough to perform the operation.\n */\n error InsufficientBalance(uint256 balance, uint256 needed);\n\n /**\n * @dev A call to an address target failed. The target may have reverted.\n */\n error FailedCall();\n\n /**\n * @dev The deployment failed.\n */\n error FailedDeployment();\n\n /**\n * @dev A necessary precompile is missing.\n */\n error MissingPrecompile(address);\n}\n" - }, - "@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.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 ERC-165 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.1.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\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[ERC 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.1.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\nimport {Panic} from \"../Panic.sol\";\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\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 success flag (no overflow).\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no overflow).\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no overflow).\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no division by zero).\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no division by zero).\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, uint256 a, uint256 b) internal pure returns (uint256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * SafeCast.toUint(condition));\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 ternary(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 ternary(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 Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n\n // The following calculation ensures accurate ceiling division without overflow.\n // Since a is non-zero, (a - 1) / b will not overflow.\n // The largest possible result occurs when (a - 1) / b is type(uint256).max,\n // but the largest value we can obtain is type(uint256).max - 1, which happens\n // when a = type(uint256).max and b = 1.\n unchecked {\n return SafeCast.toUint(a > 0) * ((a - 1) / b + 1);\n }\n }\n\n /**\n * @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n *\n * 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²⁵⁶ and mod 2²⁵⁶ - 1, then use\n // the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2²⁵⁶ + 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²⁵⁶. Also prevents denominator == 0.\n if (denominator <= prod1) {\n Panic.panic(ternary(denominator == 0, Panic.DIVISION_BY_ZERO, Panic.UNDER_OVERFLOW));\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²⁵⁶ / 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²⁵⁶. Now that denominator is an odd number, it has an inverse modulo 2²⁵⁶ such\n // that denominator * inv ≡ 1 mod 2²⁵⁶. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv ≡ 1 mod 2⁴.\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⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2¹⁶\n inverse *= 2 - denominator * inverse; // inverse mod 2³²\n inverse *= 2 - denominator * inverse; // inverse mod 2⁶⁴\n inverse *= 2 - denominator * inverse; // inverse mod 2¹²⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2²⁵⁶\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²⁵⁶. Since the preconditions guarantee that the outcome is\n // less than 2²⁵⁶, 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 * @dev 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 return mulDiv(x, y, denominator) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0);\n }\n\n /**\n * @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n *\n * If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n * If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n *\n * If the input value is not inversible, 0 is returned.\n *\n * NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n * inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}.\n */\n function invMod(uint256 a, uint256 n) internal pure returns (uint256) {\n unchecked {\n if (n == 0) return 0;\n\n // The inverse modulo is calculated using the Extended Euclidean Algorithm (iterative version)\n // Used to compute integers x and y such that: ax + ny = gcd(a, n).\n // When the gcd is 1, then the inverse of a modulo n exists and it's x.\n // ax + ny = 1\n // ax = 1 + (-y)n\n // ax ≡ 1 (mod n) # x is the inverse of a modulo n\n\n // If the remainder is 0 the gcd is n right away.\n uint256 remainder = a % n;\n uint256 gcd = n;\n\n // Therefore the initial coefficients are:\n // ax + ny = gcd(a, n) = n\n // 0a + 1n = n\n int256 x = 0;\n int256 y = 1;\n\n while (remainder != 0) {\n uint256 quotient = gcd / remainder;\n\n (gcd, remainder) = (\n // The old remainder is the next gcd to try.\n remainder,\n // Compute the next remainder.\n // Can't overflow given that (a % gcd) * (gcd // (a % gcd)) <= gcd\n // where gcd is at most n (capped to type(uint256).max)\n gcd - remainder * quotient\n );\n\n (x, y) = (\n // Increment the coefficient of a.\n y,\n // Decrement the coefficient of n.\n // Can overflow, but the result is casted to uint256 so that the\n // next value of y is \"wrapped around\" to a value between 0 and n - 1.\n x - y * int256(quotient)\n );\n }\n\n if (gcd != 1) return 0; // No inverse exists.\n return ternary(x < 0, n - uint256(-x), uint256(x)); // Wrap the result if it's negative.\n }\n }\n\n /**\n * @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n *\n * From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n * prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n * `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n *\n * NOTE: this function does NOT check that `p` is a prime greater than `2`.\n */\n function invModPrime(uint256 a, uint256 p) internal view returns (uint256) {\n unchecked {\n return Math.modExp(a, p - 2, p);\n }\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n *\n * Requirements:\n * - modulus can't be zero\n * - underlying staticcall to precompile must succeed\n *\n * IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n * sure the chain you're using it on supports the precompiled contract for modular exponentiation\n * at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n * the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n * interpreted as 0.\n */\n function modExp(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {\n (bool success, uint256 result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n * It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n * to operate modulo 0 or if the underlying precompile reverted.\n *\n * IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n * you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n * https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n * of a revert, but the result may be incorrectly interpreted as 0.\n */\n function tryModExp(uint256 b, uint256 e, uint256 m) internal view returns (bool success, uint256 result) {\n if (m == 0) return (false, 0);\n assembly (\"memory-safe\") {\n let ptr := mload(0x40)\n // | Offset | Content | Content (Hex) |\n // |-----------|------------|--------------------------------------------------------------------|\n // | 0x00:0x1f | size of b | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x20:0x3f | size of e | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x40:0x5f | size of m | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x60:0x7f | value of b | 0x<.............................................................b> |\n // | 0x80:0x9f | value of e | 0x<.............................................................e> |\n // | 0xa0:0xbf | value of m | 0x<.............................................................m> |\n mstore(ptr, 0x20)\n mstore(add(ptr, 0x20), 0x20)\n mstore(add(ptr, 0x40), 0x20)\n mstore(add(ptr, 0x60), b)\n mstore(add(ptr, 0x80), e)\n mstore(add(ptr, 0xa0), m)\n\n // Given the result < m, it's guaranteed to fit in 32 bytes,\n // so we can use the memory scratch space located at offset 0.\n success := staticcall(gas(), 0x05, ptr, 0xc0, 0x00, 0x20)\n result := mload(0x00)\n }\n }\n\n /**\n * @dev Variant of {modExp} that supports inputs of arbitrary length.\n */\n function modExp(bytes memory b, bytes memory e, bytes memory m) internal view returns (bytes memory) {\n (bool success, bytes memory result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Variant of {tryModExp} that supports inputs of arbitrary length.\n */\n function tryModExp(\n bytes memory b,\n bytes memory e,\n bytes memory m\n ) internal view returns (bool success, bytes memory result) {\n if (_zeroBytes(m)) return (false, new bytes(0));\n\n uint256 mLen = m.length;\n\n // Encode call args in result and move the free memory pointer\n result = abi.encodePacked(b.length, e.length, mLen, b, e, m);\n\n assembly (\"memory-safe\") {\n let dataPtr := add(result, 0x20)\n // Write result on top of args to avoid allocating extra memory.\n success := staticcall(gas(), 0x05, dataPtr, mload(result), dataPtr, mLen)\n // Overwrite the length.\n // result.length > returndatasize() is guaranteed because returndatasize() == m.length\n mstore(result, mLen)\n // Set the memory pointer after the returned data.\n mstore(0x40, add(dataPtr, mLen))\n }\n }\n\n /**\n * @dev Returns whether the provided byte array is zero.\n */\n function _zeroBytes(bytes memory byteArray) private pure returns (bool) {\n for (uint256 i = 0; i < byteArray.length; ++i) {\n if (byteArray[i] != 0) {\n return false;\n }\n }\n return true;\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 * This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n * using integer operations.\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n unchecked {\n // Take care of easy edge cases when a == 0 or a == 1\n if (a <= 1) {\n return a;\n }\n\n // In this function, we use Newton's method to get a root of `f(x) := x² - a`. It involves building a\n // sequence x_n that converges toward sqrt(a). For each iteration x_n, we also define the error between\n // the current value as `ε_n = | x_n - sqrt(a) |`.\n //\n // For our first estimation, we consider `e` the smallest power of 2 which is bigger than the square root\n // of the target. (i.e. `2**(e-1) ≤ sqrt(a) < 2**e`). We know that `e ≤ 128` because `(2¹²⁸)² = 2²⁵⁶` is\n // bigger than any uint256.\n //\n // By noticing that\n // `2**(e-1) ≤ sqrt(a) < 2**e → (2**(e-1))² ≤ a < (2**e)² → 2**(2*e-2) ≤ a < 2**(2*e)`\n // we can deduce that `e - 1` is `log2(a) / 2`. We can thus compute `x_n = 2**(e-1)` using a method similar\n // to the msb function.\n uint256 aa = a;\n uint256 xn = 1;\n\n if (aa >= (1 << 128)) {\n aa >>= 128;\n xn <<= 64;\n }\n if (aa >= (1 << 64)) {\n aa >>= 64;\n xn <<= 32;\n }\n if (aa >= (1 << 32)) {\n aa >>= 32;\n xn <<= 16;\n }\n if (aa >= (1 << 16)) {\n aa >>= 16;\n xn <<= 8;\n }\n if (aa >= (1 << 8)) {\n aa >>= 8;\n xn <<= 4;\n }\n if (aa >= (1 << 4)) {\n aa >>= 4;\n xn <<= 2;\n }\n if (aa >= (1 << 2)) {\n xn <<= 1;\n }\n\n // We now have x_n such that `x_n = 2**(e-1) ≤ sqrt(a) < 2**e = 2 * x_n`. This implies ε_n ≤ 2**(e-1).\n //\n // We can refine our estimation by noticing that the middle of that interval minimizes the error.\n // If we move x_n to equal 2**(e-1) + 2**(e-2), then we reduce the error to ε_n ≤ 2**(e-2).\n // This is going to be our x_0 (and ε_0)\n xn = (3 * xn) >> 1; // ε_0 := | x_0 - sqrt(a) | ≤ 2**(e-2)\n\n // From here, Newton's method give us:\n // x_{n+1} = (x_n + a / x_n) / 2\n //\n // One should note that:\n // x_{n+1}² - a = ((x_n + a / x_n) / 2)² - a\n // = ((x_n² + a) / (2 * x_n))² - a\n // = (x_n⁴ + 2 * a * x_n² + a²) / (4 * x_n²) - a\n // = (x_n⁴ + 2 * a * x_n² + a² - 4 * a * x_n²) / (4 * x_n²)\n // = (x_n⁴ - 2 * a * x_n² + a²) / (4 * x_n²)\n // = (x_n² - a)² / (2 * x_n)²\n // = ((x_n² - a) / (2 * x_n))²\n // ≥ 0\n // Which proves that for all n ≥ 1, sqrt(a) ≤ x_n\n //\n // This gives us the proof of quadratic convergence of the sequence:\n // ε_{n+1} = | x_{n+1} - sqrt(a) |\n // = | (x_n + a / x_n) / 2 - sqrt(a) |\n // = | (x_n² + a - 2*x_n*sqrt(a)) / (2 * x_n) |\n // = | (x_n - sqrt(a))² / (2 * x_n) |\n // = | ε_n² / (2 * x_n) |\n // = ε_n² / | (2 * x_n) |\n //\n // For the first iteration, we have a special case where x_0 is known:\n // ε_1 = ε_0² / | (2 * x_0) |\n // ≤ (2**(e-2))² / (2 * (2**(e-1) + 2**(e-2)))\n // ≤ 2**(2*e-4) / (3 * 2**(e-1))\n // ≤ 2**(e-3) / 3\n // ≤ 2**(e-3-log2(3))\n // ≤ 2**(e-4.5)\n //\n // For the following iterations, we use the fact that, 2**(e-1) ≤ sqrt(a) ≤ x_n:\n // ε_{n+1} = ε_n² / | (2 * x_n) |\n // ≤ (2**(e-k))² / (2 * 2**(e-1))\n // ≤ 2**(2*e-2*k) / 2**e\n // ≤ 2**(e-2*k)\n xn = (xn + a / xn) >> 1; // ε_1 := | x_1 - sqrt(a) | ≤ 2**(e-4.5) -- special case, see above\n xn = (xn + a / xn) >> 1; // ε_2 := | x_2 - sqrt(a) | ≤ 2**(e-9) -- general case with k = 4.5\n xn = (xn + a / xn) >> 1; // ε_3 := | x_3 - sqrt(a) | ≤ 2**(e-18) -- general case with k = 9\n xn = (xn + a / xn) >> 1; // ε_4 := | x_4 - sqrt(a) | ≤ 2**(e-36) -- general case with k = 18\n xn = (xn + a / xn) >> 1; // ε_5 := | x_5 - sqrt(a) | ≤ 2**(e-72) -- general case with k = 36\n xn = (xn + a / xn) >> 1; // ε_6 := | x_6 - sqrt(a) | ≤ 2**(e-144) -- general case with k = 72\n\n // Because e ≤ 128 (as discussed during the first estimation phase), we know have reached a precision\n // ε_6 ≤ 2**(e-144) < 1. Given we're operating on integers, then we can ensure that xn is now either\n // sqrt(a) or sqrt(a) + 1.\n return xn - SafeCast.toUint(xn > a / xn);\n }\n }\n\n /**\n * @dev 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 + SafeCast.toUint(unsignedRoundsUp(rounding) && result * result < a);\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 uint256 exp;\n unchecked {\n exp = 128 * SafeCast.toUint(value > (1 << 128) - 1);\n value >>= exp;\n result += exp;\n\n exp = 64 * SafeCast.toUint(value > (1 << 64) - 1);\n value >>= exp;\n result += exp;\n\n exp = 32 * SafeCast.toUint(value > (1 << 32) - 1);\n value >>= exp;\n result += exp;\n\n exp = 16 * SafeCast.toUint(value > (1 << 16) - 1);\n value >>= exp;\n result += exp;\n\n exp = 8 * SafeCast.toUint(value > (1 << 8) - 1);\n value >>= exp;\n result += exp;\n\n exp = 4 * SafeCast.toUint(value > (1 << 4) - 1);\n value >>= exp;\n result += exp;\n\n exp = 2 * SafeCast.toUint(value > (1 << 2) - 1);\n value >>= exp;\n result += exp;\n\n result += SafeCast.toUint(value > 1);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << result < value);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 10 ** result < value);\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 uint256 isGt;\n unchecked {\n isGt = SafeCast.toUint(value > (1 << 128) - 1);\n value >>= isGt * 128;\n result += isGt * 16;\n\n isGt = SafeCast.toUint(value > (1 << 64) - 1);\n value >>= isGt * 64;\n result += isGt * 8;\n\n isGt = SafeCast.toUint(value > (1 << 32) - 1);\n value >>= isGt * 32;\n result += isGt * 4;\n\n isGt = SafeCast.toUint(value > (1 << 16) - 1);\n value >>= isGt * 16;\n result += isGt * 2;\n\n result += SafeCast.toUint(value > (1 << 8) - 1);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << (result << 3) < value);\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.1.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/bool 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 /**\n * @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump.\n */\n function toUint(bool b) internal pure returns (uint256 u) {\n assembly (\"memory-safe\") {\n u := iszero(iszero(b))\n }\n }\n}\n" - }, - "@openzeppelin/contracts/utils/Panic.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n * using Panic for uint256;\n *\n * // Use any of the declared internal constants\n * function foo() { Panic.GENERIC.panic(); }\n *\n * // Alternatively\n * function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n *\n * _Available since v5.1._\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n /// @dev generic / unspecified error\n uint256 internal constant GENERIC = 0x00;\n /// @dev used by the assert() builtin\n uint256 internal constant ASSERT = 0x01;\n /// @dev arithmetic underflow or overflow\n uint256 internal constant UNDER_OVERFLOW = 0x11;\n /// @dev division or modulo by zero\n uint256 internal constant DIVISION_BY_ZERO = 0x12;\n /// @dev enum conversion error\n uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n /// @dev invalid encoding in storage\n uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n /// @dev empty array pop\n uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n /// @dev array out of bounds access\n uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n /// @dev resource error (too large allocation or too large array)\n uint256 internal constant RESOURCE_ERROR = 0x41;\n /// @dev calling invalid internal function\n uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n /// @dev Reverts with a panic code. Recommended to use with\n /// the internal constants with predefined codes.\n function panic(uint256 code) internal pure {\n assembly (\"memory-safe\") {\n mstore(0x00, 0x4e487b71)\n mstore(0x20, code)\n revert(0x1c, 0x24)\n }\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.1.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 ERC-1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\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 *\n * TIP: Consider using this library along with {SlotDerivation}.\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 Int256Slot {\n int256 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 assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Int256Slot` with member `value` located at `slot`.\n */\n function getInt256Slot(bytes32 slot) internal pure returns (Int256Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n assembly (\"memory-safe\") {\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 assembly (\"memory-safe\") {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns a `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n assembly (\"memory-safe\") {\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 assembly (\"memory-safe\") {\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/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, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.8", - ".4" - ], - "nodeType": "PragmaDirective", - "src": "31:24:0" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ENS", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "id": 136, - "linearizedBaseContracts": [ - 136 - ], - "name": "ENS", - "nameLocation": "67:3:0", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "eventSelector": "ce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82", - "id": 9, - "name": "NewOwner", - "nameLocation": "156:8:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 8, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3, - "indexed": true, - "mutability": "mutable", - "name": "node", - "nameLocation": "181:4:0", - "nodeType": "VariableDeclaration", - "scope": 9, - "src": "165:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "165:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5, - "indexed": true, - "mutability": "mutable", - "name": "label", - "nameLocation": "203:5:0", - "nodeType": "VariableDeclaration", - "scope": 9, - "src": "187:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "187:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7, - "indexed": false, - "mutability": "mutable", - "name": "owner", - "nameLocation": "218:5:0", - "nodeType": "VariableDeclaration", - "scope": 9, - "src": "210:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "210:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "164:60:0" - }, - "src": "150:75:0" - }, - { - "anonymous": false, - "eventSelector": "d4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266", - "id": 15, - "name": "Transfer", - "nameLocation": "314:8:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 14, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11, - "indexed": true, - "mutability": "mutable", - "name": "node", - "nameLocation": "339:4:0", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "323:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "323:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13, - "indexed": false, - "mutability": "mutable", - "name": "owner", - "nameLocation": "353:5:0", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "345:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "345:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "322:37:0" - }, - "src": "308:52:0" - }, - { - "anonymous": false, - "eventSelector": "335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0", - "id": 21, - "name": "NewResolver", - "nameLocation": "424:11:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 20, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "indexed": true, - "mutability": "mutable", - "name": "node", - "nameLocation": "452:4:0", - "nodeType": "VariableDeclaration", - "scope": 21, - "src": "436:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 16, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "436:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 19, - "indexed": false, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "466:8:0", - "nodeType": "VariableDeclaration", - "scope": 21, - "src": "458:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "458:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "435:40:0" - }, - "src": "418:58:0" - }, - { - "anonymous": false, - "eventSelector": "1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68", - "id": 27, - "name": "NewTTL", - "nameLocation": "533:6:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 26, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 23, - "indexed": true, - "mutability": "mutable", - "name": "node", - "nameLocation": "556:4:0", - "nodeType": "VariableDeclaration", - "scope": 27, - "src": "540:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 22, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "540:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 25, - "indexed": false, - "mutability": "mutable", - "name": "ttl", - "nameLocation": "569:3:0", - "nodeType": "VariableDeclaration", - "scope": 27, - "src": "562:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 24, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "562:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "539:34:0" - }, - "src": "527:47:0" - }, - { - "anonymous": false, - "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", - "id": 35, - "name": "ApprovalForAll", - "nameLocation": "638:14:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 34, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 29, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "678:5:0", - "nodeType": "VariableDeclaration", - "scope": 35, - "src": "662:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "662:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31, - "indexed": true, - "mutability": "mutable", - "name": "operator", - "nameLocation": "709:8:0", - "nodeType": "VariableDeclaration", - "scope": 35, - "src": "693:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "693:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33, - "indexed": false, - "mutability": "mutable", - "name": "approved", - "nameLocation": "732:8:0", - "nodeType": "VariableDeclaration", - "scope": 35, - "src": "727:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 32, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "727:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "652:94:0" - }, - "src": "632:115:0" - }, - { - "functionSelector": "cf408823", - "id": 46, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setRecord", - "nameLocation": "762:9:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 44, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 37, - "mutability": "mutable", - "name": "node", - "nameLocation": "789:4:0", - "nodeType": "VariableDeclaration", - "scope": 46, - "src": "781:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 36, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "781:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 39, - "mutability": "mutable", - "name": "owner", - "nameLocation": "811:5:0", - "nodeType": "VariableDeclaration", - "scope": 46, - "src": "803:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 38, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "803:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 41, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "834:8:0", - "nodeType": "VariableDeclaration", - "scope": 46, - "src": "826:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 40, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "826:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 43, - "mutability": "mutable", - "name": "ttl", - "nameLocation": "859:3:0", - "nodeType": "VariableDeclaration", - "scope": 46, - "src": "852:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 42, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "852:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "771:97:0" - }, - "returnParameters": { - "id": 45, - "nodeType": "ParameterList", - "parameters": [], - "src": "877:0:0" - }, - "scope": 136, - "src": "753:125:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "5ef2c7f0", - "id": 59, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSubnodeRecord", - "nameLocation": "893:16:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 57, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 48, - "mutability": "mutable", - "name": "node", - "nameLocation": "927:4:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "919:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 47, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "919:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 50, - "mutability": "mutable", - "name": "label", - "nameLocation": "949:5:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "941:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 49, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "941:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 52, - "mutability": "mutable", - "name": "owner", - "nameLocation": "972:5:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "964:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "964:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 54, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "995:8:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "987:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "987:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 56, - "mutability": "mutable", - "name": "ttl", - "nameLocation": "1020:3:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "1013:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 55, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1013:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "909:120:0" - }, - "returnParameters": { - "id": 58, - "nodeType": "ParameterList", - "parameters": [], - "src": "1038:0:0" - }, - "scope": 136, - "src": "884:155:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "06ab5923", - "id": 70, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSubnodeOwner", - "nameLocation": "1054:15:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 66, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 61, - "mutability": "mutable", - "name": "node", - "nameLocation": "1087:4:0", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "1079:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 60, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1079:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 63, - "mutability": "mutable", - "name": "label", - "nameLocation": "1109:5:0", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "1101:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 62, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1101:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1132:5:0", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "1124:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 64, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1124:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1069:74:0" - }, - "returnParameters": { - "id": 69, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 68, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "1162:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 67, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1162:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1161:9:0" - }, - "scope": 136, - "src": "1045:126:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "1896f70a", - "id": 77, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setResolver", - "nameLocation": "1186:11:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 75, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 72, - "mutability": "mutable", - "name": "node", - "nameLocation": "1206:4:0", - "nodeType": "VariableDeclaration", - "scope": 77, - "src": "1198:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 71, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1198:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 74, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "1220:8:0", - "nodeType": "VariableDeclaration", - "scope": 77, - "src": "1212:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 73, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1212:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1197:32:0" - }, - "returnParameters": { - "id": 76, - "nodeType": "ParameterList", - "parameters": [], - "src": "1238:0:0" - }, - "scope": 136, - "src": "1177:62:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "5b0fc9c3", - "id": 84, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setOwner", - "nameLocation": "1254:8:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 82, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 79, - "mutability": "mutable", - "name": "node", - "nameLocation": "1271:4:0", - "nodeType": "VariableDeclaration", - "scope": 84, - "src": "1263:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 78, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1263:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 81, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1285:5:0", - "nodeType": "VariableDeclaration", - "scope": 84, - "src": "1277:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1277:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1262:29:0" - }, - "returnParameters": { - "id": 83, - "nodeType": "ParameterList", - "parameters": [], - "src": "1300:0:0" - }, - "scope": 136, - "src": "1245:56:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "14ab9038", - "id": 91, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setTTL", - "nameLocation": "1316:6:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 89, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 86, - "mutability": "mutable", - "name": "node", - "nameLocation": "1331:4:0", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "1323:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 85, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1323:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 88, - "mutability": "mutable", - "name": "ttl", - "nameLocation": "1344:3:0", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "1337:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 87, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1337:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "1322:26:0" - }, - "returnParameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [], - "src": "1357:0:0" - }, - "scope": 136, - "src": "1307:51:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "a22cb465", - "id": 98, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nameLocation": "1373:17:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 96, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "operator", - "nameLocation": "1399:8:0", - "nodeType": "VariableDeclaration", - "scope": 98, - "src": "1391:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1391:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 95, - "mutability": "mutable", - "name": "approved", - "nameLocation": "1414:8:0", - "nodeType": "VariableDeclaration", - "scope": 98, - "src": "1409:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 94, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1409:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1390:33:0" - }, - "returnParameters": { - "id": 97, - "nodeType": "ParameterList", - "parameters": [], - "src": "1432:0:0" - }, - "scope": 136, - "src": "1364:69:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "02571be3", - "id": 105, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "owner", - "nameLocation": "1448:5:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "mutability": "mutable", - "name": "node", - "nameLocation": "1462:4:0", - "nodeType": "VariableDeclaration", - "scope": 105, - "src": "1454:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 99, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1454:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1453:14:0" - }, - "returnParameters": { - "id": 104, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 103, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 105, - "src": "1491:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1491:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1490:9:0" - }, - "scope": 136, - "src": "1439:61:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "0178b8bf", - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "resolver", - "nameLocation": "1515:8:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 107, - "mutability": "mutable", - "name": "node", - "nameLocation": "1532:4:0", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "1524:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 106, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1524:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1523:14:0" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "1561:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 109, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1561:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1560:9:0" - }, - "scope": 136, - "src": "1506:64:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "16a25cbd", - "id": 119, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ttl", - "nameLocation": "1585:3:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "mutability": "mutable", - "name": "node", - "nameLocation": "1597:4:0", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1589:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 113, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1589:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1588:14:0" - }, - "returnParameters": { - "id": 118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1626:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 116, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1626:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "1625:8:0" - }, - "scope": 136, - "src": "1576:58:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "f79fe538", - "id": 126, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "recordExists", - "nameLocation": "1649:12:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 121, - "mutability": "mutable", - "name": "node", - "nameLocation": "1670:4:0", - "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1662:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 120, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1662:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1661:14:0" - }, - "returnParameters": { - "id": 125, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1699:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 123, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1699:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1698:6:0" - }, - "scope": 136, - "src": "1640:65:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "e985e9c5", - "id": 135, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nameLocation": "1720:16:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 131, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 128, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1754:5:0", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1746:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 127, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1746:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 130, - "mutability": "mutable", - "name": "operator", - "nameLocation": "1777:8:0", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1769:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 129, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1769:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1736:55:0" - }, - "returnParameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1815:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 132, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1815:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1814:6:0" - }, - "scope": 136, - "src": "1711:110:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 137, - "src": "57:1766:0", - "usedErrors": [], - "usedEvents": [ - 9, - 15, - 21, - 27, - 35 - ] - } - ], - "src": "31: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": [ - "1115:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1146, - "src": "1115:13:2" - }, - "id": 569, - "nodeType": "InheritanceSpecifier", - "src": "1115:13:2" - }, - { - "baseName": { - "id": 570, - "name": "OwnableUpgradeable", - "nameLocations": [ - "1130:18:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 892, - "src": "1130:18:2" - }, - "id": 571, - "nodeType": "InheritanceSpecifier", - "src": "1130:18:2" - } - ], - "canonicalName": "Ownable2StepUpgradeable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 567, - "nodeType": "StructuredDocumentation", - "src": "259:810: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 This extension of the {Ownable} contract includes a two-step mechanism to transfer\n ownership, where the new owner must call {acceptOwnership} in order to replace the\n old one. This can help prevent common mistakes, such as transfers of ownership to\n incorrect accounts, or to contracts that are unable to interact with the\n permission system.\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": "1088:23:2", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Ownable2StepUpgradeable.Ownable2StepStorage", - "documentation": { - "id": 572, - "nodeType": "StructuredDocumentation", - "src": "1155:70:2", - "text": "@custom:storage-location erc7201:openzeppelin.storage.Ownable2Step" - }, - "id": 575, - "members": [ - { - "constant": false, - "id": 574, - "mutability": "mutable", - "name": "_pendingOwner", - "nameLocation": "1275:13:2", - "nodeType": "VariableDeclaration", - "scope": 575, - "src": "1267:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1267:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "name": "Ownable2StepStorage", - "nameLocation": "1237:19:2", - "nodeType": "StructDefinition", - "scope": 697, - "src": "1230:65:2", - "visibility": "public" - }, - { - "constant": true, - "id": 578, - "mutability": "constant", - "name": "Ownable2StepStorageLocation", - "nameLocation": "1442:27:2", - "nodeType": "VariableDeclaration", - "scope": 697, - "src": "1417:121:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 576, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1417: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": "1472: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": "1633:86:2", - "statements": [ - { - "AST": { - "nativeSrc": "1652:61:2", - "nodeType": "YulBlock", - "src": "1652:61:2", - "statements": [ - { - "nativeSrc": "1666:37:2", - "nodeType": "YulAssignment", - "src": "1666:37:2", - "value": { - "name": "Ownable2StepStorageLocation", - "nativeSrc": "1676:27:2", - "nodeType": "YulIdentifier", - "src": "1676:27:2" - }, - "variableNames": [ - { - "name": "$.slot", - "nativeSrc": "1666:6:2", - "nodeType": "YulIdentifier", - "src": "1666:6:2" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 582, - "isOffset": false, - "isSlot": true, - "src": "1666:6:2", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 578, - "isOffset": false, - "isSlot": false, - "src": "1676:27:2", - "valueSize": 1 - } - ], - "id": 584, - "nodeType": "InlineAssembly", - "src": "1643:70:2" - } - ] - }, - "id": 586, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getOwnable2StepStorage", - "nameLocation": "1554:23:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 579, - "nodeType": "ParameterList", - "parameters": [], - "src": "1577:2:2" - }, - "returnParameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 582, - "mutability": "mutable", - "name": "$", - "nameLocation": "1630:1:2", - "nodeType": "VariableDeclaration", - "scope": 586, - "src": "1602: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": [ - "1602:19:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 575, - "src": "1602:19:2" - }, - "referencedDeclaration": 575, - "src": "1602:19:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", - "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" - } - }, - "visibility": "internal" - } - ], - "src": "1601:31:2" - }, - "scope": 697, - "src": "1545:174:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "anonymous": false, - "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", - "id": 592, - "name": "OwnershipTransferStarted", - "nameLocation": "1731:24:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 591, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 588, - "indexed": true, - "mutability": "mutable", - "name": "previousOwner", - "nameLocation": "1772:13:2", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "1756:29:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1756:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 590, - "indexed": true, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "1803:8:2", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "1787:24:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 589, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1787:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1755:57:2" - }, - "src": "1725:88:2" - }, - { - "body": { - "id": 597, - "nodeType": "Block", - "src": "1876:7:2", - "statements": [] - }, - "id": 598, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 595, - "kind": "modifierInvocation", - "modifierName": { - "id": 594, - "name": "onlyInitializing", - "nameLocations": [ - "1859:16:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1055, - "src": "1859:16:2" - }, - "nodeType": "ModifierInvocation", - "src": "1859:16:2" - } - ], - "name": "__Ownable2Step_init", - "nameLocation": "1828:19:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 593, - "nodeType": "ParameterList", - "parameters": [], - "src": "1847:2:2" - }, - "returnParameters": { - "id": 596, - "nodeType": "ParameterList", - "parameters": [], - "src": "1876:0:2" - }, - "scope": 697, - "src": "1819:64:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 603, - "nodeType": "Block", - "src": "1956:7:2", - "statements": [] - }, - "id": 604, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 601, - "kind": "modifierInvocation", - "modifierName": { - "id": 600, - "name": "onlyInitializing", - "nameLocations": [ - "1939:16:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1055, - "src": "1939:16:2" - }, - "nodeType": "ModifierInvocation", - "src": "1939:16:2" - } - ], - "name": "__Ownable2Step_init_unchained", - "nameLocation": "1898:29:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 599, - "nodeType": "ParameterList", - "parameters": [], - "src": "1927:2:2" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "1956:0:2" - }, - "scope": 697, - "src": "1889:74:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 619, - "nodeType": "Block", - "src": "2100:106:2", - "statements": [ - { - "assignments": [ - 612 - ], - "declarations": [ - { - "constant": false, - "id": 612, - "mutability": "mutable", - "name": "$", - "nameLocation": "2138:1:2", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "2110: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": [ - "2110:19:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 575, - "src": "2110:19:2" - }, - "referencedDeclaration": 575, - "src": "2110: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": "2142: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": "2142:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", - "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2110:57:2" - }, - { - "expression": { - "expression": { - "id": 616, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 612, - "src": "2184: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": "2186:13:2", - "memberName": "_pendingOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 574, - "src": "2184:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 609, - "id": 618, - "nodeType": "Return", - "src": "2177:22:2" - } - ] - }, - "documentation": { - "id": 605, - "nodeType": "StructuredDocumentation", - "src": "1968:65:2", - "text": " @dev Returns the address of the pending owner." - }, - "functionSelector": "e30c3978", - "id": 620, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pendingOwner", - "nameLocation": "2047:12:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 606, - "nodeType": "ParameterList", - "parameters": [], - "src": "2059:2:2" - }, - "returnParameters": { - "id": 609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 608, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 620, - "src": "2091:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 607, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2091:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2090:9:2" - }, - "scope": 697, - "src": "2038:168:2", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 862 - ], - "body": { - "id": 647, - "nodeType": "Block", - "src": "2603:168:2", - "statements": [ - { - "assignments": [ - 631 - ], - "declarations": [ - { - "constant": false, - "id": 631, - "mutability": "mutable", - "name": "$", - "nameLocation": "2641:1:2", - "nodeType": "VariableDeclaration", - "scope": 647, - "src": "2613: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": [ - "2613:19:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 575, - "src": "2613:19:2" - }, - "referencedDeclaration": 575, - "src": "2613: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": "2645: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": "2645:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", - "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2613:57:2" - }, - { - "expression": { - "id": 639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 635, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 631, - "src": "2680: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": "2682:13:2", - "memberName": "_pendingOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 574, - "src": "2680:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 638, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "2698:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2680:26:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 640, - "nodeType": "ExpressionStatement", - "src": "2680:26:2" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 642, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "2746: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": "2746:7:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 644, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "2755: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": "2721: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": "2721:43:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 646, - "nodeType": "EmitStatement", - "src": "2716:48:2" - } - ] - }, - "documentation": { - "id": 621, - "nodeType": "StructuredDocumentation", - "src": "2212:307: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.\n Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer." - }, - "functionSelector": "f2fde38b", - "id": 648, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 627, - "kind": "modifierInvocation", - "modifierName": { - "id": 626, - "name": "onlyOwner", - "nameLocations": [ - "2593:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 787, - "src": "2593:9:2" - }, - "nodeType": "ModifierInvocation", - "src": "2593:9:2" - } - ], - "name": "transferOwnership", - "nameLocation": "2533:17:2", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 625, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2584:8:2" - }, - "parameters": { - "id": 624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 623, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "2559:8:2", - "nodeType": "VariableDeclaration", - "scope": 648, - "src": "2551:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2551:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2550:18:2" - }, - "returnParameters": { - "id": 628, - "nodeType": "ParameterList", - "parameters": [], - "src": "2603:0:2" - }, - "scope": 697, - "src": "2524:247:2", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 891 - ], - "body": { - "id": 671, - "nodeType": "Block", - "src": "3027:150:2", - "statements": [ - { - "assignments": [ - 657 - ], - "declarations": [ - { - "constant": false, - "id": 657, - "mutability": "mutable", - "name": "$", - "nameLocation": "3065:1:2", - "nodeType": "VariableDeclaration", - "scope": 671, - "src": "3037: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": [ - "3037:19:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 575, - "src": "3037:19:2" - }, - "referencedDeclaration": 575, - "src": "3037: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": "3069: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": "3069:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Ownable2StepStorage_$575_storage_ptr", - "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3037:57:2" - }, - { - "expression": { - "id": 663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "3104:22:2", - "subExpression": { - "expression": { - "id": 661, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 657, - "src": "3111: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": "3113:13:2", - "memberName": "_pendingOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 574, - "src": "3111:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 664, - "nodeType": "ExpressionStatement", - "src": "3104:22:2" - }, - { - "expression": { - "arguments": [ - { - "id": 668, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 651, - "src": "3161: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": "3136: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": "3142:18:2", - "memberName": "_transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 891, - "src": "3136: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": "3136:34:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 670, - "nodeType": "ExpressionStatement", - "src": "3136:34:2" - } - ] - }, - "documentation": { - "id": 649, - "nodeType": "StructuredDocumentation", - "src": "2777: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": "2964:18:2", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 653, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "3018:8:2" - }, - "parameters": { - "id": 652, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 651, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "2991:8:2", - "nodeType": "VariableDeclaration", - "scope": 672, - "src": "2983:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 650, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2983:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2982:18:2" - }, - "returnParameters": { - "id": 654, - "nodeType": "ParameterList", - "parameters": [], - "src": "3027:0:2" - }, - "scope": 697, - "src": "2955:222:2", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 695, - "nodeType": "Block", - "src": "3299:187:2", - "statements": [ - { - "assignments": [ - 677 - ], - "declarations": [ - { - "constant": false, - "id": 677, - "mutability": "mutable", - "name": "sender", - "nameLocation": "3317:6:2", - "nodeType": "VariableDeclaration", - "scope": 695, - "src": "3309:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3309: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": "3326: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": "3326:12:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3309: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": "3352: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": "3352:14:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 683, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3370:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3352:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 690, - "nodeType": "IfStatement", - "src": "3348:96:2", - "trueBody": { - "id": 689, - "nodeType": "Block", - "src": "3378:66:2", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 686, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3426: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": "3399: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": "3399:34:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 688, - "nodeType": "RevertStatement", - "src": "3392:41:2" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 692, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3472: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": "3453: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": "3453:26:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 694, - "nodeType": "ExpressionStatement", - "src": "3453:26:2" - } - ] - }, - "documentation": { - "id": 673, - "nodeType": "StructuredDocumentation", - "src": "3183:69:2", - "text": " @dev The new owner accepts the ownership transfer." - }, - "functionSelector": "79ba5097", - "id": 696, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "acceptOwnership", - "nameLocation": "3266:15:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 674, - "nodeType": "ParameterList", - "parameters": [], - "src": "3281:2:2" - }, - "returnParameters": { - "id": 675, - "nodeType": "ParameterList", - "parameters": [], - "src": "3299:0:2" - }, - "scope": 697, - "src": "3257:229:2", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - } - ], - "scope": 698, - "src": "1070:2418:2", - "usedErrors": [ - 728, - 733, - 909, - 912 - ], - "usedEvents": [ - 592, - 739, - 917 - ] - } - ], - "src": "107:3382: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": [ - 3417 - ], - "ERC165": [ - 3756 - ], - "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": 3418, - "src": "187:45:6", - "symbolAliases": [ - { - "foreign": { - "id": 1197, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "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": 3757, - "src": "233:57:6", - "symbolAliases": [ - { - "foreign": { - "id": 1199, - "name": "ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "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": 3417, - "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": 3756, - "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, - 3756, - 3768, - 1571, - 3417 - ], - "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": [ - 3755 - ], - "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": 3755, - "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": 3399, - "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": 3399, - "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": 3399, - "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": 3399, - "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:90:7", - "text": " @dev External interface of AccessControl declared to support ERC-165 detection." - }, - "fullyImplemented": false, - "id": 1571, - "linearizedBaseContracts": [ - 1571 - ], - "name": "IAccessControl", - "nameLocation": "236:14:7", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 1492, - "nodeType": "StructuredDocumentation", - "src": "257:56:7", - "text": " @dev The `account` is missing a role." - }, - "errorSelector": "e2517d3f", - "id": 1498, - "name": "AccessControlUnauthorizedAccount", - "nameLocation": "324:32:7", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1494, - "mutability": "mutable", - "name": "account", - "nameLocation": "365:7:7", - "nodeType": "VariableDeclaration", - "scope": 1498, - "src": "357:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "357:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1496, - "mutability": "mutable", - "name": "neededRole", - "nameLocation": "382:10:7", - "nodeType": "VariableDeclaration", - "scope": 1498, - "src": "374:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1495, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "374:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "356:37:7" - }, - "src": "318:76:7" - }, - { - "documentation": { - "id": 1499, - "nodeType": "StructuredDocumentation", - "src": "400: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": "559:28:7", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1500, - "nodeType": "ParameterList", - "parameters": [], - "src": "587:2:7" - }, - "src": "553:37:7" - }, - { - "anonymous": false, - "documentation": { - "id": 1502, - "nodeType": "StructuredDocumentation", - "src": "596: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": "861:16:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 1509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1504, - "indexed": true, - "mutability": "mutable", - "name": "role", - "nameLocation": "894:4:7", - "nodeType": "VariableDeclaration", - "scope": 1510, - "src": "878:20:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1503, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "878:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1506, - "indexed": true, - "mutability": "mutable", - "name": "previousAdminRole", - "nameLocation": "916:17:7", - "nodeType": "VariableDeclaration", - "scope": 1510, - "src": "900:33:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1505, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "900:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1508, - "indexed": true, - "mutability": "mutable", - "name": "newAdminRole", - "nameLocation": "951:12:7", - "nodeType": "VariableDeclaration", - "scope": 1510, - "src": "935:28:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1507, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "935:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "877:87:7" - }, - "src": "855:110:7" - }, - { - "anonymous": false, - "documentation": { - "id": 1511, - "nodeType": "StructuredDocumentation", - "src": "971:295:7", - "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n Expected in cases where the role was granted using the internal {AccessControl-_grantRole}." - }, - "eventSelector": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "id": 1519, - "name": "RoleGranted", - "nameLocation": "1277:11:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 1518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1513, - "indexed": true, - "mutability": "mutable", - "name": "role", - "nameLocation": "1305:4:7", - "nodeType": "VariableDeclaration", - "scope": 1519, - "src": "1289:20:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1512, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1289:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1515, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "1327:7:7", - "nodeType": "VariableDeclaration", - "scope": 1519, - "src": "1311:23:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1514, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1311:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1517, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nameLocation": "1352:6:7", - "nodeType": "VariableDeclaration", - "scope": 1519, - "src": "1336:22:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1516, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1336:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1288:71:7" - }, - "src": "1271:89:7" - }, - { - "anonymous": false, - "documentation": { - "id": 1520, - "nodeType": "StructuredDocumentation", - "src": "1366: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": "1652:11:7", - "nodeType": "EventDefinition", - "parameters": { - "id": 1527, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1522, - "indexed": true, - "mutability": "mutable", - "name": "role", - "nameLocation": "1680:4:7", - "nodeType": "VariableDeclaration", - "scope": 1528, - "src": "1664:20:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1521, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1664:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1524, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "1702:7:7", - "nodeType": "VariableDeclaration", - "scope": 1528, - "src": "1686:23:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1523, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1686:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1526, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nameLocation": "1727:6:7", - "nodeType": "VariableDeclaration", - "scope": 1528, - "src": "1711:22:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1711:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1663:71:7" - }, - "src": "1646:89:7" - }, - { - "documentation": { - "id": 1529, - "nodeType": "StructuredDocumentation", - "src": "1741:76:7", - "text": " @dev Returns `true` if `account` has been granted `role`." - }, - "functionSelector": "91d14854", - "id": 1538, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "hasRole", - "nameLocation": "1831:7:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1531, - "mutability": "mutable", - "name": "role", - "nameLocation": "1847:4:7", - "nodeType": "VariableDeclaration", - "scope": 1538, - "src": "1839:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1530, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1839:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1533, - "mutability": "mutable", - "name": "account", - "nameLocation": "1861:7:7", - "nodeType": "VariableDeclaration", - "scope": 1538, - "src": "1853:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1532, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1853:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1838:31:7" - }, - "returnParameters": { - "id": 1537, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1536, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1538, - "src": "1893:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1535, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1893:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1892:6:7" - }, - "scope": 1571, - "src": "1822:77:7", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1539, - "nodeType": "StructuredDocumentation", - "src": "1905: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": "2103:12:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1542, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1541, - "mutability": "mutable", - "name": "role", - "nameLocation": "2124:4:7", - "nodeType": "VariableDeclaration", - "scope": 1546, - "src": "2116:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1540, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2116:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2115:14:7" - }, - "returnParameters": { - "id": 1545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1544, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1546, - "src": "2153:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1543, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2153:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2152:9:7" - }, - "scope": 1571, - "src": "2094:68:7", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1547, - "nodeType": "StructuredDocumentation", - "src": "2168: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": "2421:9:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1552, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1549, - "mutability": "mutable", - "name": "role", - "nameLocation": "2439:4:7", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2431:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1548, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2431:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1551, - "mutability": "mutable", - "name": "account", - "nameLocation": "2453:7:7", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2445:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1550, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2445:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2430:31:7" - }, - "returnParameters": { - "id": 1553, - "nodeType": "ParameterList", - "parameters": [], - "src": "2470:0:7" - }, - "scope": 1571, - "src": "2412:59:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1555, - "nodeType": "StructuredDocumentation", - "src": "2477: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": "2714:10:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1557, - "mutability": "mutable", - "name": "role", - "nameLocation": "2733:4:7", - "nodeType": "VariableDeclaration", - "scope": 1562, - "src": "2725:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1556, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2725:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1559, - "mutability": "mutable", - "name": "account", - "nameLocation": "2747:7:7", - "nodeType": "VariableDeclaration", - "scope": 1562, - "src": "2739:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1558, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2739:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2724:31:7" - }, - "returnParameters": { - "id": 1561, - "nodeType": "ParameterList", - "parameters": [], - "src": "2764:0:7" - }, - "scope": 1571, - "src": "2705:60:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1563, - "nodeType": "StructuredDocumentation", - "src": "2771: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": "3276:12:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1568, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1565, - "mutability": "mutable", - "name": "role", - "nameLocation": "3297:4:7", - "nodeType": "VariableDeclaration", - "scope": 1570, - "src": "3289:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1564, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3289:7:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1567, - "mutability": "mutable", - "name": "callerConfirmation", - "nameLocation": "3311:18:7", - "nodeType": "VariableDeclaration", - "scope": 1570, - "src": "3303:26:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3303:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3288:42:7" - }, - "returnParameters": { - "id": 1569, - "nodeType": "ParameterList", - "parameters": [], - "src": "3339:0:7" - }, - "scope": 1571, - "src": "3267:73:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 1572, - "src": "226:3116:7", - "usedErrors": [ - 1498, - 1501 - ], - "usedEvents": [ - 1510, - 1519, - 1528 - ] - } - ], - "src": "109:3234:7" - }, - "id": 7 - }, - "@openzeppelin/contracts/access/Ownable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "exportedSymbols": { - "Context": [ - 3417 - ], - "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": 3418, - "src": "128:45:8", - "symbolAliases": [ - { - "foreign": { - "id": 1574, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "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": 3417, - "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, - 3417 - ], - "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": 3399, - "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": 3399, - "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": [ - 5374 - ], - "SafeCast": [ - 7139 - ] - }, - "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": 7140, - "src": "317:55:9", - "symbolAliases": [ - { - "foreign": { - "id": 1727, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "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": 5375, - "src": "373:47:9", - "symbolAliases": [ - { - "foreign": { - "id": 1729, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5374, - "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, - 3756, - 3768, - 2566, - 2535, - 1571, - 3417 - ], - "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": 7139, - "src": "8447:8:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 2133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8456:8:9", - "memberName": "toUint48", - "nodeType": "MemberAccess", - "referencedDeclaration": 6129, - "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": 3399, - "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": 3399, - "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": 7139, - "src": "10665:8:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 2267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10674:8:9", - "memberName": "toUint48", - "nodeType": "MemberAccess", - "referencedDeclaration": 6129, - "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": 5374, - "src": "12722:4:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$5374_$", - "typeString": "type(library Math)" - } - }, - "id": 2327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12727:3:9", - "memberName": "min", - "nodeType": "MemberAccess", - "referencedDeclaration": 4003, - "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, - 5384 - ], - "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": [ - "371:14:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1571, - "src": "371:14:10" - }, - "id": 2443, - "nodeType": "InheritanceSpecifier", - "src": "371:14:10" - } - ], - "canonicalName": "IAccessControlDefaultAdminRules", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2441, - "nodeType": "StructuredDocumentation", - "src": "218:107:10", - "text": " @dev External interface of AccessControlDefaultAdminRules declared to support ERC-165 detection." - }, - "fullyImplemented": false, - "id": 2535, - "linearizedBaseContracts": [ - 2535, - 1571 - ], - "name": "IAccessControlDefaultAdminRules", - "nameLocation": "336:31:10", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 2444, - "nodeType": "StructuredDocumentation", - "src": "392:75:10", - "text": " @dev The new default admin is not a valid default admin." - }, - "errorSelector": "c22c8022", - "id": 2448, - "name": "AccessControlInvalidDefaultAdmin", - "nameLocation": "478:32:10", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2446, - "mutability": "mutable", - "name": "defaultAdmin", - "nameLocation": "519:12:10", - "nodeType": "VariableDeclaration", - "scope": 2448, - "src": "511:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2445, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "511:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "510:22:10" - }, - "src": "472:61:10" - }, - { - "documentation": { - "id": 2449, - "nodeType": "StructuredDocumentation", - "src": "539: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": "849:38:10", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2450, - "nodeType": "ParameterList", - "parameters": [], - "src": "887:2:10" - }, - "src": "843:47:10" - }, - { - "documentation": { - "id": 2452, - "nodeType": "StructuredDocumentation", - "src": "896: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": "1128:38:10", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2455, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2454, - "mutability": "mutable", - "name": "schedule", - "nameLocation": "1174:8:10", - "nodeType": "VariableDeclaration", - "scope": 2456, - "src": "1167:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2453, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "1167:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "1166:17:10" - }, - "src": "1122:62:10" - }, - { - "anonymous": false, - "documentation": { - "id": 2457, - "nodeType": "StructuredDocumentation", - "src": "1190: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": "1433:29:10", - "nodeType": "EventDefinition", - "parameters": { - "id": 2462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2459, - "indexed": true, - "mutability": "mutable", - "name": "newAdmin", - "nameLocation": "1479:8:10", - "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1463:24:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1463:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2461, - "indexed": false, - "mutability": "mutable", - "name": "acceptSchedule", - "nameLocation": "1496:14:10", - "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1489:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2460, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "1489:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "1462:49:10" - }, - "src": "1427:85:10" - }, - { - "anonymous": false, - "documentation": { - "id": 2464, - "nodeType": "StructuredDocumentation", - "src": "1518: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": "1652:28:10", - "nodeType": "EventDefinition", - "parameters": { - "id": 2465, - "nodeType": "ParameterList", - "parameters": [], - "src": "1680:2:10" - }, - "src": "1646:37:10" - }, - { - "anonymous": false, - "documentation": { - "id": 2467, - "nodeType": "StructuredDocumentation", - "src": "1689: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": "1901:32:10", - "nodeType": "EventDefinition", - "parameters": { - "id": 2472, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2469, - "indexed": false, - "mutability": "mutable", - "name": "newDelay", - "nameLocation": "1941:8:10", - "nodeType": "VariableDeclaration", - "scope": 2473, - "src": "1934:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2468, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "1934:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2471, - "indexed": false, - "mutability": "mutable", - "name": "effectSchedule", - "nameLocation": "1958:14:10", - "nodeType": "VariableDeclaration", - "scope": 2473, - "src": "1951:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2470, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "1951:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "1933:40:10" - }, - "src": "1895:79:10" - }, - { - "anonymous": false, - "documentation": { - "id": 2474, - "nodeType": "StructuredDocumentation", - "src": "1980:103:10", - "text": " @dev Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass." - }, - "eventSelector": "2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5", - "id": 2476, - "name": "DefaultAdminDelayChangeCanceled", - "nameLocation": "2094:31:10", - "nodeType": "EventDefinition", - "parameters": { - "id": 2475, - "nodeType": "ParameterList", - "parameters": [], - "src": "2125:2:10" - }, - "src": "2088:40:10" - }, - { - "documentation": { - "id": 2477, - "nodeType": "StructuredDocumentation", - "src": "2134: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": "2235:12:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2478, - "nodeType": "ParameterList", - "parameters": [], - "src": "2247:2:10" - }, - "returnParameters": { - "id": 2481, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2480, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2482, - "src": "2273:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2479, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2273:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2272:9:10" - }, - "scope": 2535, - "src": "2226:56:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2483, - "nodeType": "StructuredDocumentation", - "src": "2288: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": "2745:19:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2484, - "nodeType": "ParameterList", - "parameters": [], - "src": "2764:2:10" - }, - "returnParameters": { - "id": 2489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2486, - "mutability": "mutable", - "name": "newAdmin", - "nameLocation": "2798:8:10", - "nodeType": "VariableDeclaration", - "scope": 2490, - "src": "2790:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2488, - "mutability": "mutable", - "name": "acceptSchedule", - "nameLocation": "2815:14:10", - "nodeType": "VariableDeclaration", - "scope": 2490, - "src": "2808:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2487, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "2808:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "2789:41:10" - }, - "scope": 2535, - "src": "2736:95:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2491, - "nodeType": "StructuredDocumentation", - "src": "2837: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": "3302:17:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2492, - "nodeType": "ParameterList", - "parameters": [], - "src": "3319:2:10" - }, - "returnParameters": { - "id": 2495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2494, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2496, - "src": "3345:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2493, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "3345:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "3344:8:10" - }, - "scope": 2535, - "src": "3293:60:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2497, - "nodeType": "StructuredDocumentation", - "src": "3359: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": "3855:24:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2498, - "nodeType": "ParameterList", - "parameters": [], - "src": "3879:2:10" - }, - "returnParameters": { - "id": 2503, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2500, - "mutability": "mutable", - "name": "newDelay", - "nameLocation": "3912:8:10", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "3905:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2499, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "3905:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2502, - "mutability": "mutable", - "name": "effectSchedule", - "nameLocation": "3929:14:10", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "3922:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2501, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "3922:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "3904:40:10" - }, - "scope": 2535, - "src": "3846:99:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2505, - "nodeType": "StructuredDocumentation", - "src": "3951: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": "4297:25:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2508, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2507, - "mutability": "mutable", - "name": "newAdmin", - "nameLocation": "4331:8:10", - "nodeType": "VariableDeclaration", - "scope": 2510, - "src": "4323:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4323:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4322:18:10" - }, - "returnParameters": { - "id": 2509, - "nodeType": "ParameterList", - "parameters": [], - "src": "4349:0:10" - }, - "scope": 2535, - "src": "4288:62:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2511, - "nodeType": "StructuredDocumentation", - "src": "4356: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": "4732:26:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2512, - "nodeType": "ParameterList", - "parameters": [], - "src": "4758:2:10" - }, - "returnParameters": { - "id": 2513, - "nodeType": "ParameterList", - "parameters": [], - "src": "4769:0:10" - }, - "scope": 2535, - "src": "4723:47:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2515, - "nodeType": "StructuredDocumentation", - "src": "4776: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": "5329:26:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2516, - "nodeType": "ParameterList", - "parameters": [], - "src": "5355:2:10" - }, - "returnParameters": { - "id": 2517, - "nodeType": "ParameterList", - "parameters": [], - "src": "5366:0:10" - }, - "scope": 2535, - "src": "5320:47:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2519, - "nodeType": "StructuredDocumentation", - "src": "5373: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": "6797:23:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2521, - "mutability": "mutable", - "name": "newDelay", - "nameLocation": "6828:8:10", - "nodeType": "VariableDeclaration", - "scope": 2524, - "src": "6821:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2520, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "6821:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "6820:17:10" - }, - "returnParameters": { - "id": 2523, - "nodeType": "ParameterList", - "parameters": [], - "src": "6846:0:10" - }, - "scope": 2535, - "src": "6788:59:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2525, - "nodeType": "StructuredDocumentation", - "src": "6853: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": "7096:25:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2526, - "nodeType": "ParameterList", - "parameters": [], - "src": "7121:2:10" - }, - "returnParameters": { - "id": 2527, - "nodeType": "ParameterList", - "parameters": [], - "src": "7132:0:10" - }, - "scope": 2535, - "src": "7087:46:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2529, - "nodeType": "StructuredDocumentation", - "src": "7139: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": "8105:29:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2530, - "nodeType": "ParameterList", - "parameters": [], - "src": "8134:2:10" - }, - "returnParameters": { - "id": 2533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2532, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2534, - "src": "8160:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 2531, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "8160:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "8159:8:10" - }, - "scope": 2535, - "src": "8096:72:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 2536, - "src": "326:7844:10", - "usedErrors": [ - 1498, - 1501, - 2448, - 2451, - 2456 - ], - "usedEvents": [ - 1510, - 1519, - 1528, - 2463, - 2466, - 2473, - 2476 - ] - } - ], - "src": "137:8034: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": [ - 2898 - ], - "Proxy": [ - 2934 - ] - }, - "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": 2935, - "src": "140:35:13", - "symbolAliases": [ - { - "foreign": { - "id": 2569, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "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": 2899, - "src": "176:48:13", - "symbolAliases": [ - { - "foreign": { - "id": 2571, - "name": "ERC1967Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "184:12:13", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 2574, - "name": "Proxy", - "nameLocations": [ - "625:5:13" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2934, - "src": "625:5:13" - }, - "id": 2575, - "nodeType": "InheritanceSpecifier", - "src": "625:5:13" - } - ], - "canonicalName": "ERC1967Proxy", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 2573, - "nodeType": "StructuredDocumentation", - "src": "226:373: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[ERC-1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy." - }, - "fullyImplemented": true, - "id": 2604, - "linearizedBaseContracts": [ - 2604, - 2934 - ], - "name": "ERC1967Proxy", - "nameLocation": "609:12:13", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2590, - "nodeType": "Block", - "src": "1145:69:13", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 2586, - "name": "implementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2578, - "src": "1185:14:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 2587, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1201: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": 2898, - "src": "1155:12:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2898_$", - "typeString": "type(library ERC1967Utils)" - } - }, - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1168:16:13", - "memberName": "upgradeToAndCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 2713, - "src": "1155: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": "1155:52:13", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2589, - "nodeType": "ExpressionStatement", - "src": "1155:52:13" - } - ] - }, - "documentation": { - "id": 2576, - "nodeType": "StructuredDocumentation", - "src": "637: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": "1101:14:13", - "nodeType": "VariableDeclaration", - "scope": 2591, - "src": "1093:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2577, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1093:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2580, - "mutability": "mutable", - "name": "_data", - "nameLocation": "1130:5:13", - "nodeType": "VariableDeclaration", - "scope": 2591, - "src": "1117:18:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2579, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1117:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1092:44:13" - }, - "returnParameters": { - "id": 2582, - "nodeType": "ParameterList", - "parameters": [], - "src": "1145:0:13" - }, - "scope": 2604, - "src": "1081:133:13", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 2915 - ], - "body": { - "id": 2602, - "nodeType": "Block", - "src": "1659:56:13", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 2598, - "name": "ERC1967Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "1676:12:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2898_$", - "typeString": "type(library ERC1967Utils)" - } - }, - "id": 2599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1689:17:13", - "memberName": "getImplementation", - "nodeType": "MemberAccess", - "referencedDeclaration": 2650, - "src": "1676: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": "1676:32:13", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2597, - "id": 2601, - "nodeType": "Return", - "src": "1669:39:13" - } - ] - }, - "documentation": { - "id": 2592, - "nodeType": "StructuredDocumentation", - "src": "1220:358: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 ERC-1967) 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": "1592:15:13", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 2594, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "1632:8:13" - }, - "parameters": { - "id": 2593, - "nodeType": "ParameterList", - "parameters": [], - "src": "1607:2:13" - }, - "returnParameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2596, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2603, - "src": "1650:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1650:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1649:9:13" - }, - "scope": 2604, - "src": "1583:132:13", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 2605, - "src": "600:1117:13", - "usedErrors": [ - 2624, - 2637, - 3138, - 3430 - ], - "usedEvents": [ - 2543 - ] - } - ], - "src": "114:1604:13" - }, - "id": 13 - }, - "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol", - "exportedSymbols": { - "Address": [ - 3387 - ], - "ERC1967Utils": [ - 2898 - ], - "IBeacon": [ - 2944 - ], - "IERC1967": [ - 2556 - ], - "StorageSlot": [ - 3732 - ] - }, - "id": 2899, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2606, - "literals": [ - "solidity", - "^", - "0.8", - ".21" - ], - "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": 2899, - "sourceUnit": 2945, - "src": "140:46:14", - "symbolAliases": [ - { - "foreign": { - "id": 2607, - "name": "IBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2944, - "src": "148:7:14", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/interfaces/IERC1967.sol", - "file": "../../interfaces/IERC1967.sol", - "id": 2610, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2899, - "sourceUnit": 2557, - "src": "187:55:14", - "symbolAliases": [ - { - "foreign": { - "id": 2609, - "name": "IERC1967", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2556, - "src": "195:8:14", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Address.sol", - "file": "../../utils/Address.sol", - "id": 2612, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2899, - "sourceUnit": 3388, - "src": "243:48:14", - "symbolAliases": [ - { - "foreign": { - "id": 2611, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3387, - "src": "251:7:14", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", - "file": "../../utils/StorageSlot.sol", - "id": 2614, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2899, - "sourceUnit": 3733, - "src": "292:56:14", - "symbolAliases": [ - { - "foreign": { - "id": 2613, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "300:11:14", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ERC1967Utils", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 2615, - "nodeType": "StructuredDocumentation", - "src": "350:145:14", - "text": " @dev This library provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots." - }, - "fullyImplemented": true, - "id": 2898, - "linearizedBaseContracts": [ - 2898 - ], - "name": "ERC1967Utils", - "nameLocation": "504:12:14", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "documentation": { - "id": 2616, - "nodeType": "StructuredDocumentation", - "src": "523: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": 2619, - "mutability": "constant", - "name": "IMPLEMENTATION_SLOT", - "nameLocation": "789:19:14", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "763:114:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2617, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "763:7:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263", - "id": 2618, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "811:66:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1", - "typeString": "int_const 2444...(69 digits omitted)...5612" - }, - "value": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" - }, - "visibility": "internal" - }, - { - "documentation": { - "id": 2620, - "nodeType": "StructuredDocumentation", - "src": "884:69:14", - "text": " @dev The `implementation` of the proxy is invalid." - }, - "errorSelector": "4c9c8ce3", - "id": 2624, - "name": "ERC1967InvalidImplementation", - "nameLocation": "964:28:14", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2623, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2622, - "mutability": "mutable", - "name": "implementation", - "nameLocation": "1001:14:14", - "nodeType": "VariableDeclaration", - "scope": 2624, - "src": "993:22:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "993:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "992:24:14" - }, - "src": "958:59:14" - }, - { - "documentation": { - "id": 2625, - "nodeType": "StructuredDocumentation", - "src": "1023:60:14", - "text": " @dev The `admin` of the proxy is invalid." - }, - "errorSelector": "62e77ba2", - "id": 2629, - "name": "ERC1967InvalidAdmin", - "nameLocation": "1094:19:14", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2628, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2627, - "mutability": "mutable", - "name": "admin", - "nameLocation": "1122:5:14", - "nodeType": "VariableDeclaration", - "scope": 2629, - "src": "1114:13:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2626, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1114:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1113:15:14" - }, - "src": "1088:41:14" - }, - { - "documentation": { - "id": 2630, - "nodeType": "StructuredDocumentation", - "src": "1135:61:14", - "text": " @dev The `beacon` of the proxy is invalid." - }, - "errorSelector": "64ced0ec", - "id": 2634, - "name": "ERC1967InvalidBeacon", - "nameLocation": "1207:20:14", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2633, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2632, - "mutability": "mutable", - "name": "beacon", - "nameLocation": "1236:6:14", - "nodeType": "VariableDeclaration", - "scope": 2634, - "src": "1228:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2631, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1228:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1227:16:14" - }, - "src": "1201:43:14" - }, - { - "documentation": { - "id": 2635, - "nodeType": "StructuredDocumentation", - "src": "1250:82:14", - "text": " @dev An upgrade function sees `msg.value > 0` that may be lost." - }, - "errorSelector": "b398979f", - "id": 2637, - "name": "ERC1967NonPayable", - "nameLocation": "1343:17:14", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2636, - "nodeType": "ParameterList", - "parameters": [], - "src": "1360:2:14" - }, - "src": "1337:26:14" - }, - { - "body": { - "id": 2649, - "nodeType": "Block", - "src": "1502:77:14", - "statements": [ - { - "expression": { - "expression": { - "arguments": [ - { - "id": 2645, - "name": "IMPLEMENTATION_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2619, - "src": "1546:19:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2643, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "1519:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1531:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "1519:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1519:47:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2647, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1567:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "1519:53:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2642, - "id": 2648, - "nodeType": "Return", - "src": "1512:60:14" - } - ] - }, - "documentation": { - "id": 2638, - "nodeType": "StructuredDocumentation", - "src": "1369:67:14", - "text": " @dev Returns the current implementation address." - }, - "id": 2650, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getImplementation", - "nameLocation": "1450:17:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2639, - "nodeType": "ParameterList", - "parameters": [], - "src": "1467:2:14" - }, - "returnParameters": { - "id": 2642, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2641, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2650, - "src": "1493:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2640, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1493:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1492:9:14" - }, - "scope": 2898, - "src": "1441:138:14", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2676, - "nodeType": "Block", - "src": "1734:218:14", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 2656, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1748:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2657, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1766:4:14", - "memberName": "code", - "nodeType": "MemberAccess", - "src": "1748:22:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1771:6:14", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1748:29:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2659, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1781:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1748:34:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2666, - "nodeType": "IfStatement", - "src": "1744:119:14", - "trueBody": { - "id": 2665, - "nodeType": "Block", - "src": "1784:79:14", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 2662, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1834:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2661, - "name": "ERC1967InvalidImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1805:28:14", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1805:47:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 2664, - "nodeType": "RevertStatement", - "src": "1798:54:14" - } - ] - } - }, - { - "expression": { - "id": 2674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "arguments": [ - { - "id": 2670, - "name": "IMPLEMENTATION_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2619, - "src": "1899:19:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2667, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "1872:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1884:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "1872:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1872:47:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2672, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "1920:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "1872:53:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 2673, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1928:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1872:73:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2675, - "nodeType": "ExpressionStatement", - "src": "1872:73:14" - } - ] - }, - "documentation": { - "id": 2651, - "nodeType": "StructuredDocumentation", - "src": "1585:81:14", - "text": " @dev Stores a new address in the ERC-1967 implementation slot." - }, - "id": 2677, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setImplementation", - "nameLocation": "1680:18:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2653, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "1707:17:14", - "nodeType": "VariableDeclaration", - "scope": 2677, - "src": "1699:25:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1699:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1698:27:14" - }, - "returnParameters": { - "id": 2655, - "nodeType": "ParameterList", - "parameters": [], - "src": "1734:0:14" - }, - "scope": 2898, - "src": "1671:281:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 2712, - "nodeType": "Block", - "src": "2345:263:14", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 2686, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "2374:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2685, - "name": "_setImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2677, - "src": "2355:18:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2355:37:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2688, - "nodeType": "ExpressionStatement", - "src": "2355:37:14" - }, - { - "eventCall": { - "arguments": [ - { - "id": 2692, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "2425:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 2689, - "name": "IERC1967", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2556, - "src": "2407:8:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC1967_$2556_$", - "typeString": "type(contract IERC1967)" - } - }, - "id": 2691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2416:8:14", - "memberName": "Upgraded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2543, - "src": "2407:17:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2407:36:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2694, - "nodeType": "EmitStatement", - "src": "2402:41:14" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 2695, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2682, - "src": "2458:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2463:6:14", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2458:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 2697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2472:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2458:15:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2710, - "nodeType": "Block", - "src": "2559:43:14", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2707, - "name": "_checkNonPayable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2897, - "src": "2573:16:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2573:18:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2709, - "nodeType": "ExpressionStatement", - "src": "2573:18:14" - } - ] - }, - "id": 2711, - "nodeType": "IfStatement", - "src": "2454:148:14", - "trueBody": { - "id": 2706, - "nodeType": "Block", - "src": "2475:78:14", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 2702, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "2518:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 2703, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2682, - "src": "2537: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": 2699, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3387, - "src": "2489:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Address_$3387_$", - "typeString": "type(library Address)" - } - }, - "id": 2701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2497:20:14", - "memberName": "functionDelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3304, - "src": "2489: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": 2704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2489:53:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2705, - "nodeType": "ExpressionStatement", - "src": "2489:53:14" - } - ] - } - } - ] - }, - "documentation": { - "id": 2678, - "nodeType": "StructuredDocumentation", - "src": "1958: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": 2713, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "upgradeToAndCall", - "nameLocation": "2273:16:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2683, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2680, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "2298:17:14", - "nodeType": "VariableDeclaration", - "scope": 2713, - "src": "2290:25:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2679, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2290:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2682, - "mutability": "mutable", - "name": "data", - "nameLocation": "2330:4:14", - "nodeType": "VariableDeclaration", - "scope": 2713, - "src": "2317:17:14", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2681, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2317:5:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2289:46:14" - }, - "returnParameters": { - "id": 2684, - "nodeType": "ParameterList", - "parameters": [], - "src": "2345:0:14" - }, - "scope": 2898, - "src": "2264:344:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 2714, - "nodeType": "StructuredDocumentation", - "src": "2614: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": 2717, - "mutability": "constant", - "name": "ADMIN_SLOT", - "nameLocation": "2855:10:14", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "2829:105:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2715, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2829:7:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033", - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2868:66:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1", - "typeString": "int_const 8195...(69 digits omitted)...7091" - }, - "value": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" - }, - "visibility": "internal" - }, - { - "body": { - "id": 2729, - "nodeType": "Block", - "src": "3339:68:14", - "statements": [ - { - "expression": { - "expression": { - "arguments": [ - { - "id": 2725, - "name": "ADMIN_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2717, - "src": "3383:10:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2723, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "3356:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3368:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "3356:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3356:38:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2727, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3395:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "3356:44:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2722, - "id": 2728, - "nodeType": "Return", - "src": "3349:51:14" - } - ] - }, - "documentation": { - "id": 2718, - "nodeType": "StructuredDocumentation", - "src": "2941:341: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 ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`" - }, - "id": 2730, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAdmin", - "nameLocation": "3296:8:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2719, - "nodeType": "ParameterList", - "parameters": [], - "src": "3304:2:14" - }, - "returnParameters": { - "id": 2722, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2721, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2730, - "src": "3330:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2720, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3330:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3329:9:14" - }, - "scope": 2898, - "src": "3287:120:14", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2760, - "nodeType": "Block", - "src": "3535:172:14", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2736, - "name": "newAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "3549:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 2739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3569: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": 2738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3561:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2737, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3561:7:14", - "typeDescriptions": {} - } - }, - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3561:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3549:22:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2750, - "nodeType": "IfStatement", - "src": "3545:91:14", - "trueBody": { - "id": 2749, - "nodeType": "Block", - "src": "3573:63:14", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 2745, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3622: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": 2744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3614:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2743, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3614:7:14", - "typeDescriptions": {} - } - }, - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3614:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2742, - "name": "ERC1967InvalidAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2629, - "src": "3594:19:14", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 2747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3594:31:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 2748, - "nodeType": "RevertStatement", - "src": "3587:38:14" - } - ] - } - }, - { - "expression": { - "id": 2758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "arguments": [ - { - "id": 2754, - "name": "ADMIN_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2717, - "src": "3672:10:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2751, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "3645:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3657:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "3645:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3684:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "3645:44:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 2757, - "name": "newAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "3692:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3645:55:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2759, - "nodeType": "ExpressionStatement", - "src": "3645:55:14" - } - ] - }, - "documentation": { - "id": 2731, - "nodeType": "StructuredDocumentation", - "src": "3413:72:14", - "text": " @dev Stores a new address in the ERC-1967 admin slot." - }, - "id": 2761, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setAdmin", - "nameLocation": "3499:9:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2733, - "mutability": "mutable", - "name": "newAdmin", - "nameLocation": "3517:8:14", - "nodeType": "VariableDeclaration", - "scope": 2761, - "src": "3509:16:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2732, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3509:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3508:18:14" - }, - "returnParameters": { - "id": 2735, - "nodeType": "ParameterList", - "parameters": [], - "src": "3535:0:14" - }, - "scope": 2898, - "src": "3490:217:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 2779, - "nodeType": "Block", - "src": "3875:94:14", - "statements": [ - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2770, - "name": "getAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2730, - "src": "3912:8:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3912:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 2772, - "name": "newAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2764, - "src": "3924:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 2767, - "name": "IERC1967", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2556, - "src": "3890:8:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC1967_$2556_$", - "typeString": "type(contract IERC1967)" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3899:12:14", - "memberName": "AdminChanged", - "nodeType": "MemberAccess", - "referencedDeclaration": 2550, - "src": "3890:21:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 2773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3890:43:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2774, - "nodeType": "EmitStatement", - "src": "3885:48:14" - }, - { - "expression": { - "arguments": [ - { - "id": 2776, - "name": "newAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2764, - "src": "3953:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2775, - "name": "_setAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2761, - "src": "3943:9:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3943:19:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2778, - "nodeType": "ExpressionStatement", - "src": "3943:19:14" - } - ] - }, - "documentation": { - "id": 2762, - "nodeType": "StructuredDocumentation", - "src": "3713:109:14", - "text": " @dev Changes the admin of the proxy.\n Emits an {IERC1967-AdminChanged} event." - }, - "id": 2780, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "changeAdmin", - "nameLocation": "3836:11:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2765, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2764, - "mutability": "mutable", - "name": "newAdmin", - "nameLocation": "3856:8:14", - "nodeType": "VariableDeclaration", - "scope": 2780, - "src": "3848:16:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2763, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3848:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3847:18:14" - }, - "returnParameters": { - "id": 2766, - "nodeType": "ParameterList", - "parameters": [], - "src": "3875:0:14" - }, - "scope": 2898, - "src": "3827:142:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 2781, - "nodeType": "StructuredDocumentation", - "src": "3975: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": 2784, - "mutability": "constant", - "name": "BEACON_SLOT", - "nameLocation": "4272:11:14", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "4246:106:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2782, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4246:7:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530", - "id": 2783, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4286:66:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1", - "typeString": "int_const 7415...(69 digits omitted)...4704" - }, - "value": "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50" - }, - "visibility": "internal" - }, - { - "body": { - "id": 2796, - "nodeType": "Block", - "src": "4468:69:14", - "statements": [ - { - "expression": { - "expression": { - "arguments": [ - { - "id": 2792, - "name": "BEACON_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2784, - "src": "4512:11:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2790, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "4485:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4497:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "4485:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4485:39:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4525:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "4485:45:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2789, - "id": 2795, - "nodeType": "Return", - "src": "4478:52:14" - } - ] - }, - "documentation": { - "id": 2785, - "nodeType": "StructuredDocumentation", - "src": "4359:51:14", - "text": " @dev Returns the current beacon." - }, - "id": 2797, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBeacon", - "nameLocation": "4424:9:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2786, - "nodeType": "ParameterList", - "parameters": [], - "src": "4433:2:14" - }, - "returnParameters": { - "id": 2789, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2788, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2797, - "src": "4459:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2787, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4459:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4458:9:14" - }, - "scope": 2898, - "src": "4415:122:14", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2842, - "nodeType": "Block", - "src": "4667:390:14", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 2803, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2800, - "src": "4681:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4691:4:14", - "memberName": "code", - "nodeType": "MemberAccess", - "src": "4681:14:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4696:6:14", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4681:21:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4706:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4681:26:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2813, - "nodeType": "IfStatement", - "src": "4677:95:14", - "trueBody": { - "id": 2812, - "nodeType": "Block", - "src": "4709:63:14", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 2809, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2800, - "src": "4751:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2808, - "name": "ERC1967InvalidBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2634, - "src": "4730:20:14", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 2810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4730:31:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 2811, - "nodeType": "RevertStatement", - "src": "4723:38:14" - } - ] - } - }, - { - "expression": { - "id": 2821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "arguments": [ - { - "id": 2817, - "name": "BEACON_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2784, - "src": "4809:11:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 2814, - "name": "StorageSlot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "4782:11:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StorageSlot_$3732_$", - "typeString": "type(library StorageSlot)" - } - }, - "id": 2816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4794:14:14", - "memberName": "getAddressSlot", - "nodeType": "MemberAccess", - "referencedDeclaration": 3643, - "src": "4782:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$", - "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" - } - }, - "id": 2818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4782:39:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot storage pointer" - } - }, - "id": 2819, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "4822:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 3613, - "src": "4782:45:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 2820, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2800, - "src": "4830:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4782:57:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2822, - "nodeType": "ExpressionStatement", - "src": "4782:57:14" - }, - { - "assignments": [ - 2824 - ], - "declarations": [ - { - "constant": false, - "id": 2824, - "mutability": "mutable", - "name": "beaconImplementation", - "nameLocation": "4858:20:14", - "nodeType": "VariableDeclaration", - "scope": 2842, - "src": "4850:28:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2823, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4850:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 2830, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 2826, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2800, - "src": "4889:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2825, - "name": "IBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2944, - "src": "4881:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IBeacon_$2944_$", - "typeString": "type(contract IBeacon)" - } - }, - "id": 2827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4881:18:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBeacon_$2944", - "typeString": "contract IBeacon" - } - }, - "id": 2828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4900:14:14", - "memberName": "implementation", - "nodeType": "MemberAccess", - "referencedDeclaration": 2943, - "src": "4881:33:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4881:35:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4850:66:14" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 2831, - "name": "beaconImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "4930:20:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4951:4:14", - "memberName": "code", - "nodeType": "MemberAccess", - "src": "4930:25:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4956:6:14", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4930:32:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4966:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4930:37:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2841, - "nodeType": "IfStatement", - "src": "4926:125:14", - "trueBody": { - "id": 2840, - "nodeType": "Block", - "src": "4969:82:14", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 2837, - "name": "beaconImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "5019:20:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2836, - "name": "ERC1967InvalidImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "4990:28:14", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 2838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4990:50:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 2839, - "nodeType": "RevertStatement", - "src": "4983:57:14" - } - ] - } - } - ] - }, - "documentation": { - "id": 2798, - "nodeType": "StructuredDocumentation", - "src": "4543:72:14", - "text": " @dev Stores a new beacon in the ERC-1967 beacon slot." - }, - "id": 2843, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setBeacon", - "nameLocation": "4629:10:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2800, - "mutability": "mutable", - "name": "newBeacon", - "nameLocation": "4648:9:14", - "nodeType": "VariableDeclaration", - "scope": 2843, - "src": "4640:17:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2799, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4640:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4639:19:14" - }, - "returnParameters": { - "id": 2802, - "nodeType": "ParameterList", - "parameters": [], - "src": "4667:0:14" - }, - "scope": 2898, - "src": "4620:437:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 2882, - "nodeType": "Block", - "src": "5661:263:14", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 2852, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "5682:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2851, - "name": "_setBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2843, - "src": "5671:10:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5671:21:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2854, - "nodeType": "ExpressionStatement", - "src": "5671:21:14" - }, - { - "eventCall": { - "arguments": [ - { - "id": 2858, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "5731:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 2855, - "name": "IERC1967", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2556, - "src": "5707:8:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC1967_$2556_$", - "typeString": "type(contract IERC1967)" - } - }, - "id": 2857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5716:14:14", - "memberName": "BeaconUpgraded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2555, - "src": "5707:23:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5707:34:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2860, - "nodeType": "EmitStatement", - "src": "5702:39:14" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 2861, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2848, - "src": "5756:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5761:6:14", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5756:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 2863, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5770:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5756:15:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2880, - "nodeType": "Block", - "src": "5875:43:14", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2877, - "name": "_checkNonPayable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2897, - "src": "5889:16:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5889:18:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2879, - "nodeType": "ExpressionStatement", - "src": "5889:18:14" - } - ] - }, - "id": 2881, - "nodeType": "IfStatement", - "src": "5752:166:14", - "trueBody": { - "id": 2876, - "nodeType": "Block", - "src": "5773:96:14", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 2869, - "name": "newBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "5824:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2868, - "name": "IBeacon", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2944, - "src": "5816:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IBeacon_$2944_$", - "typeString": "type(contract IBeacon)" - } - }, - "id": 2870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5816:18:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBeacon_$2944", - "typeString": "contract IBeacon" - } - }, - "id": 2871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5835:14:14", - "memberName": "implementation", - "nodeType": "MemberAccess", - "referencedDeclaration": 2943, - "src": "5816:33:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5816:35:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 2873, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2848, - "src": "5853: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": 2865, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3387, - "src": "5787:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Address_$3387_$", - "typeString": "type(library Address)" - } - }, - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5795:20:14", - "memberName": "functionDelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3304, - "src": "5787: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": 2874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5787:71:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2875, - "nodeType": "ExpressionStatement", - "src": "5787:71:14" - } - ] - } - } - ] - }, - "documentation": { - "id": 2844, - "nodeType": "StructuredDocumentation", - "src": "5063: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": 2883, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "upgradeBeaconToAndCall", - "nameLocation": "5591:22:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2849, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2846, - "mutability": "mutable", - "name": "newBeacon", - "nameLocation": "5622:9:14", - "nodeType": "VariableDeclaration", - "scope": 2883, - "src": "5614:17:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2845, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5614:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2848, - "mutability": "mutable", - "name": "data", - "nameLocation": "5646:4:14", - "nodeType": "VariableDeclaration", - "scope": 2883, - "src": "5633:17:14", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2847, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5633:5:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5613:38:14" - }, - "returnParameters": { - "id": 2850, - "nodeType": "ParameterList", - "parameters": [], - "src": "5661:0:14" - }, - "scope": 2898, - "src": "5582:342:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2896, - "nodeType": "Block", - "src": "6149:86:14", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 2887, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6163:3:14", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6167:5:14", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "6163:9:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 2889, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6175:1:14", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6163:13:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2895, - "nodeType": "IfStatement", - "src": "6159:70:14", - "trueBody": { - "id": 2894, - "nodeType": "Block", - "src": "6178:51:14", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2891, - "name": "ERC1967NonPayable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2637, - "src": "6199:17:14", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 2892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6199:19:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 2893, - "nodeType": "RevertStatement", - "src": "6192:26:14" - } - ] - } - } - ] - }, - "documentation": { - "id": 2884, - "nodeType": "StructuredDocumentation", - "src": "5930: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": 2897, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkNonPayable", - "nameLocation": "6122:16:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [], - "src": "6138:2:14" - }, - "returnParameters": { - "id": 2886, - "nodeType": "ParameterList", - "parameters": [], - "src": "6149:0:14" - }, - "scope": 2898, - "src": "6113:122:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - } - ], - "scope": 2899, - "src": "496:5741:14", - "usedErrors": [ - 2624, - 2629, - 2634, - 2637 - ], - "usedEvents": [] - } - ], - "src": "114:6124:14" - }, - "id": 14 - }, - "@openzeppelin/contracts/proxy/Proxy.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/proxy/Proxy.sol", - "exportedSymbols": { - "Proxy": [ - 2934 - ] - }, - "id": 2935, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2900, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "99:24:15" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Proxy", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 2901, - "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": 2934, - "linearizedBaseContracts": [ - 2934 - ], - "name": "Proxy", - "nameLocation": "742:5:15", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2908, - "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": 2904, - "isOffset": false, - "isSlot": false, - "src": "1463:14:15", - "valueSize": 1 - } - ], - "id": 2907, - "nodeType": "InlineAssembly", - "src": "1019:819:15" - } - ] - }, - "documentation": { - "id": 2902, - "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": 2909, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_delegate", - "nameLocation": "958:9:15", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2904, - "mutability": "mutable", - "name": "implementation", - "nameLocation": "976:14:15", - "nodeType": "VariableDeclaration", - "scope": 2909, - "src": "968:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2903, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "968:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "967:24:15" - }, - "returnParameters": { - "id": 2906, - "nodeType": "ParameterList", - "parameters": [], - "src": "1009:0:15" - }, - "scope": 2934, - "src": "949:895:15", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "documentation": { - "id": 2910, - "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": 2915, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "_implementation", - "nameLocation": "2037:15:15", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2911, - "nodeType": "ParameterList", - "parameters": [], - "src": "2052:2:15" - }, - "returnParameters": { - "id": 2914, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2913, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "2086:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2912, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2086:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2085:9:15" - }, - "scope": 2934, - "src": "2028:67:15", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 2924, - "nodeType": "Block", - "src": "2361:45:15", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2920, - "name": "_implementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2915, - "src": "2381:15:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2921, - "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": 2919, - "name": "_delegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2909, - "src": "2371:9:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2922, - "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": 2923, - "nodeType": "ExpressionStatement", - "src": "2371:28:15" - } - ] - }, - "documentation": { - "id": 2916, - "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": 2925, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_fallback", - "nameLocation": "2332:9:15", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2917, - "nodeType": "ParameterList", - "parameters": [], - "src": "2341:2:15" - }, - "returnParameters": { - "id": 2918, - "nodeType": "ParameterList", - "parameters": [], - "src": "2361:0:15" - }, - "scope": 2934, - "src": "2323:83:15", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 2932, - "nodeType": "Block", - "src": "2639:28:15", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2929, - "name": "_fallback", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "2649:9:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2930, - "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": 2931, - "nodeType": "ExpressionStatement", - "src": "2649:11:15" - } - ] - }, - "documentation": { - "id": 2926, - "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": 2933, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2927, - "nodeType": "ParameterList", - "parameters": [], - "src": "2611:2:15" - }, - "returnParameters": { - "id": 2928, - "nodeType": "ParameterList", - "parameters": [], - "src": "2639:0:15" - }, - "scope": 2934, - "src": "2603:64:15", - "stateMutability": "payable", - "virtual": true, - "visibility": "external" - } - ], - "scope": 2935, - "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": [ - 2944 - ] - }, - "id": 2945, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2936, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "108:24:16" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IBeacon", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2937, - "nodeType": "StructuredDocumentation", - "src": "134:79:16", - "text": " @dev This is the interface that {BeaconProxy} expects of its beacon." - }, - "fullyImplemented": false, - "id": 2944, - "linearizedBaseContracts": [ - 2944 - ], - "name": "IBeacon", - "nameLocation": "224:7:16", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 2938, - "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": 2943, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "implementation", - "nameLocation": "420:14:16", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2939, - "nodeType": "ParameterList", - "parameters": [], - "src": "434:2:16" - }, - "returnParameters": { - "id": 2942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2941, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2943, - "src": "460:7:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2940, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "460:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "459:9:16" - }, - "scope": 2944, - "src": "411:58:16", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 2945, - "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": [ - 3014 - ], - "Ownable": [ - 1719 - ], - "ProxyAdmin": [ - 2992 - ] - }, - "id": 2993, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2946, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "116:24:17" - }, - { - "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "file": "./TransparentUpgradeableProxy.sol", - "id": 2948, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2993, - "sourceUnit": 3129, - "src": "142:79:17", - "symbolAliases": [ - { - "foreign": { - "id": 2947, - "name": "ITransparentUpgradeableProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3014, - "src": "150:28:17", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "file": "../../access/Ownable.sol", - "id": 2950, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2993, - "sourceUnit": 1720, - "src": "222:49:17", - "symbolAliases": [ - { - "foreign": { - "id": 2949, - "name": "Ownable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1719, - "src": "230:7:17", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 2952, - "name": "Ownable", - "nameLocations": [ - "525:7:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1719, - "src": "525:7:17" - }, - "id": 2953, - "nodeType": "InheritanceSpecifier", - "src": "525:7:17" - } - ], - "canonicalName": "ProxyAdmin", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 2951, - "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": 2992, - "linearizedBaseContracts": [ - 2992, - 1719, - 3417 - ], - "name": "ProxyAdmin", - "nameLocation": "511:10:17", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "documentation": { - "id": 2954, - "nodeType": "StructuredDocumentation", - "src": "539:643:17", - "text": " @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address,address)`\n and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called,\n while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string.\n If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third 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": 2957, - "mutability": "constant", - "name": "UPGRADE_INTERFACE_VERSION", - "nameLocation": "1210:25:17", - "nodeType": "VariableDeclaration", - "scope": 2992, - "src": "1187:58:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2955, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1187:6:17", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "hexValue": "352e302e30", - "id": 2956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1238:7:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2ade050ecfcf8ae20ae1d10a23573f9d7e0bad85e74a2cf8338a65401e64558c", - "typeString": "literal_string \"5.0.0\"" - }, - "value": "5.0.0" - }, - "visibility": "public" - }, - { - "body": { - "id": 2966, - "nodeType": "Block", - "src": "1385:2:17", - "statements": [] - }, - "documentation": { - "id": 2958, - "nodeType": "StructuredDocumentation", - "src": "1252:72:17", - "text": " @dev Sets the initial owner who can perform upgrades." - }, - "id": 2967, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 2963, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "1371:12:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 2964, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 2962, - "name": "Ownable", - "nameLocations": [ - "1363:7:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1719, - "src": "1363:7:17" - }, - "nodeType": "ModifierInvocation", - "src": "1363:21:17" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2960, - "mutability": "mutable", - "name": "initialOwner", - "nameLocation": "1349:12:17", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "1341:20:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1341:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1340:22:17" - }, - "returnParameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [], - "src": "1385:0:17" - }, - "scope": 2992, - "src": "1329:58:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2990, - "nodeType": "Block", - "src": "1883:79:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 2986, - "name": "implementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2973, - "src": "1934:14:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 2987, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2975, - "src": "1950: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": 2980, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "1893:5:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3014", - "typeString": "contract ITransparentUpgradeableProxy" - } - }, - "id": 2982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1899:16:17", - "memberName": "upgradeToAndCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3013, - "src": "1893:22:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory) payable external" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "expression": { - "id": 2983, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1923:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1927:5:17", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "1923:9:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "1893:40:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value", - "typeString": "function (address,bytes memory) payable external" - } - }, - "id": 2988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1893:62:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2989, - "nodeType": "ExpressionStatement", - "src": "1893:62:17" - } - ] - }, - "documentation": { - "id": 2968, - "nodeType": "StructuredDocumentation", - "src": "1393: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": 2991, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 2978, - "kind": "modifierInvocation", - "modifierName": { - "id": 2977, - "name": "onlyOwner", - "nameLocations": [ - "1873:9:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1630, - "src": "1873:9:17" - }, - "nodeType": "ModifierInvocation", - "src": "1873:9:17" - } - ], - "name": "upgradeAndCall", - "nameLocation": "1726:14:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2976, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2971, - "mutability": "mutable", - "name": "proxy", - "nameLocation": "1779:5:17", - "nodeType": "VariableDeclaration", - "scope": 2991, - "src": "1750:34:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3014", - "typeString": "contract ITransparentUpgradeableProxy" - }, - "typeName": { - "id": 2970, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2969, - "name": "ITransparentUpgradeableProxy", - "nameLocations": [ - "1750:28:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3014, - "src": "1750:28:17" - }, - "referencedDeclaration": 3014, - "src": "1750:28:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3014", - "typeString": "contract ITransparentUpgradeableProxy" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2973, - "mutability": "mutable", - "name": "implementation", - "nameLocation": "1802:14:17", - "nodeType": "VariableDeclaration", - "scope": 2991, - "src": "1794:22:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2972, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1794:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2975, - "mutability": "mutable", - "name": "data", - "nameLocation": "1839:4:17", - "nodeType": "VariableDeclaration", - "scope": 2991, - "src": "1826:17:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2974, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1826:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1740:109:17" - }, - "returnParameters": { - "id": 2979, - "nodeType": "ParameterList", - "parameters": [], - "src": "1883:0:17" - }, - "scope": 2992, - "src": "1717:245:17", - "stateMutability": "payable", - "virtual": true, - "visibility": "public" - } - ], - "scope": 2993, - "src": "502:1462:17", - "usedErrors": [ - 1585, - 1590 - ], - "usedEvents": [ - 1596 - ] - } - ], - "src": "116:1849:17" - }, - "id": 17 - }, - "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "exportedSymbols": { - "ERC1967Proxy": [ - 2604 - ], - "ERC1967Utils": [ - 2898 - ], - "IERC1967": [ - 2556 - ], - "ITransparentUpgradeableProxy": [ - 3014 - ], - "ProxyAdmin": [ - 2992 - ], - "TransparentUpgradeableProxy": [ - 3128 - ] - }, - "id": 3129, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2994, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "133:24:18" - }, - { - "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol", - "file": "../ERC1967/ERC1967Utils.sol", - "id": 2996, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3129, - "sourceUnit": 2899, - "src": "159:57:18", - "symbolAliases": [ - { - "foreign": { - "id": 2995, - "name": "ERC1967Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "167:12:18", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", - "file": "../ERC1967/ERC1967Proxy.sol", - "id": 2998, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3129, - "sourceUnit": 2605, - "src": "217:57:18", - "symbolAliases": [ - { - "foreign": { - "id": 2997, - "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": 3000, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3129, - "sourceUnit": 2557, - "src": "275:55:18", - "symbolAliases": [ - { - "foreign": { - "id": 2999, - "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": 3002, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3129, - "sourceUnit": 2993, - "src": "331:44:18", - "symbolAliases": [ - { - "foreign": { - "id": 3001, - "name": "ProxyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "339:10:18", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 3004, - "name": "IERC1967", - "nameLocations": [ - "865:8:18" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2556, - "src": "865:8:18" - }, - "id": 3005, - "nodeType": "InheritanceSpecifier", - "src": "865:8:18" - } - ], - "canonicalName": "ITransparentUpgradeableProxy", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 3003, - "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": 3014, - "linearizedBaseContracts": [ - 3014, - 2556 - ], - "name": "ITransparentUpgradeableProxy", - "nameLocation": "833:28:18", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 3006, - "nodeType": "StructuredDocumentation", - "src": "880:47:18", - "text": "@dev See {UUPSUpgradeable-upgradeToAndCall}" - }, - "functionSelector": "4f1ef286", - "id": 3013, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "upgradeToAndCall", - "nameLocation": "941:16:18", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3008, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "966:17:18", - "nodeType": "VariableDeclaration", - "scope": 3013, - "src": "958:25:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3007, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "958:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3010, - "mutability": "mutable", - "name": "data", - "nameLocation": "1000:4:18", - "nodeType": "VariableDeclaration", - "scope": 3013, - "src": "985:19:18", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3009, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "985:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "957:48:18" - }, - "returnParameters": { - "id": 3012, - "nodeType": "ParameterList", - "parameters": [], - "src": "1022:0:18" - }, - "scope": 3014, - "src": "932:91:18", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 3129, - "src": "823:202:18", - "usedErrors": [], - "usedEvents": [ - 2543, - 2550, - 2555 - ] - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 3016, - "name": "ERC1967Proxy", - "nameLocations": [ - "4354:12:18" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2604, - "src": "4354:12:18" - }, - "id": 3017, - "nodeType": "InheritanceSpecifier", - "src": "4354:12:18" - } - ], - "canonicalName": "TransparentUpgradeableProxy", - "contractDependencies": [ - 2992 - ], - "contractKind": "contract", - "documentation": { - "id": 3015, - "nodeType": "StructuredDocumentation", - "src": "1027:3286: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. Relying on the value of the admin slot\n is generally fine if the implementation is trusted.\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": 3128, - "linearizedBaseContracts": [ - 3128, - 2604, - 2934 - ], - "name": "TransparentUpgradeableProxy", - "nameLocation": "4323:27:18", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3019, - "mutability": "immutable", - "name": "_admin", - "nameLocation": "4734:6:18", - "nodeType": "VariableDeclaration", - "scope": 3128, - "src": "4708:32:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3018, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4708:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "private" - }, - { - "documentation": { - "id": 3020, - "nodeType": "StructuredDocumentation", - "src": "4747:102:18", - "text": " @dev The proxy caller is the current admin, and can't fallback to the proxy target." - }, - "errorSelector": "d2b576ec", - "id": 3022, - "name": "ProxyDeniedAdminAccess", - "nameLocation": "4860:22:18", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [], - "src": "4882:2:18" - }, - "src": "4854:31:18" - }, - { - "body": { - "id": 3054, - "nodeType": "Block", - "src": "5263:190:18", - "statements": [ - { - "expression": { - "id": 3045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3036, - "name": "_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3019, - "src": "5273:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "id": 3042, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5305:12:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5290:14:18", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ProxyAdmin_$2992_$", - "typeString": "function (address) returns (contract ProxyAdmin)" - }, - "typeName": { - "id": 3040, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3039, - "name": "ProxyAdmin", - "nameLocations": [ - "5294:10:18" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2992, - "src": "5294:10:18" - }, - "referencedDeclaration": 2992, - "src": "5294:10:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProxyAdmin_$2992", - "typeString": "contract ProxyAdmin" - } - } - }, - "id": 3043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5290:28:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProxyAdmin_$2992", - "typeString": "contract ProxyAdmin" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ProxyAdmin_$2992", - "typeString": "contract ProxyAdmin" - } - ], - "id": 3038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5282:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3037, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5282:7:18", - "typeDescriptions": {} - } - }, - "id": 3044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5282:37:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5273:46:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3046, - "nodeType": "ExpressionStatement", - "src": "5273:46:18" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3050, - "name": "_proxyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "5432:11:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 3051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5432:13:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 3047, - "name": "ERC1967Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "5407:12:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2898_$", - "typeString": "type(library ERC1967Utils)" - } - }, - "id": 3049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5420:11:18", - "memberName": "changeAdmin", - "nodeType": "MemberAccess", - "referencedDeclaration": 2780, - "src": "5407:24:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5407:39:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3053, - "nodeType": "ExpressionStatement", - "src": "5407:39:18" - } - ] - }, - "documentation": { - "id": 3023, - "nodeType": "StructuredDocumentation", - "src": "4891: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": 3055, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 3032, - "name": "_logic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3025, - "src": "5248:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3033, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3029, - "src": "5256:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 3034, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 3031, - "name": "ERC1967Proxy", - "nameLocations": [ - "5235:12:18" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2604, - "src": "5235:12:18" - }, - "nodeType": "ModifierInvocation", - "src": "5235:27:18" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3030, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3025, - "mutability": "mutable", - "name": "_logic", - "nameLocation": "5177:6:18", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "5169:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3024, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5169:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3027, - "mutability": "mutable", - "name": "initialOwner", - "nameLocation": "5193:12:18", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "5185:20:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3026, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5185:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3029, - "mutability": "mutable", - "name": "_data", - "nameLocation": "5220:5:18", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "5207:18:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3028, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5207:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5168:58:18" - }, - "returnParameters": { - "id": 3035, - "nodeType": "ParameterList", - "parameters": [], - "src": "5263:0:18" - }, - "scope": 3128, - "src": "5157:296:18", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3063, - "nodeType": "Block", - "src": "5583:30:18", - "statements": [ - { - "expression": { - "id": 3061, - "name": "_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3019, - "src": "5600:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3060, - "id": 3062, - "nodeType": "Return", - "src": "5593:13:18" - } - ] - }, - "documentation": { - "id": 3056, - "nodeType": "StructuredDocumentation", - "src": "5459:56:18", - "text": " @dev Returns the admin of this proxy." - }, - "id": 3064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_proxyAdmin", - "nameLocation": "5529:11:18", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3057, - "nodeType": "ParameterList", - "parameters": [], - "src": "5540:2:18" - }, - "returnParameters": { - "id": 3060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3059, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3064, - "src": "5574:7:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5574:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5573:9:18" - }, - "scope": 3128, - "src": "5520:93:18", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "baseFunctions": [ - 2925 - ], - "body": { - "id": 3097, - "nodeType": "Block", - "src": "5802:322:18", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3069, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5816:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5820:6:18", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5816:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3071, - "name": "_proxyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "5830:11:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 3072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5830:13:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5816:27:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3095, - "nodeType": "Block", - "src": "6076:42:18", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 3090, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -25, - "src": "6090:5:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_TransparentUpgradeableProxy_$3128_$", - "typeString": "type(contract super TransparentUpgradeableProxy)" - } - }, - "id": 3092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6096:9:18", - "memberName": "_fallback", - "nodeType": "MemberAccess", - "referencedDeclaration": 2925, - "src": "6090:15: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": "6090:17:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3094, - "nodeType": "ExpressionStatement", - "src": "6090:17:18" - } - ] - }, - "id": 3096, - "nodeType": "IfStatement", - "src": "5812:306:18", - "trueBody": { - "id": 3089, - "nodeType": "Block", - "src": "5845:225:18", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3074, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5863:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5867:3:18", - "memberName": "sig", - "nodeType": "MemberAccess", - "src": "5863:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "expression": { - "id": 3076, - "name": "ITransparentUpgradeableProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3014, - "src": "5874:28:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITransparentUpgradeableProxy_$3014_$", - "typeString": "type(contract ITransparentUpgradeableProxy)" - } - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5903:16:18", - "memberName": "upgradeToAndCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3013, - "src": "5874:45:18", - "typeDescriptions": { - "typeIdentifier": "t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$__$", - "typeString": "function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes calldata) payable" - } - }, - "id": 3078, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5920:8:18", - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "5874:54:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "5863:65:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3087, - "nodeType": "Block", - "src": "6000:60:18", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3084, - "name": "_dispatchUpgradeToAndCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3127, - "src": "6018:25:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6018:27:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3086, - "nodeType": "ExpressionStatement", - "src": "6018:27:18" - } - ] - }, - "id": 3088, - "nodeType": "IfStatement", - "src": "5859:201:18", - "trueBody": { - "id": 3083, - "nodeType": "Block", - "src": "5930:64:18", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3080, - "name": "ProxyDeniedAdminAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3022, - "src": "5955:22:18", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5955:24:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3082, - "nodeType": "RevertStatement", - "src": "5948:31:18" - } - ] - } - } - ] - } - } - ] - }, - "documentation": { - "id": 3065, - "nodeType": "StructuredDocumentation", - "src": "5619:131:18", - "text": " @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior." - }, - "id": 3098, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_fallback", - "nameLocation": "5764:9:18", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3067, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "5793:8:18" - }, - "parameters": { - "id": 3066, - "nodeType": "ParameterList", - "parameters": [], - "src": "5773:2:18" - }, - "returnParameters": { - "id": 3068, - "nodeType": "ParameterList", - "parameters": [], - "src": "5802:0:18" - }, - "scope": 3128, - "src": "5755:369:18", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3126, - "nodeType": "Block", - "src": "6371:172:18", - "statements": [ - { - "assignments": [ - 3103, - 3105 - ], - "declarations": [ - { - "constant": false, - "id": 3103, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "6390:17:18", - "nodeType": "VariableDeclaration", - "scope": 3126, - "src": "6382:25:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6382:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3105, - "mutability": "mutable", - "name": "data", - "nameLocation": "6422:4:18", - "nodeType": "VariableDeclaration", - "scope": 3126, - "src": "6409:17:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3104, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6409:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 3118, - "initialValue": { - "arguments": [ - { - "baseExpression": { - "expression": { - "id": 3108, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6441:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6445:4:18", - "memberName": "data", - "nodeType": "MemberAccess", - "src": "6441:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 3111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexRangeAccess", - "src": "6441:12:18", - "startExpression": { - "hexValue": "34", - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6450: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": 3113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6456:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6456:7:18", - "typeDescriptions": {} - } - }, - { - "id": 3115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6465:5:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 3114, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6465:5:18", - "typeDescriptions": {} - } - } - ], - "id": 3116, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6455: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": 3106, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "6430:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6434:6:18", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "6430:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6430:42:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$", - "typeString": "tuple(address payable,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6381:91:18" - }, - { - "expression": { - "arguments": [ - { - "id": 3122, - "name": "newImplementation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3103, - "src": "6512:17:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3123, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3105, - "src": "6531: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": 3119, - "name": "ERC1967Utils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "6482:12:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$2898_$", - "typeString": "type(library ERC1967Utils)" - } - }, - "id": 3121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6495:16:18", - "memberName": "upgradeToAndCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 2713, - "src": "6482:29:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 3124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6482:54:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3125, - "nodeType": "ExpressionStatement", - "src": "6482:54:18" - } - ] - }, - "documentation": { - "id": 3099, - "nodeType": "StructuredDocumentation", - "src": "6130: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": 3127, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_dispatchUpgradeToAndCall", - "nameLocation": "6335:25:18", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3100, - "nodeType": "ParameterList", - "parameters": [], - "src": "6360:2:18" - }, - "returnParameters": { - "id": 3101, - "nodeType": "ParameterList", - "parameters": [], - "src": "6371:0:18" - }, - "scope": 3128, - "src": "6326:217:18", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - } - ], - "scope": 3129, - "src": "4314:2231:18", - "usedErrors": [ - 2624, - 2629, - 2637, - 3022, - 3138, - 3430 - ], - "usedEvents": [ - 2543, - 2550 - ] - } - ], - "src": "133:6413:18" - }, - "id": 18 - }, - "@openzeppelin/contracts/utils/Address.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Address.sol", - "exportedSymbols": { - "Address": [ - 3387 - ], - "Errors": [ - 3439 - ] - }, - "id": 3388, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3130, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "101:24:19" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", - "file": "./Errors.sol", - "id": 3132, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3388, - "sourceUnit": 3440, - "src": "127:36:19", - "symbolAliases": [ - { - "foreign": { - "id": 3131, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "135:6:19", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Address", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3133, - "nodeType": "StructuredDocumentation", - "src": "165:67:19", - "text": " @dev Collection of functions related to the address type" - }, - "fullyImplemented": true, - "id": 3387, - "linearizedBaseContracts": [ - 3387 - ], - "name": "Address", - "nameLocation": "241:7:19", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 3134, - "nodeType": "StructuredDocumentation", - "src": "255:75:19", - "text": " @dev There's no code at `target` (it is not a contract)." - }, - "errorSelector": "9996b315", - "id": 3138, - "name": "AddressEmptyCode", - "nameLocation": "341:16:19", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3136, - "mutability": "mutable", - "name": "target", - "nameLocation": "366:6:19", - "nodeType": "VariableDeclaration", - "scope": 3138, - "src": "358:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "358:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "357:16:19" - }, - "src": "335:39:19" - }, - { - "body": { - "id": 3184, - "nodeType": "Block", - "src": "1361:278:19", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 3148, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1383:4:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - ], - "id": 3147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1375:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1375:7:19", - "typeDescriptions": {} - } - }, - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1375:13:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1389:7:19", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "1375:21:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3151, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "1399:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1375:30:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3165, - "nodeType": "IfStatement", - "src": "1371:125:19", - "trueBody": { - "id": 3164, - "nodeType": "Block", - "src": "1407:89:19", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 3158, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1463:4:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - ], - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1455:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1455:7:19", - "typeDescriptions": {} - } - }, - "id": 3159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1455:13:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1469:7:19", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "1455:21:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 3161, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "1478:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 3153, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "1428:6:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Errors_$3439_$", - "typeString": "type(library Errors)" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1435:19:19", - "memberName": "InsufficientBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 3427, - "src": "1428:26:19", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1428:57:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3163, - "nodeType": "RevertStatement", - "src": "1421:64:19" - } - ] - } - }, - { - "assignments": [ - 3167, - null - ], - "declarations": [ - { - "constant": false, - "id": 3167, - "mutability": "mutable", - "name": "success", - "nameLocation": "1512:7:19", - "nodeType": "VariableDeclaration", - "scope": 3184, - "src": "1507:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3166, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1507:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - null - ], - "id": 3174, - "initialValue": { - "arguments": [ - { - "hexValue": "", - "id": 3172, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1555: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": 3168, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "1525:9:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1535:4:19", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "1525: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": 3171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 3170, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "1547:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "1525: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": 3173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1525:33:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1506:52:19" - }, - { - "condition": { - "id": 3176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1572:8:19", - "subExpression": { - "id": 3175, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "1573:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3183, - "nodeType": "IfStatement", - "src": "1568:65:19", - "trueBody": { - "id": 3182, - "nodeType": "Block", - "src": "1582:51:19", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 3177, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "1603:6:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Errors_$3439_$", - "typeString": "type(library Errors)" - } - }, - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1610:10:19", - "memberName": "FailedCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3430, - "src": "1603:17:19", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1603:19:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3181, - "nodeType": "RevertStatement", - "src": "1596:26:19" - } - ] - } - } - ] - }, - "documentation": { - "id": 3139, - "nodeType": "StructuredDocumentation", - "src": "380: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": 3185, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sendValue", - "nameLocation": "1299:9:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3141, - "mutability": "mutable", - "name": "recipient", - "nameLocation": "1325:9:19", - "nodeType": "VariableDeclaration", - "scope": 3185, - "src": "1309:25:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1309:15:19", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3143, - "mutability": "mutable", - "name": "amount", - "nameLocation": "1344:6:19", - "nodeType": "VariableDeclaration", - "scope": 3185, - "src": "1336:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3142, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1336:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1308:43:19" - }, - "returnParameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [], - "src": "1361:0:19" - }, - "scope": 3387, - "src": "1290:349:19", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3201, - "nodeType": "Block", - "src": "2573:62:19", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 3196, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3188, - "src": "2612:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3197, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3190, - "src": "2620:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "30", - "id": 3198, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2626: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": 3195, - "name": "functionCallWithValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3252, - "src": "2590: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": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2590:38:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3194, - "id": 3200, - "nodeType": "Return", - "src": "2583:45:19" - } - ] - }, - "documentation": { - "id": 3186, - "nodeType": "StructuredDocumentation", - "src": "1645:834: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 {Errors.FailedCall} 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": 3202, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCall", - "nameLocation": "2493:12:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3188, - "mutability": "mutable", - "name": "target", - "nameLocation": "2514:6:19", - "nodeType": "VariableDeclaration", - "scope": 3202, - "src": "2506:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3187, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2506:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3190, - "mutability": "mutable", - "name": "data", - "nameLocation": "2535:4:19", - "nodeType": "VariableDeclaration", - "scope": 3202, - "src": "2522:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3189, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2522:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2505:35:19" - }, - "returnParameters": { - "id": 3194, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3193, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3202, - "src": "2559:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3192, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2559:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2558:14:19" - }, - "scope": 3387, - "src": "2484:151:19", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3251, - "nodeType": "Block", - "src": "3072:294:19", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 3216, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3094:4:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - ], - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3086:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3086:7:19", - "typeDescriptions": {} - } - }, - "id": 3217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3086:13:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3100:7:19", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "3086:21:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3219, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3209, - "src": "3110:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3086:29:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3233, - "nodeType": "IfStatement", - "src": "3082:123:19", - "trueBody": { - "id": 3232, - "nodeType": "Block", - "src": "3117:88:19", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 3226, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3173:4:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$3387", - "typeString": "library Address" - } - ], - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3165:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3224, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3165:7:19", - "typeDescriptions": {} - } - }, - "id": 3227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3165:13:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3179:7:19", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "3165:21:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 3229, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3209, - "src": "3188:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 3221, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3138:6:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Errors_$3439_$", - "typeString": "type(library Errors)" - } - }, - "id": 3223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3145:19:19", - "memberName": "InsufficientBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 3427, - "src": "3138:26:19", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 3230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3138:56:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3231, - "nodeType": "RevertStatement", - "src": "3131:63:19" - } - ] - } - }, - { - "assignments": [ - 3235, - 3237 - ], - "declarations": [ - { - "constant": false, - "id": 3235, - "mutability": "mutable", - "name": "success", - "nameLocation": "3220:7:19", - "nodeType": "VariableDeclaration", - "scope": 3251, - "src": "3215:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3234, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3215:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3237, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "3242:10:19", - "nodeType": "VariableDeclaration", - "scope": 3251, - "src": "3229:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3236, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3229:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 3244, - "initialValue": { - "arguments": [ - { - "id": 3242, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "3282: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": 3238, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "3256:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3263:4:19", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "3256: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": 3241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 3240, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3209, - "src": "3275:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "3256: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": 3243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3256:31:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3214:73:19" - }, - { - "expression": { - "arguments": [ - { - "id": 3246, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "3331:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3247, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3235, - "src": "3339:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 3248, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3237, - "src": "3348: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": 3245, - "name": "verifyCallResultFromTarget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3344, - "src": "3304: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": 3249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3304:55:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3213, - "id": 3250, - "nodeType": "Return", - "src": "3297:62:19" - } - ] - }, - "documentation": { - "id": 3203, - "nodeType": "StructuredDocumentation", - "src": "2641: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": 3252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCallWithValue", - "nameLocation": "2968:21:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3210, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3205, - "mutability": "mutable", - "name": "target", - "nameLocation": "2998:6:19", - "nodeType": "VariableDeclaration", - "scope": 3252, - "src": "2990:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2990:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3207, - "mutability": "mutable", - "name": "data", - "nameLocation": "3019:4:19", - "nodeType": "VariableDeclaration", - "scope": 3252, - "src": "3006:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3206, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3006:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3209, - "mutability": "mutable", - "name": "value", - "nameLocation": "3033:5:19", - "nodeType": "VariableDeclaration", - "scope": 3252, - "src": "3025:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3208, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3025:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2989:50:19" - }, - "returnParameters": { - "id": 3213, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3212, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3252, - "src": "3058:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3211, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3058:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3057:14:19" - }, - "scope": 3387, - "src": "2959:407:19", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3277, - "nodeType": "Block", - "src": "3605:154:19", - "statements": [ - { - "assignments": [ - 3263, - 3265 - ], - "declarations": [ - { - "constant": false, - "id": 3263, - "mutability": "mutable", - "name": "success", - "nameLocation": "3621:7:19", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "3616:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3262, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3616:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3265, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "3643:10:19", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "3630:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3264, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3630:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 3270, - "initialValue": { - "arguments": [ - { - "id": 3268, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3257, - "src": "3675:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 3266, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "3657:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3664:10:19", - "memberName": "staticcall", - "nodeType": "MemberAccess", - "src": "3657: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": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3657:23:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3615:65:19" - }, - { - "expression": { - "arguments": [ - { - "id": 3272, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "3724:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3273, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3263, - "src": "3732:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 3274, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "3741: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": 3271, - "name": "verifyCallResultFromTarget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3344, - "src": "3697: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": 3275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3697:55:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3261, - "id": 3276, - "nodeType": "Return", - "src": "3690:62:19" - } - ] - }, - "documentation": { - "id": 3253, - "nodeType": "StructuredDocumentation", - "src": "3372:128:19", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call." - }, - "id": 3278, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionStaticCall", - "nameLocation": "3514:18:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3255, - "mutability": "mutable", - "name": "target", - "nameLocation": "3541:6:19", - "nodeType": "VariableDeclaration", - "scope": 3278, - "src": "3533:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3533:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3257, - "mutability": "mutable", - "name": "data", - "nameLocation": "3562:4:19", - "nodeType": "VariableDeclaration", - "scope": 3278, - "src": "3549:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3256, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3549:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3532:35:19" - }, - "returnParameters": { - "id": 3261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3278, - "src": "3591:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3259, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3591:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3590:14:19" - }, - "scope": 3387, - "src": "3505:254:19", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3303, - "nodeType": "Block", - "src": "3997:156:19", - "statements": [ - { - "assignments": [ - 3289, - 3291 - ], - "declarations": [ - { - "constant": false, - "id": 3289, - "mutability": "mutable", - "name": "success", - "nameLocation": "4013:7:19", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "4008:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3288, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4008:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3291, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "4035:10:19", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "4022:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3290, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4022:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 3296, - "initialValue": { - "arguments": [ - { - "id": 3294, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3283, - "src": "4069:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 3292, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "4049:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4056:12:19", - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "src": "4049: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": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4049:25:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4007:67:19" - }, - { - "expression": { - "arguments": [ - { - "id": 3298, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "4118:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3299, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "4126:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 3300, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3291, - "src": "4135: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": 3297, - "name": "verifyCallResultFromTarget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3344, - "src": "4091: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": 3301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4091:55:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3287, - "id": 3302, - "nodeType": "Return", - "src": "4084:62:19" - } - ] - }, - "documentation": { - "id": 3279, - "nodeType": "StructuredDocumentation", - "src": "3765:130:19", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call." - }, - "id": 3304, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionDelegateCall", - "nameLocation": "3909:20:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3284, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3281, - "mutability": "mutable", - "name": "target", - "nameLocation": "3938:6:19", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "3930:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3930:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3283, - "mutability": "mutable", - "name": "data", - "nameLocation": "3959:4:19", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "3946:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3282, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3946:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3929:35:19" - }, - "returnParameters": { - "id": 3287, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3286, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "3983:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3285, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3983:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3982:14:19" - }, - "scope": 3387, - "src": "3900:253:19", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3343, - "nodeType": "Block", - "src": "4579:424:19", - "statements": [ - { - "condition": { - "id": 3317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4593:8:19", - "subExpression": { - "id": 3316, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "4594:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3341, - "nodeType": "Block", - "src": "4653:344:19", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3323, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "4841:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4852:6:19", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4841:17:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4862:1:19", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4841:22:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 3327, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "4867:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4874:4:19", - "memberName": "code", - "nodeType": "MemberAccess", - "src": "4867:11:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4879:6:19", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4867:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4889:1:19", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4867:23:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4841:49:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3338, - "nodeType": "IfStatement", - "src": "4837:119:19", - "trueBody": { - "id": 3337, - "nodeType": "Block", - "src": "4892:64:19", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 3334, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "4934:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3333, - "name": "AddressEmptyCode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3138, - "src": "4917:16:19", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 3335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4917:24:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3336, - "nodeType": "RevertStatement", - "src": "4910:31:19" - } - ] - } - }, - { - "expression": { - "id": 3339, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "4976:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3315, - "id": 3340, - "nodeType": "Return", - "src": "4969:17:19" - } - ] - }, - "id": 3342, - "nodeType": "IfStatement", - "src": "4589:408:19", - "trueBody": { - "id": 3322, - "nodeType": "Block", - "src": "4603:44:19", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 3319, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "4625:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3318, - "name": "_revert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3386, - "src": "4617:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory) pure" - } - }, - "id": 3320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4617:19:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3321, - "nodeType": "ExpressionStatement", - "src": "4617:19:19" - } - ] - } - } - ] - }, - "documentation": { - "id": 3305, - "nodeType": "StructuredDocumentation", - "src": "4159:257: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 {Errors.FailedCall}) in case\n of an unsuccessful call." - }, - "id": 3344, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifyCallResultFromTarget", - "nameLocation": "4430:26:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3312, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3307, - "mutability": "mutable", - "name": "target", - "nameLocation": "4474:6:19", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "4466:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3306, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4466:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3309, - "mutability": "mutable", - "name": "success", - "nameLocation": "4495:7:19", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "4490:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3308, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4490:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3311, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "4525:10:19", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "4512:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3310, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4512:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4456:85:19" - }, - "returnParameters": { - "id": 3315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3314, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "4565:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3313, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4565:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4564:14:19" - }, - "scope": 3387, - "src": "4421:582:19", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3365, - "nodeType": "Block", - "src": "5307:122:19", - "statements": [ - { - "condition": { - "id": 3355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5321:8:19", - "subExpression": { - "id": 3354, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "5322:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3363, - "nodeType": "Block", - "src": "5381:42:19", - "statements": [ - { - "expression": { - "id": 3361, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3349, - "src": "5402:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3353, - "id": 3362, - "nodeType": "Return", - "src": "5395:17:19" - } - ] - }, - "id": 3364, - "nodeType": "IfStatement", - "src": "5317:106:19", - "trueBody": { - "id": 3360, - "nodeType": "Block", - "src": "5331:44:19", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 3357, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3349, - "src": "5353:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3356, - "name": "_revert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3386, - "src": "5345:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory) pure" - } - }, - "id": 3358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5345:19:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3359, - "nodeType": "ExpressionStatement", - "src": "5345:19:19" - } - ] - } - } - ] - }, - "documentation": { - "id": 3345, - "nodeType": "StructuredDocumentation", - "src": "5009:191: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 {Errors.FailedCall} error." - }, - "id": 3366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifyCallResult", - "nameLocation": "5214:16:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3350, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3347, - "mutability": "mutable", - "name": "success", - "nameLocation": "5236:7:19", - "nodeType": "VariableDeclaration", - "scope": 3366, - "src": "5231:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3346, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5231:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3349, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "5258:10:19", - "nodeType": "VariableDeclaration", - "scope": 3366, - "src": "5245:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3348, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5245:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5230:39:19" - }, - "returnParameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3352, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3366, - "src": "5293:12:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3351, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5293:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5292:14:19" - }, - "scope": 3387, - "src": "5205:224:19", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3385, - "nodeType": "Block", - "src": "5598:432:19", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3372, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3369, - "src": "5674:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5685:6:19", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5674:17:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 3374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5694:1:19", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5674:21:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3383, - "nodeType": "Block", - "src": "5973:51:19", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 3378, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "5994:6:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Errors_$3439_$", - "typeString": "type(library Errors)" - } - }, - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6001:10:19", - "memberName": "FailedCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 3430, - "src": "5994:17:19", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5994:19:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3382, - "nodeType": "RevertStatement", - "src": "5987:26:19" - } - ] - }, - "id": 3384, - "nodeType": "IfStatement", - "src": "5670:354:19", - "trueBody": { - "id": 3377, - "nodeType": "Block", - "src": "5697:270:19", - "statements": [ - { - "AST": { - "nativeSrc": "5824:133:19", - "nodeType": "YulBlock", - "src": "5824:133:19", - "statements": [ - { - "nativeSrc": "5842:40:19", - "nodeType": "YulVariableDeclaration", - "src": "5842:40:19", - "value": { - "arguments": [ - { - "name": "returndata", - "nativeSrc": "5871:10:19", - "nodeType": "YulIdentifier", - "src": "5871:10:19" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5865:5:19", - "nodeType": "YulIdentifier", - "src": "5865:5:19" - }, - "nativeSrc": "5865:17:19", - "nodeType": "YulFunctionCall", - "src": "5865:17:19" - }, - "variables": [ - { - "name": "returndata_size", - "nativeSrc": "5846:15:19", - "nodeType": "YulTypedName", - "src": "5846:15:19", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5910:2:19", - "nodeType": "YulLiteral", - "src": "5910:2:19", - "type": "", - "value": "32" - }, - { - "name": "returndata", - "nativeSrc": "5914:10:19", - "nodeType": "YulIdentifier", - "src": "5914:10:19" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5906:3:19", - "nodeType": "YulIdentifier", - "src": "5906:3:19" - }, - "nativeSrc": "5906:19:19", - "nodeType": "YulFunctionCall", - "src": "5906:19:19" - }, - { - "name": "returndata_size", - "nativeSrc": "5927:15:19", - "nodeType": "YulIdentifier", - "src": "5927:15:19" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5899:6:19", - "nodeType": "YulIdentifier", - "src": "5899:6:19" - }, - "nativeSrc": "5899:44:19", - "nodeType": "YulFunctionCall", - "src": "5899:44:19" - }, - "nativeSrc": "5899:44:19", - "nodeType": "YulExpressionStatement", - "src": "5899:44:19" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3369, - "isOffset": false, - "isSlot": false, - "src": "5871:10:19", - "valueSize": 1 - }, - { - "declaration": 3369, - "isOffset": false, - "isSlot": false, - "src": "5914:10:19", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3376, - "nodeType": "InlineAssembly", - "src": "5799:158:19" - } - ] - } - } - ] - }, - "documentation": { - "id": 3367, - "nodeType": "StructuredDocumentation", - "src": "5435:103:19", - "text": " @dev Reverts with returndata if present. Otherwise reverts with {Errors.FailedCall}." - }, - "id": 3386, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_revert", - "nameLocation": "5552:7:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3370, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3369, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "5573:10:19", - "nodeType": "VariableDeclaration", - "scope": 3386, - "src": "5560:23:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3368, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5560:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5559:25:19" - }, - "returnParameters": { - "id": 3371, - "nodeType": "ParameterList", - "parameters": [], - "src": "5598:0:19" - }, - "scope": 3387, - "src": "5543:487:19", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "scope": 3388, - "src": "233:5799:19", - "usedErrors": [ - 3138 - ], - "usedEvents": [] - } - ], - "src": "101:5932:19" - }, - "id": 19 - }, - "@openzeppelin/contracts/utils/Context.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "exportedSymbols": { - "Context": [ - 3417 - ] - }, - "id": 3418, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3389, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "101:24:20" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Context", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 3390, - "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": 3417, - "linearizedBaseContracts": [ - 3417 - ], - "name": "Context", - "nameLocation": "642:7:20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3398, - "nodeType": "Block", - "src": "718:34:20", - "statements": [ - { - "expression": { - "expression": { - "id": 3395, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "735:3:20", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3396, - "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": 3394, - "id": 3397, - "nodeType": "Return", - "src": "728:17:20" - } - ] - }, - "id": 3399, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgSender", - "nameLocation": "665:10:20", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3391, - "nodeType": "ParameterList", - "parameters": [], - "src": "675:2:20" - }, - "returnParameters": { - "id": 3394, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3393, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3399, - "src": "709:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3392, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "709:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "708:9:20" - }, - "scope": 3417, - "src": "656:96:20", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3407, - "nodeType": "Block", - "src": "825:32:20", - "statements": [ - { - "expression": { - "expression": { - "id": 3404, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "842:3:20", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3405, - "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": 3403, - "id": 3406, - "nodeType": "Return", - "src": "835:15:20" - } - ] - }, - "id": 3408, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgData", - "nameLocation": "767:8:20", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [], - "src": "775:2:20" - }, - "returnParameters": { - "id": 3403, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3402, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "809:14:20", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3401, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "809:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "808:16:20" - }, - "scope": 3417, - "src": "758:99:20", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3415, - "nodeType": "Block", - "src": "935:25:20", - "statements": [ - { - "expression": { - "hexValue": "30", - "id": 3413, - "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": 3412, - "id": 3414, - "nodeType": "Return", - "src": "945:8:20" - } - ] - }, - "id": 3416, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_contextSuffixLength", - "nameLocation": "872:20:20", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3409, - "nodeType": "ParameterList", - "parameters": [], - "src": "892:2:20" - }, - "returnParameters": { - "id": 3412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3411, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "926:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "926:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "925:9:20" - }, - "scope": 3417, - "src": "863:97:20", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 3418, - "src": "624:338:20", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "101:862:20" - }, - "id": 20 - }, - "@openzeppelin/contracts/utils/Errors.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", - "exportedSymbols": { - "Errors": [ - 3439 - ] - }, - "id": 3440, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3419, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "100:24:21" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Errors", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3420, - "nodeType": "StructuredDocumentation", - "src": "126:284:21", - "text": " @dev Collection of common custom errors used in multiple contracts\n IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.\n It is recommended to avoid relying on the error API for critical functionality.\n _Available since v5.1._" - }, - "fullyImplemented": true, - "id": 3439, - "linearizedBaseContracts": [ - 3439 - ], - "name": "Errors", - "nameLocation": "419:6:21", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 3421, - "nodeType": "StructuredDocumentation", - "src": "432:94:21", - "text": " @dev The ETH balance of the account is not enough to perform the operation." - }, - "errorSelector": "cf479181", - "id": 3427, - "name": "InsufficientBalance", - "nameLocation": "537:19:21", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3423, - "mutability": "mutable", - "name": "balance", - "nameLocation": "565:7:21", - "nodeType": "VariableDeclaration", - "scope": 3427, - "src": "557:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3422, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "557:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3425, - "mutability": "mutable", - "name": "needed", - "nameLocation": "582:6:21", - "nodeType": "VariableDeclaration", - "scope": 3427, - "src": "574:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3424, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "574:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "556:33:21" - }, - "src": "531:59:21" - }, - { - "documentation": { - "id": 3428, - "nodeType": "StructuredDocumentation", - "src": "596:89:21", - "text": " @dev A call to an address target failed. The target may have reverted." - }, - "errorSelector": "d6bda275", - "id": 3430, - "name": "FailedCall", - "nameLocation": "696:10:21", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3429, - "nodeType": "ParameterList", - "parameters": [], - "src": "706:2:21" - }, - "src": "690:19:21" - }, - { - "documentation": { - "id": 3431, - "nodeType": "StructuredDocumentation", - "src": "715:46:21", - "text": " @dev The deployment failed." - }, - "errorSelector": "b06ebf3d", - "id": 3433, - "name": "FailedDeployment", - "nameLocation": "772:16:21", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3432, - "nodeType": "ParameterList", - "parameters": [], - "src": "788:2:21" - }, - "src": "766:25:21" - }, - { - "documentation": { - "id": 3434, - "nodeType": "StructuredDocumentation", - "src": "797:58:21", - "text": " @dev A necessary precompile is missing." - }, - "errorSelector": "42b01bce", - "id": 3438, - "name": "MissingPrecompile", - "nameLocation": "866:17:21", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3437, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3436, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3438, - "src": "884:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3435, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "884:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "883:9:21" - }, - "src": "860:33:21" - } - ], - "scope": 3440, - "src": "411:484:21", - "usedErrors": [ - 3427, - 3430, - 3433, - 3438 - ], - "usedEvents": [] - } - ], - "src": "100:796:21" - }, - "id": 21 - }, - "@openzeppelin/contracts/utils/Panic.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", - "exportedSymbols": { - "Panic": [ - 3491 - ] - }, - "id": 3492, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3441, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "99:24:22" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Panic", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3442, - "nodeType": "StructuredDocumentation", - "src": "125:489:22", - "text": " @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n using Panic for uint256;\n // Use any of the declared internal constants\n function foo() { Panic.GENERIC.panic(); }\n // Alternatively\n function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n _Available since v5.1._" - }, - "fullyImplemented": true, - "id": 3491, - "linearizedBaseContracts": [ - 3491 - ], - "name": "Panic", - "nameLocation": "665:5:22", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "documentation": { - "id": 3443, - "nodeType": "StructuredDocumentation", - "src": "677:36:22", - "text": "@dev generic / unspecified error" - }, - "id": 3446, - "mutability": "constant", - "name": "GENERIC", - "nameLocation": "744:7:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "718:40:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3444, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "718:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783030", - "id": 3445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "754:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x00" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3447, - "nodeType": "StructuredDocumentation", - "src": "764:37:22", - "text": "@dev used by the assert() builtin" - }, - "id": 3450, - "mutability": "constant", - "name": "ASSERT", - "nameLocation": "832:6:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "806:39:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3448, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "806:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783031", - "id": 3449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "841:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x01" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3451, - "nodeType": "StructuredDocumentation", - "src": "851:41:22", - "text": "@dev arithmetic underflow or overflow" - }, - "id": 3454, - "mutability": "constant", - "name": "UNDER_OVERFLOW", - "nameLocation": "923:14:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "897:47:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "897:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783131", - "id": 3453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "940:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_17_by_1", - "typeString": "int_const 17" - }, - "value": "0x11" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3455, - "nodeType": "StructuredDocumentation", - "src": "950:35:22", - "text": "@dev division or modulo by zero" - }, - "id": 3458, - "mutability": "constant", - "name": "DIVISION_BY_ZERO", - "nameLocation": "1016:16:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "990:49:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "990:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783132", - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1035:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "0x12" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3459, - "nodeType": "StructuredDocumentation", - "src": "1045:30:22", - "text": "@dev enum conversion error" - }, - "id": 3462, - "mutability": "constant", - "name": "ENUM_CONVERSION_ERROR", - "nameLocation": "1106:21:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1080:54:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3460, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1080:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783231", - "id": 3461, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1130:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_33_by_1", - "typeString": "int_const 33" - }, - "value": "0x21" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3463, - "nodeType": "StructuredDocumentation", - "src": "1140:36:22", - "text": "@dev invalid encoding in storage" - }, - "id": 3466, - "mutability": "constant", - "name": "STORAGE_ENCODING_ERROR", - "nameLocation": "1207:22:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1181:55:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1181:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783232", - "id": 3465, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1232:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_34_by_1", - "typeString": "int_const 34" - }, - "value": "0x22" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3467, - "nodeType": "StructuredDocumentation", - "src": "1242:24:22", - "text": "@dev empty array pop" - }, - "id": 3470, - "mutability": "constant", - "name": "EMPTY_ARRAY_POP", - "nameLocation": "1297:15:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1271:48:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3468, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1271:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783331", - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1315:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_49_by_1", - "typeString": "int_const 49" - }, - "value": "0x31" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3471, - "nodeType": "StructuredDocumentation", - "src": "1325:35:22", - "text": "@dev array out of bounds access" - }, - "id": 3474, - "mutability": "constant", - "name": "ARRAY_OUT_OF_BOUNDS", - "nameLocation": "1391:19:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1365:52:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3472, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1365:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783332", - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1413:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "0x32" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3475, - "nodeType": "StructuredDocumentation", - "src": "1423:65:22", - "text": "@dev resource error (too large allocation or too large array)" - }, - "id": 3478, - "mutability": "constant", - "name": "RESOURCE_ERROR", - "nameLocation": "1519:14:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1493:47:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3476, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1493:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783431", - "id": 3477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1536:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "0x41" - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3479, - "nodeType": "StructuredDocumentation", - "src": "1546:42:22", - "text": "@dev calling invalid internal function" - }, - "id": 3482, - "mutability": "constant", - "name": "INVALID_INTERNAL_FUNCTION", - "nameLocation": "1619:25:22", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "1593:58:22", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1593:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30783531", - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1647:4:22", - "typeDescriptions": { - "typeIdentifier": "t_rational_81_by_1", - "typeString": "int_const 81" - }, - "value": "0x51" - }, - "visibility": "internal" - }, - { - "body": { - "id": 3489, - "nodeType": "Block", - "src": "1819:151:22", - "statements": [ - { - "AST": { - "nativeSrc": "1854:110:22", - "nodeType": "YulBlock", - "src": "1854:110:22", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1875:4:22", - "nodeType": "YulLiteral", - "src": "1875:4:22", - "type": "", - "value": "0x00" - }, - { - "kind": "number", - "nativeSrc": "1881:10:22", - "nodeType": "YulLiteral", - "src": "1881:10:22", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1868:6:22", - "nodeType": "YulIdentifier", - "src": "1868:6:22" - }, - "nativeSrc": "1868:24:22", - "nodeType": "YulFunctionCall", - "src": "1868:24:22" - }, - "nativeSrc": "1868:24:22", - "nodeType": "YulExpressionStatement", - "src": "1868:24:22" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1912:4:22", - "nodeType": "YulLiteral", - "src": "1912:4:22", - "type": "", - "value": "0x20" - }, - { - "name": "code", - "nativeSrc": "1918:4:22", - "nodeType": "YulIdentifier", - "src": "1918:4:22" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1905:6:22", - "nodeType": "YulIdentifier", - "src": "1905:6:22" - }, - "nativeSrc": "1905:18:22", - "nodeType": "YulFunctionCall", - "src": "1905:18:22" - }, - "nativeSrc": "1905:18:22", - "nodeType": "YulExpressionStatement", - "src": "1905:18:22" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1943:4:22", - "nodeType": "YulLiteral", - "src": "1943:4:22", - "type": "", - "value": "0x1c" - }, - { - "kind": "number", - "nativeSrc": "1949:4:22", - "nodeType": "YulLiteral", - "src": "1949:4:22", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1936:6:22", - "nodeType": "YulIdentifier", - "src": "1936:6:22" - }, - "nativeSrc": "1936:18:22", - "nodeType": "YulFunctionCall", - "src": "1936:18:22" - }, - "nativeSrc": "1936:18:22", - "nodeType": "YulExpressionStatement", - "src": "1936:18:22" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3485, - "isOffset": false, - "isSlot": false, - "src": "1918:4:22", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3488, - "nodeType": "InlineAssembly", - "src": "1829:135:22" - } - ] - }, - "documentation": { - "id": 3483, - "nodeType": "StructuredDocumentation", - "src": "1658:113:22", - "text": "@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes." - }, - "id": 3490, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "panic", - "nameLocation": "1785:5:22", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3485, - "mutability": "mutable", - "name": "code", - "nameLocation": "1799:4:22", - "nodeType": "VariableDeclaration", - "scope": 3490, - "src": "1791:12:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3484, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1791:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1790:14:22" - }, - "returnParameters": { - "id": 3487, - "nodeType": "ParameterList", - "parameters": [], - "src": "1819:0:22" - }, - "scope": 3491, - "src": "1776:194:22", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 3492, - "src": "657:1315:22", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "99:1874:22" - }, - "id": 22 - }, - "@openzeppelin/contracts/utils/Pausable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Pausable.sol", - "exportedSymbols": { - "Context": [ - 3417 - ], - "Pausable": [ - 3608 - ] - }, - "id": 3609, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3493, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "102:24:23" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "../utils/Context.sol", - "id": 3495, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3609, - "sourceUnit": 3418, - "src": "128:45:23", - "symbolAliases": [ - { - "foreign": { - "id": 3494, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "src": "136:7:23", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 3497, - "name": "Context", - "nameLocations": [ - "645:7:23" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3417, - "src": "645:7:23" - }, - "id": 3498, - "nodeType": "InheritanceSpecifier", - "src": "645:7:23" - } - ], - "canonicalName": "Pausable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 3496, - "nodeType": "StructuredDocumentation", - "src": "175:439:23", - "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": 3608, - "linearizedBaseContracts": [ - 3608, - 3417 - ], - "name": "Pausable", - "nameLocation": "633:8:23", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3500, - "mutability": "mutable", - "name": "_paused", - "nameLocation": "672:7:23", - "nodeType": "VariableDeclaration", - "scope": 3608, - "src": "659:20:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3499, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "659:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": { - "id": 3501, - "nodeType": "StructuredDocumentation", - "src": "686:73:23", - "text": " @dev Emitted when the pause is triggered by `account`." - }, - "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", - "id": 3505, - "name": "Paused", - "nameLocation": "770:6:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 3504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3503, - "indexed": false, - "mutability": "mutable", - "name": "account", - "nameLocation": "785:7:23", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "777:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3502, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "777:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "776:17:23" - }, - "src": "764:30:23" - }, - { - "anonymous": false, - "documentation": { - "id": 3506, - "nodeType": "StructuredDocumentation", - "src": "800:70:23", - "text": " @dev Emitted when the pause is lifted by `account`." - }, - "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", - "id": 3510, - "name": "Unpaused", - "nameLocation": "881:8:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 3509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3508, - "indexed": false, - "mutability": "mutable", - "name": "account", - "nameLocation": "898:7:23", - "nodeType": "VariableDeclaration", - "scope": 3510, - "src": "890:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3507, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "890:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "889:17:23" - }, - "src": "875:32:23" - }, - { - "documentation": { - "id": 3511, - "nodeType": "StructuredDocumentation", - "src": "913:76:23", - "text": " @dev The operation failed because the contract is paused." - }, - "errorSelector": "d93c0665", - "id": 3513, - "name": "EnforcedPause", - "nameLocation": "1000:13:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3512, - "nodeType": "ParameterList", - "parameters": [], - "src": "1013:2:23" - }, - "src": "994:22:23" - }, - { - "documentation": { - "id": 3514, - "nodeType": "StructuredDocumentation", - "src": "1022:80:23", - "text": " @dev The operation failed because the contract is not paused." - }, - "errorSelector": "8dfc202b", - "id": 3516, - "name": "ExpectedPause", - "nameLocation": "1113:13:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3515, - "nodeType": "ParameterList", - "parameters": [], - "src": "1126:2:23" - }, - "src": "1107:22:23" - }, - { - "body": { - "id": 3524, - "nodeType": "Block", - "src": "1221:32:23", - "statements": [ - { - "expression": { - "id": 3522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3520, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "1231:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 3521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1241:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1231:15:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3523, - "nodeType": "ExpressionStatement", - "src": "1231:15:23" - } - ] - }, - "documentation": { - "id": 3517, - "nodeType": "StructuredDocumentation", - "src": "1135:67:23", - "text": " @dev Initializes the contract in unpaused state." - }, - "id": 3525, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3518, - "nodeType": "ParameterList", - "parameters": [], - "src": "1218:2:23" - }, - "returnParameters": { - "id": 3519, - "nodeType": "ParameterList", - "parameters": [], - "src": "1221:0:23" - }, - "scope": 3608, - "src": "1207:46:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3532, - "nodeType": "Block", - "src": "1464:47:23", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3528, - "name": "_requireNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3562, - "src": "1474:17:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 3529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1474:19:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3530, - "nodeType": "ExpressionStatement", - "src": "1474:19:23" - }, - { - "id": 3531, - "nodeType": "PlaceholderStatement", - "src": "1503:1:23" - } - ] - }, - "documentation": { - "id": 3526, - "nodeType": "StructuredDocumentation", - "src": "1259:175:23", - "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": 3533, - "name": "whenNotPaused", - "nameLocation": "1448:13:23", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3527, - "nodeType": "ParameterList", - "parameters": [], - "src": "1461:2:23" - }, - "src": "1439:72:23", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3540, - "nodeType": "Block", - "src": "1711:44:23", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3536, - "name": "_requirePaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "1721:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 3537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1721:16:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3538, - "nodeType": "ExpressionStatement", - "src": "1721:16:23" - }, - { - "id": 3539, - "nodeType": "PlaceholderStatement", - "src": "1747:1:23" - } - ] - }, - "documentation": { - "id": 3534, - "nodeType": "StructuredDocumentation", - "src": "1517:167:23", - "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." - }, - "id": 3541, - "name": "whenPaused", - "nameLocation": "1698:10:23", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3535, - "nodeType": "ParameterList", - "parameters": [], - "src": "1708:2:23" - }, - "src": "1689:66:23", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3549, - "nodeType": "Block", - "src": "1903:31:23", - "statements": [ - { - "expression": { - "id": 3547, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "1920:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3546, - "id": 3548, - "nodeType": "Return", - "src": "1913:14:23" - } - ] - }, - "documentation": { - "id": 3542, - "nodeType": "StructuredDocumentation", - "src": "1761:84:23", - "text": " @dev Returns true if the contract is paused, and false otherwise." - }, - "functionSelector": "5c975abb", - "id": 3550, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "paused", - "nameLocation": "1859:6:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3543, - "nodeType": "ParameterList", - "parameters": [], - "src": "1865:2:23" - }, - "returnParameters": { - "id": 3546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3545, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3550, - "src": "1897:4:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3544, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1897:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1896:6:23" - }, - "scope": 3608, - "src": "1850:84:23", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 3561, - "nodeType": "Block", - "src": "2053:77:23", - "statements": [ - { - "condition": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3554, - "name": "paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3550, - "src": "2067:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 3555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2067:8:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3560, - "nodeType": "IfStatement", - "src": "2063:61:23", - "trueBody": { - "id": 3559, - "nodeType": "Block", - "src": "2077:47:23", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3556, - "name": "EnforcedPause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "2098:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2098:15:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3558, - "nodeType": "RevertStatement", - "src": "2091:22:23" - } - ] - } - } - ] - }, - "documentation": { - "id": 3551, - "nodeType": "StructuredDocumentation", - "src": "1940:57:23", - "text": " @dev Throws if the contract is paused." - }, - "id": 3562, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_requireNotPaused", - "nameLocation": "2011:17:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3552, - "nodeType": "ParameterList", - "parameters": [], - "src": "2028:2:23" - }, - "returnParameters": { - "id": 3553, - "nodeType": "ParameterList", - "parameters": [], - "src": "2053:0:23" - }, - "scope": 3608, - "src": "2002:128:23", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3574, - "nodeType": "Block", - "src": "2250:78:23", - "statements": [ - { - "condition": { - "id": 3568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2264:9:23", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3566, - "name": "paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3550, - "src": "2265:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 3567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2265:8:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3573, - "nodeType": "IfStatement", - "src": "2260:62:23", - "trueBody": { - "id": 3572, - "nodeType": "Block", - "src": "2275:47:23", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3569, - "name": "ExpectedPause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "2296:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2296:15:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 3571, - "nodeType": "RevertStatement", - "src": "2289:22:23" - } - ] - } - } - ] - }, - "documentation": { - "id": 3563, - "nodeType": "StructuredDocumentation", - "src": "2136:61:23", - "text": " @dev Throws if the contract is not paused." - }, - "id": 3575, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_requirePaused", - "nameLocation": "2211:14:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3564, - "nodeType": "ParameterList", - "parameters": [], - "src": "2225:2:23" - }, - "returnParameters": { - "id": 3565, - "nodeType": "ParameterList", - "parameters": [], - "src": "2250:0:23" - }, - "scope": 3608, - "src": "2202:126:23", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3590, - "nodeType": "Block", - "src": "2512:66:23", - "statements": [ - { - "expression": { - "id": 3583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3581, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "2522:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 3582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2532:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2522:14:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3584, - "nodeType": "ExpressionStatement", - "src": "2522:14:23" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3586, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2558:10:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2558:12:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3585, - "name": "Paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3505, - "src": "2551:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 3588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2551:20:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3589, - "nodeType": "EmitStatement", - "src": "2546:25:23" - } - ] - }, - "documentation": { - "id": 3576, - "nodeType": "StructuredDocumentation", - "src": "2334:124:23", - "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." - }, - "id": 3591, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 3579, - "kind": "modifierInvocation", - "modifierName": { - "id": 3578, - "name": "whenNotPaused", - "nameLocations": [ - "2498:13:23" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3533, - "src": "2498:13:23" - }, - "nodeType": "ModifierInvocation", - "src": "2498:13:23" - } - ], - "name": "_pause", - "nameLocation": "2472:6:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [], - "src": "2478:2:23" - }, - "returnParameters": { - "id": 3580, - "nodeType": "ParameterList", - "parameters": [], - "src": "2512:0:23" - }, - "scope": 3608, - "src": "2463:115:23", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3606, - "nodeType": "Block", - "src": "2758:69:23", - "statements": [ - { - "expression": { - "id": 3599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3597, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "2768:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2778:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2768:15:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3600, - "nodeType": "ExpressionStatement", - "src": "2768:15:23" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3602, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2807:10:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 3603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2807:12:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3601, - "name": "Unpaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3510, - "src": "2798:8:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 3604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2798:22:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3605, - "nodeType": "EmitStatement", - "src": "2793:27:23" - } - ] - }, - "documentation": { - "id": 3592, - "nodeType": "StructuredDocumentation", - "src": "2584:121:23", - "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." - }, - "id": 3607, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 3595, - "kind": "modifierInvocation", - "modifierName": { - "id": 3594, - "name": "whenPaused", - "nameLocations": [ - "2747:10:23" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3541, - "src": "2747:10:23" - }, - "nodeType": "ModifierInvocation", - "src": "2747:10:23" - } - ], - "name": "_unpause", - "nameLocation": "2719:8:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3593, - "nodeType": "ParameterList", - "parameters": [], - "src": "2727:2:23" - }, - "returnParameters": { - "id": 3596, - "nodeType": "ParameterList", - "parameters": [], - "src": "2758:0:23" - }, - "scope": 3608, - "src": "2710:117:23", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 3609, - "src": "615:2214:23", - "usedErrors": [ - 3513, - 3516 - ], - "usedEvents": [ - 3505, - 3510 - ] - } - ], - "src": "102:2728:23" - }, - "id": 23 - }, - "@openzeppelin/contracts/utils/StorageSlot.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", - "exportedSymbols": { - "StorageSlot": [ - 3732 - ] - }, - "id": 3733, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3610, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "193:24:24" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "StorageSlot", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3611, - "nodeType": "StructuredDocumentation", - "src": "219:1187:24", - "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 ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\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 ```\n TIP: Consider using this library along with {SlotDerivation}." - }, - "fullyImplemented": true, - "id": 3732, - "linearizedBaseContracts": [ - 3732 - ], - "name": "StorageSlot", - "nameLocation": "1415:11:24", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "StorageSlot.AddressSlot", - "id": 3614, - "members": [ - { - "constant": false, - "id": 3613, - "mutability": "mutable", - "name": "value", - "nameLocation": "1470:5:24", - "nodeType": "VariableDeclaration", - "scope": 3614, - "src": "1462:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1462:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "name": "AddressSlot", - "nameLocation": "1440:11:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1433:49:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.BooleanSlot", - "id": 3617, - "members": [ - { - "constant": false, - "id": 3616, - "mutability": "mutable", - "name": "value", - "nameLocation": "1522:5:24", - "nodeType": "VariableDeclaration", - "scope": 3617, - "src": "1517:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3615, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1517:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "name": "BooleanSlot", - "nameLocation": "1495:11:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1488:46:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.Bytes32Slot", - "id": 3620, - "members": [ - { - "constant": false, - "id": 3619, - "mutability": "mutable", - "name": "value", - "nameLocation": "1577:5:24", - "nodeType": "VariableDeclaration", - "scope": 3620, - "src": "1569:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3618, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1569:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "name": "Bytes32Slot", - "nameLocation": "1547:11:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1540:49:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.Uint256Slot", - "id": 3623, - "members": [ - { - "constant": false, - "id": 3622, - "mutability": "mutable", - "name": "value", - "nameLocation": "1632:5:24", - "nodeType": "VariableDeclaration", - "scope": 3623, - "src": "1624:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3621, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1624:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Uint256Slot", - "nameLocation": "1602:11:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1595:49:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.Int256Slot", - "id": 3626, - "members": [ - { - "constant": false, - "id": 3625, - "mutability": "mutable", - "name": "value", - "nameLocation": "1685:5:24", - "nodeType": "VariableDeclaration", - "scope": 3626, - "src": "1678:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 3624, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "1678:6:24", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "name": "Int256Slot", - "nameLocation": "1657:10:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1650:47:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.StringSlot", - "id": 3629, - "members": [ - { - "constant": false, - "id": 3628, - "mutability": "mutable", - "name": "value", - "nameLocation": "1738:5:24", - "nodeType": "VariableDeclaration", - "scope": 3629, - "src": "1731:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3627, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1731:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "StringSlot", - "nameLocation": "1710:10:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1703:47:24", - "visibility": "public" - }, - { - "canonicalName": "StorageSlot.BytesSlot", - "id": 3632, - "members": [ - { - "constant": false, - "id": 3631, - "mutability": "mutable", - "name": "value", - "nameLocation": "1789:5:24", - "nodeType": "VariableDeclaration", - "scope": 3632, - "src": "1783:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3630, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1783:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "name": "BytesSlot", - "nameLocation": "1763:9:24", - "nodeType": "StructDefinition", - "scope": 3732, - "src": "1756:45:24", - "visibility": "public" - }, - { - "body": { - "id": 3642, - "nodeType": "Block", - "src": "1983:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "2018:38:24", - "nodeType": "YulBlock", - "src": "2018:38:24", - "statements": [ - { - "nativeSrc": "2032:14:24", - "nodeType": "YulAssignment", - "src": "2032:14:24", - "value": { - "name": "slot", - "nativeSrc": "2042:4:24", - "nodeType": "YulIdentifier", - "src": "2042:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "2032:6:24", - "nodeType": "YulIdentifier", - "src": "2032:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3639, - "isOffset": false, - "isSlot": true, - "src": "2032:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3635, - "isOffset": false, - "isSlot": false, - "src": "2042:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3641, - "nodeType": "InlineAssembly", - "src": "1993:63:24" - } - ] - }, - "documentation": { - "id": 3633, - "nodeType": "StructuredDocumentation", - "src": "1807:87:24", - "text": " @dev Returns an `AddressSlot` with member `value` located at `slot`." - }, - "id": 3643, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAddressSlot", - "nameLocation": "1908:14:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3636, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3635, - "mutability": "mutable", - "name": "slot", - "nameLocation": "1931:4:24", - "nodeType": "VariableDeclaration", - "scope": 3643, - "src": "1923:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3634, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1923:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1922:14:24" - }, - "returnParameters": { - "id": 3640, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3639, - "mutability": "mutable", - "name": "r", - "nameLocation": "1980:1:24", - "nodeType": "VariableDeclaration", - "scope": 3643, - "src": "1960:21:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot" - }, - "typeName": { - "id": 3638, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3637, - "name": "AddressSlot", - "nameLocations": [ - "1960:11:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3614, - "src": "1960:11:24" - }, - "referencedDeclaration": 3614, - "src": "1960:11:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSlot_$3614_storage_ptr", - "typeString": "struct StorageSlot.AddressSlot" - } - }, - "visibility": "internal" - } - ], - "src": "1959:23:24" - }, - "scope": 3732, - "src": "1899:163:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3653, - "nodeType": "Block", - "src": "2243:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "2278:38:24", - "nodeType": "YulBlock", - "src": "2278:38:24", - "statements": [ - { - "nativeSrc": "2292:14:24", - "nodeType": "YulAssignment", - "src": "2292:14:24", - "value": { - "name": "slot", - "nativeSrc": "2302:4:24", - "nodeType": "YulIdentifier", - "src": "2302:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "2292:6:24", - "nodeType": "YulIdentifier", - "src": "2292:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3650, - "isOffset": false, - "isSlot": true, - "src": "2292:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3646, - "isOffset": false, - "isSlot": false, - "src": "2302:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3652, - "nodeType": "InlineAssembly", - "src": "2253:63:24" - } - ] - }, - "documentation": { - "id": 3644, - "nodeType": "StructuredDocumentation", - "src": "2068:86:24", - "text": " @dev Returns a `BooleanSlot` with member `value` located at `slot`." - }, - "id": 3654, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBooleanSlot", - "nameLocation": "2168:14:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3647, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3646, - "mutability": "mutable", - "name": "slot", - "nameLocation": "2191:4:24", - "nodeType": "VariableDeclaration", - "scope": 3654, - "src": "2183:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3645, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2183:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2182:14:24" - }, - "returnParameters": { - "id": 3651, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3650, - "mutability": "mutable", - "name": "r", - "nameLocation": "2240:1:24", - "nodeType": "VariableDeclaration", - "scope": 3654, - "src": "2220:21:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BooleanSlot_$3617_storage_ptr", - "typeString": "struct StorageSlot.BooleanSlot" - }, - "typeName": { - "id": 3649, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3648, - "name": "BooleanSlot", - "nameLocations": [ - "2220:11:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3617, - "src": "2220:11:24" - }, - "referencedDeclaration": 3617, - "src": "2220:11:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BooleanSlot_$3617_storage_ptr", - "typeString": "struct StorageSlot.BooleanSlot" - } - }, - "visibility": "internal" - } - ], - "src": "2219:23:24" - }, - "scope": 3732, - "src": "2159:163:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3664, - "nodeType": "Block", - "src": "2503:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "2538:38:24", - "nodeType": "YulBlock", - "src": "2538:38:24", - "statements": [ - { - "nativeSrc": "2552:14:24", - "nodeType": "YulAssignment", - "src": "2552:14:24", - "value": { - "name": "slot", - "nativeSrc": "2562:4:24", - "nodeType": "YulIdentifier", - "src": "2562:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "2552:6:24", - "nodeType": "YulIdentifier", - "src": "2552:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3661, - "isOffset": false, - "isSlot": true, - "src": "2552:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3657, - "isOffset": false, - "isSlot": false, - "src": "2562:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3663, - "nodeType": "InlineAssembly", - "src": "2513:63:24" - } - ] - }, - "documentation": { - "id": 3655, - "nodeType": "StructuredDocumentation", - "src": "2328:86:24", - "text": " @dev Returns a `Bytes32Slot` with member `value` located at `slot`." - }, - "id": 3665, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBytes32Slot", - "nameLocation": "2428:14:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3658, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3657, - "mutability": "mutable", - "name": "slot", - "nameLocation": "2451:4:24", - "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "2443:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3656, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2443:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2442:14:24" - }, - "returnParameters": { - "id": 3662, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3661, - "mutability": "mutable", - "name": "r", - "nameLocation": "2500:1:24", - "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "2480:21:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bytes32Slot_$3620_storage_ptr", - "typeString": "struct StorageSlot.Bytes32Slot" - }, - "typeName": { - "id": 3660, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3659, - "name": "Bytes32Slot", - "nameLocations": [ - "2480:11:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3620, - "src": "2480:11:24" - }, - "referencedDeclaration": 3620, - "src": "2480:11:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bytes32Slot_$3620_storage_ptr", - "typeString": "struct StorageSlot.Bytes32Slot" - } - }, - "visibility": "internal" - } - ], - "src": "2479:23:24" - }, - "scope": 3732, - "src": "2419:163:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3675, - "nodeType": "Block", - "src": "2763:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "2798:38:24", - "nodeType": "YulBlock", - "src": "2798:38:24", - "statements": [ - { - "nativeSrc": "2812:14:24", - "nodeType": "YulAssignment", - "src": "2812:14:24", - "value": { - "name": "slot", - "nativeSrc": "2822:4:24", - "nodeType": "YulIdentifier", - "src": "2822:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "2812:6:24", - "nodeType": "YulIdentifier", - "src": "2812:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3672, - "isOffset": false, - "isSlot": true, - "src": "2812:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3668, - "isOffset": false, - "isSlot": false, - "src": "2822:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3674, - "nodeType": "InlineAssembly", - "src": "2773:63:24" - } - ] - }, - "documentation": { - "id": 3666, - "nodeType": "StructuredDocumentation", - "src": "2588:86:24", - "text": " @dev Returns a `Uint256Slot` with member `value` located at `slot`." - }, - "id": 3676, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getUint256Slot", - "nameLocation": "2688:14:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3668, - "mutability": "mutable", - "name": "slot", - "nameLocation": "2711:4:24", - "nodeType": "VariableDeclaration", - "scope": 3676, - "src": "2703:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3667, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2703:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2702:14:24" - }, - "returnParameters": { - "id": 3673, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3672, - "mutability": "mutable", - "name": "r", - "nameLocation": "2760:1:24", - "nodeType": "VariableDeclaration", - "scope": 3676, - "src": "2740:21:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Uint256Slot_$3623_storage_ptr", - "typeString": "struct StorageSlot.Uint256Slot" - }, - "typeName": { - "id": 3671, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3670, - "name": "Uint256Slot", - "nameLocations": [ - "2740:11:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3623, - "src": "2740:11:24" - }, - "referencedDeclaration": 3623, - "src": "2740:11:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Uint256Slot_$3623_storage_ptr", - "typeString": "struct StorageSlot.Uint256Slot" - } - }, - "visibility": "internal" - } - ], - "src": "2739:23:24" - }, - "scope": 3732, - "src": "2679:163:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3686, - "nodeType": "Block", - "src": "3020:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "3055:38:24", - "nodeType": "YulBlock", - "src": "3055:38:24", - "statements": [ - { - "nativeSrc": "3069:14:24", - "nodeType": "YulAssignment", - "src": "3069:14:24", - "value": { - "name": "slot", - "nativeSrc": "3079:4:24", - "nodeType": "YulIdentifier", - "src": "3079:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "3069:6:24", - "nodeType": "YulIdentifier", - "src": "3069:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3683, - "isOffset": false, - "isSlot": true, - "src": "3069:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3679, - "isOffset": false, - "isSlot": false, - "src": "3079:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3685, - "nodeType": "InlineAssembly", - "src": "3030:63:24" - } - ] - }, - "documentation": { - "id": 3677, - "nodeType": "StructuredDocumentation", - "src": "2848:85:24", - "text": " @dev Returns a `Int256Slot` with member `value` located at `slot`." - }, - "id": 3687, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getInt256Slot", - "nameLocation": "2947:13:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3680, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3679, - "mutability": "mutable", - "name": "slot", - "nameLocation": "2969:4:24", - "nodeType": "VariableDeclaration", - "scope": 3687, - "src": "2961:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3678, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2961:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2960:14:24" - }, - "returnParameters": { - "id": 3684, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3683, - "mutability": "mutable", - "name": "r", - "nameLocation": "3017:1:24", - "nodeType": "VariableDeclaration", - "scope": 3687, - "src": "2998:20:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Int256Slot_$3626_storage_ptr", - "typeString": "struct StorageSlot.Int256Slot" - }, - "typeName": { - "id": 3682, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3681, - "name": "Int256Slot", - "nameLocations": [ - "2998:10:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3626, - "src": "2998:10:24" - }, - "referencedDeclaration": 3626, - "src": "2998:10:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Int256Slot_$3626_storage_ptr", - "typeString": "struct StorageSlot.Int256Slot" - } - }, - "visibility": "internal" - } - ], - "src": "2997:22:24" - }, - "scope": 3732, - "src": "2938:161:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3697, - "nodeType": "Block", - "src": "3277:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "3312:38:24", - "nodeType": "YulBlock", - "src": "3312:38:24", - "statements": [ - { - "nativeSrc": "3326:14:24", - "nodeType": "YulAssignment", - "src": "3326:14:24", - "value": { - "name": "slot", - "nativeSrc": "3336:4:24", - "nodeType": "YulIdentifier", - "src": "3336:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "3326:6:24", - "nodeType": "YulIdentifier", - "src": "3326:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3694, - "isOffset": false, - "isSlot": true, - "src": "3326:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3690, - "isOffset": false, - "isSlot": false, - "src": "3336:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3696, - "nodeType": "InlineAssembly", - "src": "3287:63:24" - } - ] - }, - "documentation": { - "id": 3688, - "nodeType": "StructuredDocumentation", - "src": "3105:85:24", - "text": " @dev Returns a `StringSlot` with member `value` located at `slot`." - }, - "id": 3698, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStringSlot", - "nameLocation": "3204:13:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3691, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3690, - "mutability": "mutable", - "name": "slot", - "nameLocation": "3226:4:24", - "nodeType": "VariableDeclaration", - "scope": 3698, - "src": "3218:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3689, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3218:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3217:14:24" - }, - "returnParameters": { - "id": 3695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3694, - "mutability": "mutable", - "name": "r", - "nameLocation": "3274:1:24", - "nodeType": "VariableDeclaration", - "scope": 3698, - "src": "3255:20:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StringSlot_$3629_storage_ptr", - "typeString": "struct StorageSlot.StringSlot" - }, - "typeName": { - "id": 3693, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3692, - "name": "StringSlot", - "nameLocations": [ - "3255:10:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3629, - "src": "3255:10:24" - }, - "referencedDeclaration": 3629, - "src": "3255:10:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StringSlot_$3629_storage_ptr", - "typeString": "struct StorageSlot.StringSlot" - } - }, - "visibility": "internal" - } - ], - "src": "3254:22:24" - }, - "scope": 3732, - "src": "3195:161:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3708, - "nodeType": "Block", - "src": "3558:85:24", - "statements": [ - { - "AST": { - "nativeSrc": "3593:44:24", - "nodeType": "YulBlock", - "src": "3593:44:24", - "statements": [ - { - "nativeSrc": "3607:20:24", - "nodeType": "YulAssignment", - "src": "3607:20:24", - "value": { - "name": "store.slot", - "nativeSrc": "3617:10:24", - "nodeType": "YulIdentifier", - "src": "3617:10:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "3607:6:24", - "nodeType": "YulIdentifier", - "src": "3607:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3705, - "isOffset": false, - "isSlot": true, - "src": "3607:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3701, - "isOffset": false, - "isSlot": true, - "src": "3617:10:24", - "suffix": "slot", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3707, - "nodeType": "InlineAssembly", - "src": "3568:69:24" - } - ] - }, - "documentation": { - "id": 3699, - "nodeType": "StructuredDocumentation", - "src": "3362:101:24", - "text": " @dev Returns an `StringSlot` representation of the string storage pointer `store`." - }, - "id": 3709, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStringSlot", - "nameLocation": "3477:13:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3702, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3701, - "mutability": "mutable", - "name": "store", - "nameLocation": "3506:5:24", - "nodeType": "VariableDeclaration", - "scope": 3709, - "src": "3491:20:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3700, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3491:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "3490:22:24" - }, - "returnParameters": { - "id": 3706, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3705, - "mutability": "mutable", - "name": "r", - "nameLocation": "3555:1:24", - "nodeType": "VariableDeclaration", - "scope": 3709, - "src": "3536:20:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StringSlot_$3629_storage_ptr", - "typeString": "struct StorageSlot.StringSlot" - }, - "typeName": { - "id": 3704, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3703, - "name": "StringSlot", - "nameLocations": [ - "3536:10:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3629, - "src": "3536:10:24" - }, - "referencedDeclaration": 3629, - "src": "3536:10:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StringSlot_$3629_storage_ptr", - "typeString": "struct StorageSlot.StringSlot" - } - }, - "visibility": "internal" - } - ], - "src": "3535:22:24" - }, - "scope": 3732, - "src": "3468:175:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3719, - "nodeType": "Block", - "src": "3818:79:24", - "statements": [ - { - "AST": { - "nativeSrc": "3853:38:24", - "nodeType": "YulBlock", - "src": "3853:38:24", - "statements": [ - { - "nativeSrc": "3867:14:24", - "nodeType": "YulAssignment", - "src": "3867:14:24", - "value": { - "name": "slot", - "nativeSrc": "3877:4:24", - "nodeType": "YulIdentifier", - "src": "3877:4:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "3867:6:24", - "nodeType": "YulIdentifier", - "src": "3867:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3716, - "isOffset": false, - "isSlot": true, - "src": "3867:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3712, - "isOffset": false, - "isSlot": false, - "src": "3877:4:24", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3718, - "nodeType": "InlineAssembly", - "src": "3828:63:24" - } - ] - }, - "documentation": { - "id": 3710, - "nodeType": "StructuredDocumentation", - "src": "3649:84:24", - "text": " @dev Returns a `BytesSlot` with member `value` located at `slot`." - }, - "id": 3720, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBytesSlot", - "nameLocation": "3747:12:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3713, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3712, - "mutability": "mutable", - "name": "slot", - "nameLocation": "3768:4:24", - "nodeType": "VariableDeclaration", - "scope": 3720, - "src": "3760:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3711, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3760:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3759:14:24" - }, - "returnParameters": { - "id": 3717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3716, - "mutability": "mutable", - "name": "r", - "nameLocation": "3815:1:24", - "nodeType": "VariableDeclaration", - "scope": 3720, - "src": "3797:19:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BytesSlot_$3632_storage_ptr", - "typeString": "struct StorageSlot.BytesSlot" - }, - "typeName": { - "id": 3715, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3714, - "name": "BytesSlot", - "nameLocations": [ - "3797:9:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3632, - "src": "3797:9:24" - }, - "referencedDeclaration": 3632, - "src": "3797:9:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BytesSlot_$3632_storage_ptr", - "typeString": "struct StorageSlot.BytesSlot" - } - }, - "visibility": "internal" - } - ], - "src": "3796:21:24" - }, - "scope": 3732, - "src": "3738:159:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3730, - "nodeType": "Block", - "src": "4094:85:24", - "statements": [ - { - "AST": { - "nativeSrc": "4129:44:24", - "nodeType": "YulBlock", - "src": "4129:44:24", - "statements": [ - { - "nativeSrc": "4143:20:24", - "nodeType": "YulAssignment", - "src": "4143:20:24", - "value": { - "name": "store.slot", - "nativeSrc": "4153:10:24", - "nodeType": "YulIdentifier", - "src": "4153:10:24" - }, - "variableNames": [ - { - "name": "r.slot", - "nativeSrc": "4143:6:24", - "nodeType": "YulIdentifier", - "src": "4143:6:24" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 3727, - "isOffset": false, - "isSlot": true, - "src": "4143:6:24", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 3723, - "isOffset": false, - "isSlot": true, - "src": "4153:10:24", - "suffix": "slot", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 3729, - "nodeType": "InlineAssembly", - "src": "4104:69:24" - } - ] - }, - "documentation": { - "id": 3721, - "nodeType": "StructuredDocumentation", - "src": "3903:99:24", - "text": " @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`." - }, - "id": 3731, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBytesSlot", - "nameLocation": "4016:12:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3724, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3723, - "mutability": "mutable", - "name": "store", - "nameLocation": "4043:5:24", - "nodeType": "VariableDeclaration", - "scope": 3731, - "src": "4029:19:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3722, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4029:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4028:21:24" - }, - "returnParameters": { - "id": 3728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3727, - "mutability": "mutable", - "name": "r", - "nameLocation": "4091:1:24", - "nodeType": "VariableDeclaration", - "scope": 3731, - "src": "4073:19:24", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BytesSlot_$3632_storage_ptr", - "typeString": "struct StorageSlot.BytesSlot" - }, - "typeName": { - "id": 3726, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3725, - "name": "BytesSlot", - "nameLocations": [ - "4073:9:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3632, - "src": "4073:9:24" - }, - "referencedDeclaration": 3632, - "src": "4073:9:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BytesSlot_$3632_storage_ptr", - "typeString": "struct StorageSlot.BytesSlot" - } - }, - "visibility": "internal" - } - ], - "src": "4072:21:24" - }, - "scope": 3732, - "src": "4007:172:24", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 3733, - "src": "1407:2774:24", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "193:3989:24" - }, - "id": 24 - }, - "@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "exportedSymbols": { - "ERC165": [ - 3756 - ], - "IERC165": [ - 3768 - ] - }, - "id": 3757, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3734, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "114:24:25" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "file": "./IERC165.sol", - "id": 3736, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3757, - "sourceUnit": 3769, - "src": "140:38:25", - "symbolAliases": [ - { - "foreign": { - "id": 3735, - "name": "IERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3768, - "src": "148:7:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 3738, - "name": "IERC165", - "nameLocations": [ - "688:7:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3768, - "src": "688:7:25" - }, - "id": 3739, - "nodeType": "InheritanceSpecifier", - "src": "688:7:25" - } - ], - "canonicalName": "ERC165", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 3737, - "nodeType": "StructuredDocumentation", - "src": "180:479:25", - "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 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": 3756, - "linearizedBaseContracts": [ - 3756, - 3768 - ], - "name": "ERC165", - "nameLocation": "678:6:25", - "nodeType": "ContractDefinition", - "nodes": [ - { - "baseFunctions": [ - 3767 - ], - "body": { - "id": 3754, - "nodeType": "Block", - "src": "845:64:25", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3747, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "862:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 3749, - "name": "IERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3768, - "src": "882:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC165_$3768_$", - "typeString": "type(contract IERC165)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_IERC165_$3768_$", - "typeString": "type(contract IERC165)" - } - ], - "id": 3748, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "877:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "877:13:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$3768", - "typeString": "type(contract IERC165)" - } - }, - "id": 3751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "891:11:25", - "memberName": "interfaceId", - "nodeType": "MemberAccess", - "src": "877:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "862:40:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3746, - "id": 3753, - "nodeType": "Return", - "src": "855:47:25" - } - ] - }, - "documentation": { - "id": 3740, - "nodeType": "StructuredDocumentation", - "src": "702:56:25", - "text": " @dev See {IERC165-supportsInterface}." - }, - "functionSelector": "01ffc9a7", - "id": 3755, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "772:17:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "797:11:25", - "nodeType": "VariableDeclaration", - "scope": 3755, - "src": "790:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3741, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "790:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "789:20:25" - }, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3755, - "src": "839:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3744, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "839:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "838:6:25" - }, - "scope": 3756, - "src": "763:146:25", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - } - ], - "scope": 3757, - "src": "660:251:25", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "114:798:25" - }, - "id": 25 - }, - "@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "exportedSymbols": { - "IERC165": [ - 3768 - ] - }, - "id": 3769, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3758, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "115:24:26" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IERC165", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 3759, - "nodeType": "StructuredDocumentation", - "src": "141:280:26", - "text": " @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\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": 3768, - "linearizedBaseContracts": [ - 3768 - ], - "name": "IERC165", - "nameLocation": "432:7:26", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 3760, - "nodeType": "StructuredDocumentation", - "src": "446:340:26", - "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[ERC 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": 3767, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "800:17:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3762, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "825:11:26", - "nodeType": "VariableDeclaration", - "scope": 3767, - "src": "818:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3761, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "818:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "817:20:26" - }, - "returnParameters": { - "id": 3766, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3765, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3767, - "src": "861:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3764, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "861:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "860:6:26" - }, - "scope": 3768, - "src": "791:76:26", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 3769, - "src": "422:447:26", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "115:755:26" - }, - "id": 26 - }, - "@openzeppelin/contracts/utils/math/Math.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", - "exportedSymbols": { - "Math": [ - 5374 - ], - "Panic": [ - 3491 - ], - "SafeCast": [ - 7139 - ] - }, - "id": 5375, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3770, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "103:24:27" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", - "file": "../Panic.sol", - "id": 3772, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5375, - "sourceUnit": 3492, - "src": "129:35:27", - "symbolAliases": [ - { - "foreign": { - "id": 3771, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "137:5:27", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", - "file": "./SafeCast.sol", - "id": 3774, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5375, - "sourceUnit": 7140, - "src": "165:40:27", - "symbolAliases": [ - { - "foreign": { - "id": 3773, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "173:8:27", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Math", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3775, - "nodeType": "StructuredDocumentation", - "src": "207:73:27", - "text": " @dev Standard math utilities missing in the Solidity language." - }, - "fullyImplemented": true, - "id": 5374, - "linearizedBaseContracts": [ - 5374 - ], - "name": "Math", - "nameLocation": "289:4:27", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Math.Rounding", - "id": 3780, - "members": [ - { - "id": 3776, - "name": "Floor", - "nameLocation": "324:5:27", - "nodeType": "EnumValue", - "src": "324:5:27" - }, - { - "id": 3777, - "name": "Ceil", - "nameLocation": "367:4:27", - "nodeType": "EnumValue", - "src": "367:4:27" - }, - { - "id": 3778, - "name": "Trunc", - "nameLocation": "409:5:27", - "nodeType": "EnumValue", - "src": "409:5:27" - }, - { - "id": 3779, - "name": "Expand", - "nameLocation": "439:6:27", - "nodeType": "EnumValue", - "src": "439:6:27" - } - ], - "name": "Rounding", - "nameLocation": "305:8:27", - "nodeType": "EnumDefinition", - "src": "300:169:27" - }, - { - "body": { - "id": 3811, - "nodeType": "Block", - "src": "677:140:27", - "statements": [ - { - "id": 3810, - "nodeType": "UncheckedBlock", - "src": "687:124:27", - "statements": [ - { - "assignments": [ - 3793 - ], - "declarations": [ - { - "constant": false, - "id": 3793, - "mutability": "mutable", - "name": "c", - "nameLocation": "719:1:27", - "nodeType": "VariableDeclaration", - "scope": 3810, - "src": "711:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "711:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 3797, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3794, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3783, - "src": "723:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 3795, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3785, - "src": "727:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "723:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "711:17:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3798, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3793, - "src": "746:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3799, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3783, - "src": "750:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "746:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3805, - "nodeType": "IfStatement", - "src": "742:28:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 3801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "761:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 3802, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "768:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3803, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "760:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3791, - "id": 3804, - "nodeType": "Return", - "src": "753:17:27" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "792:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "id": 3807, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3793, - "src": "798:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3808, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "791:9:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 3791, - "id": 3809, - "nodeType": "Return", - "src": "784:16:27" - } - ] - } - ] - }, - "documentation": { - "id": 3781, - "nodeType": "StructuredDocumentation", - "src": "475:106:27", - "text": " @dev Returns the addition of two unsigned integers, with an success flag (no overflow)." - }, - "id": 3812, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryAdd", - "nameLocation": "595:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3783, - "mutability": "mutable", - "name": "a", - "nameLocation": "610:1:27", - "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "602:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "602:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3785, - "mutability": "mutable", - "name": "b", - "nameLocation": "621:1:27", - "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "613:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3784, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "613:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "601:22:27" - }, - "returnParameters": { - "id": 3791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3788, - "mutability": "mutable", - "name": "success", - "nameLocation": "652:7:27", - "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "647:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3787, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "647:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3790, - "mutability": "mutable", - "name": "result", - "nameLocation": "669:6:27", - "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "661:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3789, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "661:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "646:30:27" - }, - "scope": 5374, - "src": "586:231:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3839, - "nodeType": "Block", - "src": "1028:113:27", - "statements": [ - { - "id": 3838, - "nodeType": "UncheckedBlock", - "src": "1038:97:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3824, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3817, - "src": "1066:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 3825, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "1070:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1066:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3831, - "nodeType": "IfStatement", - "src": "1062:28:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 3827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1081:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 3828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1088:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3829, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1080:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3823, - "id": 3830, - "nodeType": "Return", - "src": "1073:17:27" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1112:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3833, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "1118:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 3834, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3817, - "src": "1122:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1118:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3836, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1111:13:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 3823, - "id": 3837, - "nodeType": "Return", - "src": "1104:20:27" - } - ] - } - ] - }, - "documentation": { - "id": 3813, - "nodeType": "StructuredDocumentation", - "src": "823:109:27", - "text": " @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow)." - }, - "id": 3840, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trySub", - "nameLocation": "946:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3815, - "mutability": "mutable", - "name": "a", - "nameLocation": "961:1:27", - "nodeType": "VariableDeclaration", - "scope": 3840, - "src": "953:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "953:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3817, - "mutability": "mutable", - "name": "b", - "nameLocation": "972:1:27", - "nodeType": "VariableDeclaration", - "scope": 3840, - "src": "964:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3816, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "964:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "952:22:27" - }, - "returnParameters": { - "id": 3823, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3820, - "mutability": "mutable", - "name": "success", - "nameLocation": "1003:7:27", - "nodeType": "VariableDeclaration", - "scope": 3840, - "src": "998:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3819, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "998:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3822, - "mutability": "mutable", - "name": "result", - "nameLocation": "1020:6:27", - "nodeType": "VariableDeclaration", - "scope": 3840, - "src": "1012:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3821, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1012:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "997:30:27" - }, - "scope": 5374, - "src": "937:204:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "1355:417:27", - "statements": [ - { - "id": 3880, - "nodeType": "UncheckedBlock", - "src": "1365:401:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3852, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3843, - "src": "1623:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1628:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1623:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3859, - "nodeType": "IfStatement", - "src": "1619:28:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1639:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "hexValue": "30", - "id": 3856, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1645:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3857, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1638:9:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3851, - "id": 3858, - "nodeType": "Return", - "src": "1631:16:27" - } - }, - { - "assignments": [ - 3861 - ], - "declarations": [ - { - "constant": false, - "id": 3861, - "mutability": "mutable", - "name": "c", - "nameLocation": "1669:1:27", - "nodeType": "VariableDeclaration", - "scope": 3880, - "src": "1661:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3860, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1661:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 3865, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3862, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3843, - "src": "1673:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 3863, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3845, - "src": "1677:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1673:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1661:17:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3866, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3861, - "src": "1696:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 3867, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3843, - "src": "1700:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1696:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 3869, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3845, - "src": "1705:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1696:10:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3875, - "nodeType": "IfStatement", - "src": "1692:33:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1716:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 3872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1723:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3873, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1715:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3851, - "id": 3874, - "nodeType": "Return", - "src": "1708:17:27" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3876, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1747:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "id": 3877, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3861, - "src": "1753:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3878, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1746:9:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 3851, - "id": 3879, - "nodeType": "Return", - "src": "1739:16:27" - } - ] - } - ] - }, - "documentation": { - "id": 3841, - "nodeType": "StructuredDocumentation", - "src": "1147:112:27", - "text": " @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow)." - }, - "id": 3882, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryMul", - "nameLocation": "1273:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3843, - "mutability": "mutable", - "name": "a", - "nameLocation": "1288:1:27", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "1280:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3842, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1280:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3845, - "mutability": "mutable", - "name": "b", - "nameLocation": "1299:1:27", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "1291:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3844, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1291:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1279:22:27" - }, - "returnParameters": { - "id": 3851, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3848, - "mutability": "mutable", - "name": "success", - "nameLocation": "1330:7:27", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "1325:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3847, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1325:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3850, - "mutability": "mutable", - "name": "result", - "nameLocation": "1347:6:27", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "1339:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3849, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1339:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1324:30:27" - }, - "scope": 5374, - "src": "1264:508:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3909, - "nodeType": "Block", - "src": "1987:114:27", - "statements": [ - { - "id": 3908, - "nodeType": "UncheckedBlock", - "src": "1997:98:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3894, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "2025:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3895, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2030:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2025:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3901, - "nodeType": "IfStatement", - "src": "2021:29:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 3897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2041:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 3898, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2048:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3899, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2040:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3893, - "id": 3900, - "nodeType": "Return", - "src": "2033:17:27" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3902, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2072:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3903, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "2078:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 3904, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "2082:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2078:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3906, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2071:13:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 3893, - "id": 3907, - "nodeType": "Return", - "src": "2064:20:27" - } - ] - } - ] - }, - "documentation": { - "id": 3883, - "nodeType": "StructuredDocumentation", - "src": "1778:113:27", - "text": " @dev Returns the division of two unsigned integers, with a success flag (no division by zero)." - }, - "id": 3910, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryDiv", - "nameLocation": "1905:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3888, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3885, - "mutability": "mutable", - "name": "a", - "nameLocation": "1920:1:27", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "1912:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3884, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1912:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3887, - "mutability": "mutable", - "name": "b", - "nameLocation": "1931:1:27", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "1923:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3886, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1923:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1911:22:27" - }, - "returnParameters": { - "id": 3893, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3890, - "mutability": "mutable", - "name": "success", - "nameLocation": "1962:7:27", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "1957:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3889, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1957:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3892, - "mutability": "mutable", - "name": "result", - "nameLocation": "1979:6:27", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "1971:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3891, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1971:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1956:30:27" - }, - "scope": 5374, - "src": "1896:205:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3937, - "nodeType": "Block", - "src": "2326:114:27", - "statements": [ - { - "id": 3936, - "nodeType": "UncheckedBlock", - "src": "2336:98:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3922, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3915, - "src": "2364:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2369:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2364:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3929, - "nodeType": "IfStatement", - "src": "2360:29:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2380:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 3926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2387:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 3927, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2379:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 3921, - "id": 3928, - "nodeType": "Return", - "src": "2372:17:27" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2411:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3931, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3913, - "src": "2417:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "id": 3932, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3915, - "src": "2421:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2417:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3934, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2410:13:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 3921, - "id": 3935, - "nodeType": "Return", - "src": "2403:20:27" - } - ] - } - ] - }, - "documentation": { - "id": 3911, - "nodeType": "StructuredDocumentation", - "src": "2107:123:27", - "text": " @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)." - }, - "id": 3938, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryMod", - "nameLocation": "2244:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3916, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3913, - "mutability": "mutable", - "name": "a", - "nameLocation": "2259:1:27", - "nodeType": "VariableDeclaration", - "scope": 3938, - "src": "2251:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2251:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3915, - "mutability": "mutable", - "name": "b", - "nameLocation": "2270:1:27", - "nodeType": "VariableDeclaration", - "scope": 3938, - "src": "2262:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3914, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2262:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2250:22:27" - }, - "returnParameters": { - "id": 3921, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3918, - "mutability": "mutable", - "name": "success", - "nameLocation": "2301:7:27", - "nodeType": "VariableDeclaration", - "scope": 3938, - "src": "2296:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3917, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2296:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3920, - "mutability": "mutable", - "name": "result", - "nameLocation": "2318:6:27", - "nodeType": "VariableDeclaration", - "scope": 3938, - "src": "2310:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3919, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2310:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2295:30:27" - }, - "scope": 5374, - "src": "2235:205:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3964, - "nodeType": "Block", - "src": "2912:207:27", - "statements": [ - { - "id": 3963, - "nodeType": "UncheckedBlock", - "src": "2922:191:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3950, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3945, - "src": "3060:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3951, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3943, - "src": "3066:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "id": 3952, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3945, - "src": "3070:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3066:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3954, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3065:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "id": 3957, - "name": "condition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3941, - "src": "3091:9:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 3955, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "3075:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3084:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "3075:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3075:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3065:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3960, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3064:38:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3060:42:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3949, - "id": 3962, - "nodeType": "Return", - "src": "3053:49:27" - } - ] - } - ] - }, - "documentation": { - "id": 3939, - "nodeType": "StructuredDocumentation", - "src": "2446:374:27", - "text": " @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive." - }, - "id": 3965, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ternary", - "nameLocation": "2834:7:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3941, - "mutability": "mutable", - "name": "condition", - "nameLocation": "2847:9:27", - "nodeType": "VariableDeclaration", - "scope": 3965, - "src": "2842:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3940, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2842:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3943, - "mutability": "mutable", - "name": "a", - "nameLocation": "2866:1:27", - "nodeType": "VariableDeclaration", - "scope": 3965, - "src": "2858:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3942, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2858:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3945, - "mutability": "mutable", - "name": "b", - "nameLocation": "2877:1:27", - "nodeType": "VariableDeclaration", - "scope": 3965, - "src": "2869:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3944, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2869:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2841:38:27" - }, - "returnParameters": { - "id": 3949, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3965, - "src": "2903:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2903:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2902:9:27" - }, - "scope": 5374, - "src": "2825:294:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3983, - "nodeType": "Block", - "src": "3256:44:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3976, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3968, - "src": "3281:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 3977, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3970, - "src": "3285:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3281:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 3979, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3968, - "src": "3288:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 3980, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3970, - "src": "3291:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3975, - "name": "ternary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3965, - "src": "3273:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bool,uint256,uint256) pure returns (uint256)" - } - }, - "id": 3981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3273:20:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3974, - "id": 3982, - "nodeType": "Return", - "src": "3266:27:27" - } - ] - }, - "documentation": { - "id": 3966, - "nodeType": "StructuredDocumentation", - "src": "3125:59:27", - "text": " @dev Returns the largest of two numbers." - }, - "id": 3984, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "max", - "nameLocation": "3198:3:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3971, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3968, - "mutability": "mutable", - "name": "a", - "nameLocation": "3210:1:27", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "3202:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3967, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3202:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3970, - "mutability": "mutable", - "name": "b", - "nameLocation": "3221:1:27", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "3213:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3969, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3213:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3201:22:27" - }, - "returnParameters": { - "id": 3974, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3973, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "3247:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3972, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3247:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3246:9:27" - }, - "scope": 5374, - "src": "3189:111:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4002, - "nodeType": "Block", - "src": "3438:44:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3995, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3987, - "src": "3463:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3996, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3989, - "src": "3467:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3463:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 3998, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3987, - "src": "3470:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 3999, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3989, - "src": "3473:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3994, - "name": "ternary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3965, - "src": "3455:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bool,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3455:20:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3993, - "id": 4001, - "nodeType": "Return", - "src": "3448:27:27" - } - ] - }, - "documentation": { - "id": 3985, - "nodeType": "StructuredDocumentation", - "src": "3306:60:27", - "text": " @dev Returns the smallest of two numbers." - }, - "id": 4003, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "min", - "nameLocation": "3380:3:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3990, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3987, - "mutability": "mutable", - "name": "a", - "nameLocation": "3392:1:27", - "nodeType": "VariableDeclaration", - "scope": 4003, - "src": "3384:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3384:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3989, - "mutability": "mutable", - "name": "b", - "nameLocation": "3403:1:27", - "nodeType": "VariableDeclaration", - "scope": 4003, - "src": "3395:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3988, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3395:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3383:22:27" - }, - "returnParameters": { - "id": 3993, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3992, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4003, - "src": "3429:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3991, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3429:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3428:9:27" - }, - "scope": 5374, - "src": "3371:111:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4025, - "nodeType": "Block", - "src": "3666:82:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4013, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "3721:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "id": 4014, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3725:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3721:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4016, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3720:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4017, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "3731:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "id": 4018, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3735:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3731:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4020, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3730:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "hexValue": "32", - "id": 4021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3740:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "3730:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3720:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4012, - "id": 4024, - "nodeType": "Return", - "src": "3713:28:27" - } - ] - }, - "documentation": { - "id": 4004, - "nodeType": "StructuredDocumentation", - "src": "3488:102:27", - "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." - }, - "id": 4026, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "average", - "nameLocation": "3604:7:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4006, - "mutability": "mutable", - "name": "a", - "nameLocation": "3620:1:27", - "nodeType": "VariableDeclaration", - "scope": 4026, - "src": "3612:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4005, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3612:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4008, - "mutability": "mutable", - "name": "b", - "nameLocation": "3631:1:27", - "nodeType": "VariableDeclaration", - "scope": 4026, - "src": "3623:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4007, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3623:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3611:22:27" - }, - "returnParameters": { - "id": 4012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4011, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4026, - "src": "3657:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4010, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3657:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3656:9:27" - }, - "scope": 5374, - "src": "3595:153:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4066, - "nodeType": "Block", - "src": "4040:633:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4036, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4031, - "src": "4054:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4059:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4054:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4047, - "nodeType": "IfStatement", - "src": "4050:150:27", - "trueBody": { - "id": 4046, - "nodeType": "Block", - "src": "4062:138:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 4042, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "4166:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4172:16:27", - "memberName": "DIVISION_BY_ZERO", - "nodeType": "MemberAccess", - "referencedDeclaration": 3458, - "src": "4166:22:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 4039, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "4154:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4160:5:27", - "memberName": "panic", - "nodeType": "MemberAccess", - "referencedDeclaration": 3490, - "src": "4154:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 4044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4154:35:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4045, - "nodeType": "ExpressionStatement", - "src": "4154:35:27" - } - ] - } - }, - { - "id": 4065, - "nodeType": "UncheckedBlock", - "src": "4583:84:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4050, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "4630:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 4051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4634:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4630:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4048, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "4614:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4623:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "4614:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4614:22:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4054, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "4641:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4055, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4645:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4641:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4057, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4640:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4058, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4031, - "src": "4650:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4640:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 4060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4654:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4640:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4062, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4639:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4614:42:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4035, - "id": 4064, - "nodeType": "Return", - "src": "4607:49:27" - } - ] - } - ] - }, - "documentation": { - "id": 4027, - "nodeType": "StructuredDocumentation", - "src": "3754:210:27", - "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": 4067, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ceilDiv", - "nameLocation": "3978:7:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4029, - "mutability": "mutable", - "name": "a", - "nameLocation": "3994:1:27", - "nodeType": "VariableDeclaration", - "scope": 4067, - "src": "3986:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4028, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3986:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4031, - "mutability": "mutable", - "name": "b", - "nameLocation": "4005:1:27", - "nodeType": "VariableDeclaration", - "scope": 4067, - "src": "3997:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3997:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3985:22:27" - }, - "returnParameters": { - "id": 4035, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4034, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4067, - "src": "4031:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4033, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4031:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4030:9:27" - }, - "scope": 5374, - "src": "3969:704:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4203, - "nodeType": "Block", - "src": "5094:4128:27", - "statements": [ - { - "id": 4202, - "nodeType": "UncheckedBlock", - "src": "5104:4112:27", - "statements": [ - { - "assignments": [ - 4080 - ], - "declarations": [ - { - "constant": false, - "id": 4080, - "mutability": "mutable", - "name": "prod0", - "nameLocation": "5441:5:27", - "nodeType": "VariableDeclaration", - "scope": 4202, - "src": "5433:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4079, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5433:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4084, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4081, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4070, - "src": "5449:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4082, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4072, - "src": "5453:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5449:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5433:21:27" - }, - { - "assignments": [ - 4086 - ], - "declarations": [ - { - "constant": false, - "id": 4086, - "mutability": "mutable", - "name": "prod1", - "nameLocation": "5521:5:27", - "nodeType": "VariableDeclaration", - "scope": 4202, - "src": "5513:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4085, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5513:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4087, - "nodeType": "VariableDeclarationStatement", - "src": "5513:13:27" - }, - { - "AST": { - "nativeSrc": "5593:122:27", - "nodeType": "YulBlock", - "src": "5593:122:27", - "statements": [ - { - "nativeSrc": "5611:30:27", - "nodeType": "YulVariableDeclaration", - "src": "5611:30:27", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "5628:1:27", - "nodeType": "YulIdentifier", - "src": "5628:1:27" - }, - { - "name": "y", - "nativeSrc": "5631:1:27", - "nodeType": "YulIdentifier", - "src": "5631:1:27" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5638:1:27", - "nodeType": "YulLiteral", - "src": "5638:1:27", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "5634:3:27", - "nodeType": "YulIdentifier", - "src": "5634:3:27" - }, - "nativeSrc": "5634:6:27", - "nodeType": "YulFunctionCall", - "src": "5634:6:27" - } - ], - "functionName": { - "name": "mulmod", - "nativeSrc": "5621:6:27", - "nodeType": "YulIdentifier", - "src": "5621:6:27" - }, - "nativeSrc": "5621:20:27", - "nodeType": "YulFunctionCall", - "src": "5621:20:27" - }, - "variables": [ - { - "name": "mm", - "nativeSrc": "5615:2:27", - "nodeType": "YulTypedName", - "src": "5615:2:27", - "type": "" - } - ] - }, - { - "nativeSrc": "5658:43:27", - "nodeType": "YulAssignment", - "src": "5658:43:27", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "mm", - "nativeSrc": "5675:2:27", - "nodeType": "YulIdentifier", - "src": "5675:2:27" - }, - { - "name": "prod0", - "nativeSrc": "5679:5:27", - "nodeType": "YulIdentifier", - "src": "5679:5:27" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5671:3:27", - "nodeType": "YulIdentifier", - "src": "5671:3:27" - }, - "nativeSrc": "5671:14:27", - "nodeType": "YulFunctionCall", - "src": "5671:14:27" - }, - { - "arguments": [ - { - "name": "mm", - "nativeSrc": "5690:2:27", - "nodeType": "YulIdentifier", - "src": "5690:2:27" - }, - { - "name": "prod0", - "nativeSrc": "5694:5:27", - "nodeType": "YulIdentifier", - "src": "5694:5:27" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5687:2:27", - "nodeType": "YulIdentifier", - "src": "5687:2:27" - }, - "nativeSrc": "5687:13:27", - "nodeType": "YulFunctionCall", - "src": "5687:13:27" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5667:3:27", - "nodeType": "YulIdentifier", - "src": "5667:3:27" - }, - "nativeSrc": "5667:34:27", - "nodeType": "YulFunctionCall", - "src": "5667:34:27" - }, - "variableNames": [ - { - "name": "prod1", - "nativeSrc": "5658:5:27", - "nodeType": "YulIdentifier", - "src": "5658:5:27" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "5679:5:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "5694:5:27", - "valueSize": 1 - }, - { - "declaration": 4086, - "isOffset": false, - "isSlot": false, - "src": "5658:5:27", - "valueSize": 1 - }, - { - "declaration": 4070, - "isOffset": false, - "isSlot": false, - "src": "5628:1:27", - "valueSize": 1 - }, - { - "declaration": 4072, - "isOffset": false, - "isSlot": false, - "src": "5631:1:27", - "valueSize": 1 - } - ], - "id": 4088, - "nodeType": "InlineAssembly", - "src": "5584:131:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4089, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "5796:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5805:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5796:10:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4097, - "nodeType": "IfStatement", - "src": "5792:368:27", - "trueBody": { - "id": 4096, - "nodeType": "Block", - "src": "5808:352:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4092, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4080, - "src": "6126:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4093, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "6134:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6126:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4078, - "id": 4095, - "nodeType": "Return", - "src": "6119:26:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4098, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "6270:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 4099, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "6285:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6270:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4116, - "nodeType": "IfStatement", - "src": "6266:143:27", - "trueBody": { - "id": 4115, - "nodeType": "Block", - "src": "6292:117:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4105, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "6330:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6345:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6330:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "expression": { - "id": 4108, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "6348:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6354:16:27", - "memberName": "DIVISION_BY_ZERO", - "nodeType": "MemberAccess", - "referencedDeclaration": 3458, - "src": "6348:22:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 4110, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "6372:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4111, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6378:14:27", - "memberName": "UNDER_OVERFLOW", - "nodeType": "MemberAccess", - "referencedDeclaration": 3454, - "src": "6372:20:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4104, - "name": "ternary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3965, - "src": "6322:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bool,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6322:71:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 4101, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "6310:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6316:5:27", - "memberName": "panic", - "nodeType": "MemberAccess", - "referencedDeclaration": 3490, - "src": "6310:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 4113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6310:84:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4114, - "nodeType": "ExpressionStatement", - "src": "6310:84:27" - } - ] - } - }, - { - "assignments": [ - 4118 - ], - "declarations": [ - { - "constant": false, - "id": 4118, - "mutability": "mutable", - "name": "remainder", - "nameLocation": "6672:9:27", - "nodeType": "VariableDeclaration", - "scope": 4202, - "src": "6664:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6664:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4119, - "nodeType": "VariableDeclarationStatement", - "src": "6664:17:27" - }, - { - "AST": { - "nativeSrc": "6704:291:27", - "nodeType": "YulBlock", - "src": "6704:291:27", - "statements": [ - { - "nativeSrc": "6773:38:27", - "nodeType": "YulAssignment", - "src": "6773:38:27", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "6793:1:27", - "nodeType": "YulIdentifier", - "src": "6793:1:27" - }, - { - "name": "y", - "nativeSrc": "6796:1:27", - "nodeType": "YulIdentifier", - "src": "6796:1:27" - }, - { - "name": "denominator", - "nativeSrc": "6799:11:27", - "nodeType": "YulIdentifier", - "src": "6799:11:27" - } - ], - "functionName": { - "name": "mulmod", - "nativeSrc": "6786:6:27", - "nodeType": "YulIdentifier", - "src": "6786:6:27" - }, - "nativeSrc": "6786:25:27", - "nodeType": "YulFunctionCall", - "src": "6786:25:27" - }, - "variableNames": [ - { - "name": "remainder", - "nativeSrc": "6773:9:27", - "nodeType": "YulIdentifier", - "src": "6773:9:27" - } - ] - }, - { - "nativeSrc": "6893:41:27", - "nodeType": "YulAssignment", - "src": "6893:41:27", - "value": { - "arguments": [ - { - "name": "prod1", - "nativeSrc": "6906:5:27", - "nodeType": "YulIdentifier", - "src": "6906:5:27" - }, - { - "arguments": [ - { - "name": "remainder", - "nativeSrc": "6916:9:27", - "nodeType": "YulIdentifier", - "src": "6916:9:27" - }, - { - "name": "prod0", - "nativeSrc": "6927:5:27", - "nodeType": "YulIdentifier", - "src": "6927:5:27" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "6913:2:27", - "nodeType": "YulIdentifier", - "src": "6913:2:27" - }, - "nativeSrc": "6913:20:27", - "nodeType": "YulFunctionCall", - "src": "6913:20:27" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6902:3:27", - "nodeType": "YulIdentifier", - "src": "6902:3:27" - }, - "nativeSrc": "6902:32:27", - "nodeType": "YulFunctionCall", - "src": "6902:32:27" - }, - "variableNames": [ - { - "name": "prod1", - "nativeSrc": "6893:5:27", - "nodeType": "YulIdentifier", - "src": "6893:5:27" - } - ] - }, - { - "nativeSrc": "6951:30:27", - "nodeType": "YulAssignment", - "src": "6951:30:27", - "value": { - "arguments": [ - { - "name": "prod0", - "nativeSrc": "6964:5:27", - "nodeType": "YulIdentifier", - "src": "6964:5:27" - }, - { - "name": "remainder", - "nativeSrc": "6971:9:27", - "nodeType": "YulIdentifier", - "src": "6971:9:27" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6960:3:27", - "nodeType": "YulIdentifier", - "src": "6960:3:27" - }, - "nativeSrc": "6960:21:27", - "nodeType": "YulFunctionCall", - "src": "6960:21:27" - }, - "variableNames": [ - { - "name": "prod0", - "nativeSrc": "6951:5:27", - "nodeType": "YulIdentifier", - "src": "6951:5:27" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4074, - "isOffset": false, - "isSlot": false, - "src": "6799:11:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "6927:5:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "6951:5:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "6964:5:27", - "valueSize": 1 - }, - { - "declaration": 4086, - "isOffset": false, - "isSlot": false, - "src": "6893:5:27", - "valueSize": 1 - }, - { - "declaration": 4086, - "isOffset": false, - "isSlot": false, - "src": "6906:5:27", - "valueSize": 1 - }, - { - "declaration": 4118, - "isOffset": false, - "isSlot": false, - "src": "6773:9:27", - "valueSize": 1 - }, - { - "declaration": 4118, - "isOffset": false, - "isSlot": false, - "src": "6916:9:27", - "valueSize": 1 - }, - { - "declaration": 4118, - "isOffset": false, - "isSlot": false, - "src": "6971:9:27", - "valueSize": 1 - }, - { - "declaration": 4070, - "isOffset": false, - "isSlot": false, - "src": "6793:1:27", - "valueSize": 1 - }, - { - "declaration": 4072, - "isOffset": false, - "isSlot": false, - "src": "6796:1:27", - "valueSize": 1 - } - ], - "id": 4120, - "nodeType": "InlineAssembly", - "src": "6695:300:27" - }, - { - "assignments": [ - 4122 - ], - "declarations": [ - { - "constant": false, - "id": 4122, - "mutability": "mutable", - "name": "twos", - "nameLocation": "7207:4:27", - "nodeType": "VariableDeclaration", - "scope": 4202, - "src": "7199:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7199:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4129, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4123, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "7214:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "30", - "id": 4124, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7229:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 4125, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "7233:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7229:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4127, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7228:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7214:31:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7199:46:27" - }, - { - "AST": { - "nativeSrc": "7268:366:27", - "nodeType": "YulBlock", - "src": "7268:366:27", - "statements": [ - { - "nativeSrc": "7333:37:27", - "nodeType": "YulAssignment", - "src": "7333:37:27", - "value": { - "arguments": [ - { - "name": "denominator", - "nativeSrc": "7352:11:27", - "nodeType": "YulIdentifier", - "src": "7352:11:27" - }, - { - "name": "twos", - "nativeSrc": "7365:4:27", - "nodeType": "YulIdentifier", - "src": "7365:4:27" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "7348:3:27", - "nodeType": "YulIdentifier", - "src": "7348:3:27" - }, - "nativeSrc": "7348:22:27", - "nodeType": "YulFunctionCall", - "src": "7348:22:27" - }, - "variableNames": [ - { - "name": "denominator", - "nativeSrc": "7333:11:27", - "nodeType": "YulIdentifier", - "src": "7333:11:27" - } - ] - }, - { - "nativeSrc": "7437:25:27", - "nodeType": "YulAssignment", - "src": "7437:25:27", - "value": { - "arguments": [ - { - "name": "prod0", - "nativeSrc": "7450:5:27", - "nodeType": "YulIdentifier", - "src": "7450:5:27" - }, - { - "name": "twos", - "nativeSrc": "7457:4:27", - "nodeType": "YulIdentifier", - "src": "7457:4:27" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "7446:3:27", - "nodeType": "YulIdentifier", - "src": "7446:3:27" - }, - "nativeSrc": "7446:16:27", - "nodeType": "YulFunctionCall", - "src": "7446:16:27" - }, - "variableNames": [ - { - "name": "prod0", - "nativeSrc": "7437:5:27", - "nodeType": "YulIdentifier", - "src": "7437:5:27" - } - ] - }, - { - "nativeSrc": "7581:39:27", - "nodeType": "YulAssignment", - "src": "7581:39:27", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7601:1:27", - "nodeType": "YulLiteral", - "src": "7601:1:27", - "type": "", - "value": "0" - }, - { - "name": "twos", - "nativeSrc": "7604:4:27", - "nodeType": "YulIdentifier", - "src": "7604:4:27" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7597:3:27", - "nodeType": "YulIdentifier", - "src": "7597:3:27" - }, - "nativeSrc": "7597:12:27", - "nodeType": "YulFunctionCall", - "src": "7597:12:27" - }, - { - "name": "twos", - "nativeSrc": "7611:4:27", - "nodeType": "YulIdentifier", - "src": "7611:4:27" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "7593:3:27", - "nodeType": "YulIdentifier", - "src": "7593:3:27" - }, - "nativeSrc": "7593:23:27", - "nodeType": "YulFunctionCall", - "src": "7593:23:27" - }, - { - "kind": "number", - "nativeSrc": "7618:1:27", - "nodeType": "YulLiteral", - "src": "7618:1:27", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7589:3:27", - "nodeType": "YulIdentifier", - "src": "7589:3:27" - }, - "nativeSrc": "7589:31:27", - "nodeType": "YulFunctionCall", - "src": "7589:31:27" - }, - "variableNames": [ - { - "name": "twos", - "nativeSrc": "7581:4:27", - "nodeType": "YulIdentifier", - "src": "7581:4:27" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4074, - "isOffset": false, - "isSlot": false, - "src": "7333:11:27", - "valueSize": 1 - }, - { - "declaration": 4074, - "isOffset": false, - "isSlot": false, - "src": "7352:11:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "7437:5:27", - "valueSize": 1 - }, - { - "declaration": 4080, - "isOffset": false, - "isSlot": false, - "src": "7450:5:27", - "valueSize": 1 - }, - { - "declaration": 4122, - "isOffset": false, - "isSlot": false, - "src": "7365:4:27", - "valueSize": 1 - }, - { - "declaration": 4122, - "isOffset": false, - "isSlot": false, - "src": "7457:4:27", - "valueSize": 1 - }, - { - "declaration": 4122, - "isOffset": false, - "isSlot": false, - "src": "7581:4:27", - "valueSize": 1 - }, - { - "declaration": 4122, - "isOffset": false, - "isSlot": false, - "src": "7604:4:27", - "valueSize": 1 - }, - { - "declaration": 4122, - "isOffset": false, - "isSlot": false, - "src": "7611:4:27", - "valueSize": 1 - } - ], - "id": 4130, - "nodeType": "InlineAssembly", - "src": "7259:375:27" - }, - { - "expression": { - "id": 4135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4131, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4080, - "src": "7700:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4132, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "7709:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4133, - "name": "twos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4122, - "src": "7717:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7709:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7700:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4136, - "nodeType": "ExpressionStatement", - "src": "7700:21:27" - }, - { - "assignments": [ - 4138 - ], - "declarations": [ - { - "constant": false, - "id": 4138, - "mutability": "mutable", - "name": "inverse", - "nameLocation": "8064:7:27", - "nodeType": "VariableDeclaration", - "scope": 4202, - "src": "8056:15:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4137, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8056:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4145, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "33", - "id": 4139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8075:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4140, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8079:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8075:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4142, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8074:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "hexValue": "32", - "id": 4143, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8094:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "8074:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8056:39:27" - }, - { - "expression": { - "id": 4152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4146, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8312:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8323:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4148, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8327:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4149, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8341:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8327:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8323:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8312:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4153, - "nodeType": "ExpressionStatement", - "src": "8312:36:27" - }, - { - "expression": { - "id": 4160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4154, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8382:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4155, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8393:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4156, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8397:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4157, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8411:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8397:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8393:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8382:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4161, - "nodeType": "ExpressionStatement", - "src": "8382:36:27" - }, - { - "expression": { - "id": 4168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4162, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8454:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8465:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4164, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8469:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4165, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8483:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8469:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8465:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8454:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4169, - "nodeType": "ExpressionStatement", - "src": "8454:36:27" - }, - { - "expression": { - "id": 4176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4170, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8525:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8536:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4172, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8540:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4173, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8554:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8540:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8536:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8525:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4177, - "nodeType": "ExpressionStatement", - "src": "8525:36:27" - }, - { - "expression": { - "id": 4184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4178, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8598:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8609:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4180, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8613:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4181, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8627:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8613:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8609:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8598:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4185, - "nodeType": "ExpressionStatement", - "src": "8598:36:27" - }, - { - "expression": { - "id": 4192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4186, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8672:7:27", - "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": { - "hexValue": "32", - "id": 4187, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8683:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4188, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "8687:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4189, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "8701:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8687:21:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8683:25:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8672:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4193, - "nodeType": "ExpressionStatement", - "src": "8672:36:27" - }, - { - "expression": { - "id": 4198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4194, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4077, - "src": "9154:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4195, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4080, - "src": "9163:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4196, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "9171:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9163:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9154:24:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4199, - "nodeType": "ExpressionStatement", - "src": "9154:24:27" - }, - { - "expression": { - "id": 4200, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4077, - "src": "9199:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4078, - "id": 4201, - "nodeType": "Return", - "src": "9192:13:27" - } - ] - } - ] - }, - "documentation": { - "id": 4068, - "nodeType": "StructuredDocumentation", - "src": "4679:312:27", - "text": " @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n 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": 4204, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mulDiv", - "nameLocation": "5005:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4070, - "mutability": "mutable", - "name": "x", - "nameLocation": "5020:1:27", - "nodeType": "VariableDeclaration", - "scope": 4204, - "src": "5012:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4069, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5012:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4072, - "mutability": "mutable", - "name": "y", - "nameLocation": "5031:1:27", - "nodeType": "VariableDeclaration", - "scope": 4204, - "src": "5023:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4074, - "mutability": "mutable", - "name": "denominator", - "nameLocation": "5042:11:27", - "nodeType": "VariableDeclaration", - "scope": 4204, - "src": "5034:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5034:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5011:43:27" - }, - "returnParameters": { - "id": 4078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4077, - "mutability": "mutable", - "name": "result", - "nameLocation": "5086:6:27", - "nodeType": "VariableDeclaration", - "scope": 4204, - "src": "5078:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4076, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5078:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5077:16:27" - }, - "scope": 5374, - "src": "4996:4226:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4240, - "nodeType": "Block", - "src": "9461:128:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4220, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4207, - "src": "9485:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4221, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "9488:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4222, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "9491:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4219, - "name": "mulDiv", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4204, - 4241 - ], - "referencedDeclaration": 4204, - "src": "9478:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9478:25:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4227, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4214, - "src": "9539:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 4226, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "9522:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 4228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9522:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4230, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4207, - "src": "9559:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4231, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4209, - "src": "9562:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4232, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "9565:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4229, - "name": "mulmod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -16, - "src": "9552:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9552:25:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 4234, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9580:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9552:29:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9522:59:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4224, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "9506:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9515:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "9506:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9506:76:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9478:104:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4218, - "id": 4239, - "nodeType": "Return", - "src": "9471:111:27" - } - ] - }, - "documentation": { - "id": 4205, - "nodeType": "StructuredDocumentation", - "src": "9228:118:27", - "text": " @dev Calculates x * y / denominator with full precision, following the selected rounding direction." - }, - "id": 4241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mulDiv", - "nameLocation": "9360:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4207, - "mutability": "mutable", - "name": "x", - "nameLocation": "9375:1:27", - "nodeType": "VariableDeclaration", - "scope": 4241, - "src": "9367:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9367:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4209, - "mutability": "mutable", - "name": "y", - "nameLocation": "9386:1:27", - "nodeType": "VariableDeclaration", - "scope": 4241, - "src": "9378:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4208, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9378:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4211, - "mutability": "mutable", - "name": "denominator", - "nameLocation": "9397:11:27", - "nodeType": "VariableDeclaration", - "scope": 4241, - "src": "9389:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9389:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4214, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "9419:8:27", - "nodeType": "VariableDeclaration", - "scope": 4241, - "src": "9410:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 4213, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4212, - "name": "Rounding", - "nameLocations": [ - "9410:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "9410:8:27" - }, - "referencedDeclaration": 3780, - "src": "9410:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "9366:62:27" - }, - "returnParameters": { - "id": 4218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4217, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4241, - "src": "9452:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9452:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9451:9:27" - }, - "scope": 5374, - "src": "9351:238:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4337, - "nodeType": "Block", - "src": "10223:1849:27", - "statements": [ - { - "id": 4336, - "nodeType": "UncheckedBlock", - "src": "10233:1833:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4251, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4246, - "src": "10261:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10266:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10261:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4256, - "nodeType": "IfStatement", - "src": "10257:20:27", - "trueBody": { - "expression": { - "hexValue": "30", - "id": 4254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10276:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 4250, - "id": 4255, - "nodeType": "Return", - "src": "10269:8:27" - } - }, - { - "assignments": [ - 4258 - ], - "declarations": [ - { - "constant": false, - "id": 4258, - "mutability": "mutable", - "name": "remainder", - "nameLocation": "10756:9:27", - "nodeType": "VariableDeclaration", - "scope": 4336, - "src": "10748:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10748:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4262, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4259, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4244, - "src": "10768:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "id": 4260, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4246, - "src": "10772:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10768:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10748:25:27" - }, - { - "assignments": [ - 4264 - ], - "declarations": [ - { - "constant": false, - "id": 4264, - "mutability": "mutable", - "name": "gcd", - "nameLocation": "10795:3:27", - "nodeType": "VariableDeclaration", - "scope": 4336, - "src": "10787:11:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4263, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10787:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4266, - "initialValue": { - "id": 4265, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4246, - "src": "10801:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10787:15:27" - }, - { - "assignments": [ - 4268 - ], - "declarations": [ - { - "constant": false, - "id": 4268, - "mutability": "mutable", - "name": "x", - "nameLocation": "10945:1:27", - "nodeType": "VariableDeclaration", - "scope": 4336, - "src": "10938:8:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 4267, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "10938:6:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "id": 4270, - "initialValue": { - "hexValue": "30", - "id": 4269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10949:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10938:12:27" - }, - { - "assignments": [ - 4272 - ], - "declarations": [ - { - "constant": false, - "id": 4272, - "mutability": "mutable", - "name": "y", - "nameLocation": "10971:1:27", - "nodeType": "VariableDeclaration", - "scope": 4336, - "src": "10964:8:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 4271, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "10964:6:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "id": 4274, - "initialValue": { - "hexValue": "31", - "id": 4273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10975:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10964:12:27" - }, - { - "body": { - "id": 4311, - "nodeType": "Block", - "src": "11014:882:27", - "statements": [ - { - "assignments": [ - 4279 - ], - "declarations": [ - { - "constant": false, - "id": 4279, - "mutability": "mutable", - "name": "quotient", - "nameLocation": "11040:8:27", - "nodeType": "VariableDeclaration", - "scope": 4311, - "src": "11032:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4278, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11032:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4283, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4280, - "name": "gcd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4264, - "src": "11051:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4281, - "name": "remainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "11057:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11051:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11032:34:27" - }, - { - "expression": { - "id": 4294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - { - "id": 4284, - "name": "gcd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4264, - "src": "11086:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4285, - "name": "remainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "11091:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4286, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "11085:16:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "components": [ - { - "id": 4287, - "name": "remainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "11191:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4288, - "name": "gcd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4264, - "src": "11436:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4289, - "name": "remainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "11442:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4290, - "name": "quotient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4279, - "src": "11454:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11442:20:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11436:26:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4293, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11104:376:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "11085:395:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4295, - "nodeType": "ExpressionStatement", - "src": "11085:395:27" - }, - { - "expression": { - "id": 4309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - { - "id": 4296, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "11500:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - { - "id": 4297, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "11503:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "id": 4298, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "11499:6:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$", - "typeString": "tuple(int256,int256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "components": [ - { - "id": 4299, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "11585:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 4307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4300, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "11839:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 4306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4301, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "11843:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "id": 4304, - "name": "quotient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4279, - "src": "11854:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11847:6:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 4302, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "11847:6:27", - "typeDescriptions": {} - } - }, - "id": 4305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11847:16:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "11843:20:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "11839:24:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "id": 4308, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11508:373:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$", - "typeString": "tuple(int256,int256)" - } - }, - "src": "11499:382:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4310, - "nodeType": "ExpressionStatement", - "src": "11499:382:27" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4275, - "name": "remainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "10998:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11011:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10998:14:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4312, - "nodeType": "WhileStatement", - "src": "10991:905:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4313, - "name": "gcd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4264, - "src": "11914:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "31", - "id": 4314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11921:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11914:8:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4318, - "nodeType": "IfStatement", - "src": "11910:22:27", - "trueBody": { - "expression": { - "hexValue": "30", - "id": 4316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11931:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 4250, - "id": 4317, - "nodeType": "Return", - "src": "11924:8:27" - } - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 4322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4320, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "11983:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "hexValue": "30", - "id": 4321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11987:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11983:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4323, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4246, - "src": "11990:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "arguments": [ - { - "id": 4327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "12002:2:27", - "subExpression": { - "id": 4326, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "12003:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 4325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11994:7:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 4324, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11994:7:27", - "typeDescriptions": {} - } - }, - "id": 4328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11994:11:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11990:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 4332, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "12015:1:27", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 4331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12007:7:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 4330, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12007:7:27", - "typeDescriptions": {} - } - }, - "id": 4333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12007:10:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4319, - "name": "ternary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3965, - "src": "11975:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bool,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11975:43:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4250, - "id": 4335, - "nodeType": "Return", - "src": "11968:50:27" - } - ] - } - ] - }, - "documentation": { - "id": 4242, - "nodeType": "StructuredDocumentation", - "src": "9595:553:27", - "text": " @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}." - }, - "id": 4338, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invMod", - "nameLocation": "10162:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4244, - "mutability": "mutable", - "name": "a", - "nameLocation": "10177:1:27", - "nodeType": "VariableDeclaration", - "scope": 4338, - "src": "10169:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4243, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10169:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4246, - "mutability": "mutable", - "name": "n", - "nameLocation": "10188:1:27", - "nodeType": "VariableDeclaration", - "scope": 4338, - "src": "10180:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4245, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10180:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10168:22:27" - }, - "returnParameters": { - "id": 4250, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4249, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4338, - "src": "10214:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4248, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10214:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10213:9:27" - }, - "scope": 5374, - "src": "10153:1919:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4358, - "nodeType": "Block", - "src": "12672:82:27", - "statements": [ - { - "id": 4357, - "nodeType": "UncheckedBlock", - "src": "12682:66:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 4350, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4341, - "src": "12725:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4351, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4343, - "src": "12728:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "32", - "id": 4352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12732:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12728:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4354, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4343, - "src": "12735:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 4348, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5374, - "src": "12713:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$5374_$", - "typeString": "type(library Math)" - } - }, - "id": 4349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12718:6:27", - "memberName": "modExp", - "nodeType": "MemberAccess", - "referencedDeclaration": 4395, - "src": "12713:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) view returns (uint256)" - } - }, - "id": 4355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12713:24:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4347, - "id": 4356, - "nodeType": "Return", - "src": "12706:31:27" - } - ] - } - ] - }, - "documentation": { - "id": 4339, - "nodeType": "StructuredDocumentation", - "src": "12078:514:27", - "text": " @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n NOTE: this function does NOT check that `p` is a prime greater than `2`." - }, - "id": 4359, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invModPrime", - "nameLocation": "12606:11:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4344, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4341, - "mutability": "mutable", - "name": "a", - "nameLocation": "12626:1:27", - "nodeType": "VariableDeclaration", - "scope": 4359, - "src": "12618:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4340, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12618:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4343, - "mutability": "mutable", - "name": "p", - "nameLocation": "12637:1:27", - "nodeType": "VariableDeclaration", - "scope": 4359, - "src": "12629:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4342, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12629:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12617:22:27" - }, - "returnParameters": { - "id": 4347, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4346, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4359, - "src": "12663:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4345, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12663:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12662:9:27" - }, - "scope": 5374, - "src": "12597:157:27", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4394, - "nodeType": "Block", - "src": "13524:174:27", - "statements": [ - { - "assignments": [ - 4372, - 4374 - ], - "declarations": [ - { - "constant": false, - "id": 4372, - "mutability": "mutable", - "name": "success", - "nameLocation": "13540:7:27", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "13535:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4371, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13535:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4374, - "mutability": "mutable", - "name": "result", - "nameLocation": "13557:6:27", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "13549:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4373, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13549:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4380, - "initialValue": { - "arguments": [ - { - "id": 4376, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4362, - "src": "13577:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4377, - "name": "e", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "13580:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4378, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "13583:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4375, - "name": "tryModExp", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4419, - 4501 - ], - "referencedDeclaration": 4419, - "src": "13567:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) view returns (bool,uint256)" - } - }, - "id": 4379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13567:18:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13534:51:27" - }, - { - "condition": { - "id": 4382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "13599:8:27", - "subExpression": { - "id": 4381, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4372, - "src": "13600:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4391, - "nodeType": "IfStatement", - "src": "13595:74:27", - "trueBody": { - "id": 4390, - "nodeType": "Block", - "src": "13609:60:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 4386, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "13635:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "13641:16:27", - "memberName": "DIVISION_BY_ZERO", - "nodeType": "MemberAccess", - "referencedDeclaration": 3458, - "src": "13635:22:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 4383, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "13623:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13629:5:27", - "memberName": "panic", - "nodeType": "MemberAccess", - "referencedDeclaration": 3490, - "src": "13623:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 4388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13623:35:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4389, - "nodeType": "ExpressionStatement", - "src": "13623:35:27" - } - ] - } - }, - { - "expression": { - "id": 4392, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4374, - "src": "13685:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4370, - "id": 4393, - "nodeType": "Return", - "src": "13678:13:27" - } - ] - }, - "documentation": { - "id": 4360, - "nodeType": "StructuredDocumentation", - "src": "12760:678:27", - "text": " @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0." - }, - "id": 4395, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "modExp", - "nameLocation": "13452:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4362, - "mutability": "mutable", - "name": "b", - "nameLocation": "13467:1:27", - "nodeType": "VariableDeclaration", - "scope": 4395, - "src": "13459:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4361, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13459:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4364, - "mutability": "mutable", - "name": "e", - "nameLocation": "13478:1:27", - "nodeType": "VariableDeclaration", - "scope": 4395, - "src": "13470:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4363, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13470:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4366, - "mutability": "mutable", - "name": "m", - "nameLocation": "13489:1:27", - "nodeType": "VariableDeclaration", - "scope": 4395, - "src": "13481:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13481:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13458:33:27" - }, - "returnParameters": { - "id": 4370, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4369, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4395, - "src": "13515:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4368, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13515:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13514:9:27" - }, - "scope": 5374, - "src": "13443:255:27", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4418, - "nodeType": "Block", - "src": "14552:1493:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4409, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4402, - "src": "14566:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14571:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14566:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4416, - "nodeType": "IfStatement", - "src": "14562:29:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 4412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14582:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 4413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14589:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 4414, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14581:10:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 4408, - "id": 4415, - "nodeType": "Return", - "src": "14574:17:27" - } - }, - { - "AST": { - "nativeSrc": "14626:1413:27", - "nodeType": "YulBlock", - "src": "14626:1413:27", - "statements": [ - { - "nativeSrc": "14640:22:27", - "nodeType": "YulVariableDeclaration", - "src": "14640:22:27", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14657:4:27", - "nodeType": "YulLiteral", - "src": "14657:4:27", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "14651:5:27", - "nodeType": "YulIdentifier", - "src": "14651:5:27" - }, - "nativeSrc": "14651:11:27", - "nodeType": "YulFunctionCall", - "src": "14651:11:27" - }, - "variables": [ - { - "name": "ptr", - "nativeSrc": "14644:3:27", - "nodeType": "YulTypedName", - "src": "14644:3:27", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15570:3:27", - "nodeType": "YulIdentifier", - "src": "15570:3:27" - }, - { - "kind": "number", - "nativeSrc": "15575:4:27", - "nodeType": "YulLiteral", - "src": "15575:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15563:6:27", - "nodeType": "YulIdentifier", - "src": "15563:6:27" - }, - "nativeSrc": "15563:17:27", - "nodeType": "YulFunctionCall", - "src": "15563:17:27" - }, - "nativeSrc": "15563:17:27", - "nodeType": "YulExpressionStatement", - "src": "15563:17:27" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15604:3:27", - "nodeType": "YulIdentifier", - "src": "15604:3:27" - }, - { - "kind": "number", - "nativeSrc": "15609:4:27", - "nodeType": "YulLiteral", - "src": "15609:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15600:3:27", - "nodeType": "YulIdentifier", - "src": "15600:3:27" - }, - "nativeSrc": "15600:14:27", - "nodeType": "YulFunctionCall", - "src": "15600:14:27" - }, - { - "kind": "number", - "nativeSrc": "15616:4:27", - "nodeType": "YulLiteral", - "src": "15616:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15593:6:27", - "nodeType": "YulIdentifier", - "src": "15593:6:27" - }, - "nativeSrc": "15593:28:27", - "nodeType": "YulFunctionCall", - "src": "15593:28:27" - }, - "nativeSrc": "15593:28:27", - "nodeType": "YulExpressionStatement", - "src": "15593:28:27" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15645:3:27", - "nodeType": "YulIdentifier", - "src": "15645:3:27" - }, - { - "kind": "number", - "nativeSrc": "15650:4:27", - "nodeType": "YulLiteral", - "src": "15650:4:27", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15641:3:27", - "nodeType": "YulIdentifier", - "src": "15641:3:27" - }, - "nativeSrc": "15641:14:27", - "nodeType": "YulFunctionCall", - "src": "15641:14:27" - }, - { - "kind": "number", - "nativeSrc": "15657:4:27", - "nodeType": "YulLiteral", - "src": "15657:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15634:6:27", - "nodeType": "YulIdentifier", - "src": "15634:6:27" - }, - "nativeSrc": "15634:28:27", - "nodeType": "YulFunctionCall", - "src": "15634:28:27" - }, - "nativeSrc": "15634:28:27", - "nodeType": "YulExpressionStatement", - "src": "15634:28:27" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15686:3:27", - "nodeType": "YulIdentifier", - "src": "15686:3:27" - }, - { - "kind": "number", - "nativeSrc": "15691:4:27", - "nodeType": "YulLiteral", - "src": "15691:4:27", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15682:3:27", - "nodeType": "YulIdentifier", - "src": "15682:3:27" - }, - "nativeSrc": "15682:14:27", - "nodeType": "YulFunctionCall", - "src": "15682:14:27" - }, - { - "name": "b", - "nativeSrc": "15698:1:27", - "nodeType": "YulIdentifier", - "src": "15698:1:27" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15675:6:27", - "nodeType": "YulIdentifier", - "src": "15675:6:27" - }, - "nativeSrc": "15675:25:27", - "nodeType": "YulFunctionCall", - "src": "15675:25:27" - }, - "nativeSrc": "15675:25:27", - "nodeType": "YulExpressionStatement", - "src": "15675:25:27" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15724:3:27", - "nodeType": "YulIdentifier", - "src": "15724:3:27" - }, - { - "kind": "number", - "nativeSrc": "15729:4:27", - "nodeType": "YulLiteral", - "src": "15729:4:27", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15720:3:27", - "nodeType": "YulIdentifier", - "src": "15720:3:27" - }, - "nativeSrc": "15720:14:27", - "nodeType": "YulFunctionCall", - "src": "15720:14:27" - }, - { - "name": "e", - "nativeSrc": "15736:1:27", - "nodeType": "YulIdentifier", - "src": "15736:1:27" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15713:6:27", - "nodeType": "YulIdentifier", - "src": "15713:6:27" - }, - "nativeSrc": "15713:25:27", - "nodeType": "YulFunctionCall", - "src": "15713:25:27" - }, - "nativeSrc": "15713:25:27", - "nodeType": "YulExpressionStatement", - "src": "15713:25:27" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "15762:3:27", - "nodeType": "YulIdentifier", - "src": "15762:3:27" - }, - { - "kind": "number", - "nativeSrc": "15767:4:27", - "nodeType": "YulLiteral", - "src": "15767:4:27", - "type": "", - "value": "0xa0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15758:3:27", - "nodeType": "YulIdentifier", - "src": "15758:3:27" - }, - "nativeSrc": "15758:14:27", - "nodeType": "YulFunctionCall", - "src": "15758:14:27" - }, - { - "name": "m", - "nativeSrc": "15774:1:27", - "nodeType": "YulIdentifier", - "src": "15774:1:27" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15751:6:27", - "nodeType": "YulIdentifier", - "src": "15751:6:27" - }, - "nativeSrc": "15751:25:27", - "nodeType": "YulFunctionCall", - "src": "15751:25:27" - }, - "nativeSrc": "15751:25:27", - "nodeType": "YulExpressionStatement", - "src": "15751:25:27" - }, - { - "nativeSrc": "15938:57:27", - "nodeType": "YulAssignment", - "src": "15938:57:27", - "value": { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "gas", - "nativeSrc": "15960:3:27", - "nodeType": "YulIdentifier", - "src": "15960:3:27" - }, - "nativeSrc": "15960:5:27", - "nodeType": "YulFunctionCall", - "src": "15960:5:27" - }, - { - "kind": "number", - "nativeSrc": "15967:4:27", - "nodeType": "YulLiteral", - "src": "15967:4:27", - "type": "", - "value": "0x05" - }, - { - "name": "ptr", - "nativeSrc": "15973:3:27", - "nodeType": "YulIdentifier", - "src": "15973:3:27" - }, - { - "kind": "number", - "nativeSrc": "15978:4:27", - "nodeType": "YulLiteral", - "src": "15978:4:27", - "type": "", - "value": "0xc0" - }, - { - "kind": "number", - "nativeSrc": "15984:4:27", - "nodeType": "YulLiteral", - "src": "15984:4:27", - "type": "", - "value": "0x00" - }, - { - "kind": "number", - "nativeSrc": "15990:4:27", - "nodeType": "YulLiteral", - "src": "15990:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "staticcall", - "nativeSrc": "15949:10:27", - "nodeType": "YulIdentifier", - "src": "15949:10:27" - }, - "nativeSrc": "15949:46:27", - "nodeType": "YulFunctionCall", - "src": "15949:46:27" - }, - "variableNames": [ - { - "name": "success", - "nativeSrc": "15938:7:27", - "nodeType": "YulIdentifier", - "src": "15938:7:27" - } - ] - }, - { - "nativeSrc": "16008:21:27", - "nodeType": "YulAssignment", - "src": "16008:21:27", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16024:4:27", - "nodeType": "YulLiteral", - "src": "16024:4:27", - "type": "", - "value": "0x00" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "16018:5:27", - "nodeType": "YulIdentifier", - "src": "16018:5:27" - }, - "nativeSrc": "16018:11:27", - "nodeType": "YulFunctionCall", - "src": "16018:11:27" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "16008:6:27", - "nodeType": "YulIdentifier", - "src": "16008:6:27" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4398, - "isOffset": false, - "isSlot": false, - "src": "15698:1:27", - "valueSize": 1 - }, - { - "declaration": 4400, - "isOffset": false, - "isSlot": false, - "src": "15736:1:27", - "valueSize": 1 - }, - { - "declaration": 4402, - "isOffset": false, - "isSlot": false, - "src": "15774:1:27", - "valueSize": 1 - }, - { - "declaration": 4407, - "isOffset": false, - "isSlot": false, - "src": "16008:6:27", - "valueSize": 1 - }, - { - "declaration": 4405, - "isOffset": false, - "isSlot": false, - "src": "15938:7:27", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 4417, - "nodeType": "InlineAssembly", - "src": "14601:1438:27" - } - ] - }, - "documentation": { - "id": 4396, - "nodeType": "StructuredDocumentation", - "src": "13704:738:27", - "text": " @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0." - }, - "id": 4419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryModExp", - "nameLocation": "14456:9:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4403, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4398, - "mutability": "mutable", - "name": "b", - "nameLocation": "14474:1:27", - "nodeType": "VariableDeclaration", - "scope": 4419, - "src": "14466:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14466:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4400, - "mutability": "mutable", - "name": "e", - "nameLocation": "14485:1:27", - "nodeType": "VariableDeclaration", - "scope": 4419, - "src": "14477:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4399, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14477:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4402, - "mutability": "mutable", - "name": "m", - "nameLocation": "14496:1:27", - "nodeType": "VariableDeclaration", - "scope": 4419, - "src": "14488:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4401, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14488:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14465:33:27" - }, - "returnParameters": { - "id": 4408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4405, - "mutability": "mutable", - "name": "success", - "nameLocation": "14527:7:27", - "nodeType": "VariableDeclaration", - "scope": 4419, - "src": "14522:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4404, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14522:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4407, - "mutability": "mutable", - "name": "result", - "nameLocation": "14544:6:27", - "nodeType": "VariableDeclaration", - "scope": 4419, - "src": "14536:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14536:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14521:30:27" - }, - "scope": 5374, - "src": "14447:1598:27", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4454, - "nodeType": "Block", - "src": "16242:179:27", - "statements": [ - { - "assignments": [ - 4432, - 4434 - ], - "declarations": [ - { - "constant": false, - "id": 4432, - "mutability": "mutable", - "name": "success", - "nameLocation": "16258:7:27", - "nodeType": "VariableDeclaration", - "scope": 4454, - "src": "16253:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4431, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16253:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4434, - "mutability": "mutable", - "name": "result", - "nameLocation": "16280:6:27", - "nodeType": "VariableDeclaration", - "scope": 4454, - "src": "16267:19:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4433, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16267:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 4440, - "initialValue": { - "arguments": [ - { - "id": 4436, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4422, - "src": "16300:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 4437, - "name": "e", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4424, - "src": "16303:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 4438, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4426, - "src": "16306:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4435, - "name": "tryModExp", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4419, - 4501 - ], - "referencedDeclaration": 4501, - "src": "16290:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)" - } - }, - "id": 4439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16290:18:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16252:56:27" - }, - { - "condition": { - "id": 4442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16322:8:27", - "subExpression": { - "id": 4441, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4432, - "src": "16323:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4451, - "nodeType": "IfStatement", - "src": "16318:74:27", - "trueBody": { - "id": 4450, - "nodeType": "Block", - "src": "16332:60:27", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 4446, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "16358:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "16364:16:27", - "memberName": "DIVISION_BY_ZERO", - "nodeType": "MemberAccess", - "referencedDeclaration": 3458, - "src": "16358:22:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 4443, - "name": "Panic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "16346:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Panic_$3491_$", - "typeString": "type(library Panic)" - } - }, - "id": 4445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16352:5:27", - "memberName": "panic", - "nodeType": "MemberAccess", - "referencedDeclaration": 3490, - "src": "16346:11:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 4448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16346:35:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4449, - "nodeType": "ExpressionStatement", - "src": "16346:35:27" - } - ] - } - }, - { - "expression": { - "id": 4452, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4434, - "src": "16408:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 4430, - "id": 4453, - "nodeType": "Return", - "src": "16401:13:27" - } - ] - }, - "documentation": { - "id": 4420, - "nodeType": "StructuredDocumentation", - "src": "16051:85:27", - "text": " @dev Variant of {modExp} that supports inputs of arbitrary length." - }, - "id": 4455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "modExp", - "nameLocation": "16150:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4422, - "mutability": "mutable", - "name": "b", - "nameLocation": "16170:1:27", - "nodeType": "VariableDeclaration", - "scope": 4455, - "src": "16157:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4421, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16157:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4424, - "mutability": "mutable", - "name": "e", - "nameLocation": "16186:1:27", - "nodeType": "VariableDeclaration", - "scope": 4455, - "src": "16173:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4423, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16173:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4426, - "mutability": "mutable", - "name": "m", - "nameLocation": "16202:1:27", - "nodeType": "VariableDeclaration", - "scope": 4455, - "src": "16189:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4425, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16189:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "16156:48:27" - }, - "returnParameters": { - "id": 4430, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4429, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4455, - "src": "16228:12:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4428, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16228:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "16227:14:27" - }, - "scope": 5374, - "src": "16141:280:27", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4500, - "nodeType": "Block", - "src": "16675:771:27", - "statements": [ - { - "condition": { - "arguments": [ - { - "id": 4470, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4462, - "src": "16700:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4469, - "name": "_zeroBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4534, - "src": "16689:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes memory) pure returns (bool)" - } - }, - "id": 4471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16689:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4479, - "nodeType": "IfStatement", - "src": "16685:47:27", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 4472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16712:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 4475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16729:1:27", - "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": 4474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "16719:9:27", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 4473, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16723:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 4476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16719:12:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 4477, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16711:21:27", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "functionReturnParameters": 4468, - "id": 4478, - "nodeType": "Return", - "src": "16704:28:27" - } - }, - { - "assignments": [ - 4481 - ], - "declarations": [ - { - "constant": false, - "id": 4481, - "mutability": "mutable", - "name": "mLen", - "nameLocation": "16751:4:27", - "nodeType": "VariableDeclaration", - "scope": 4500, - "src": "16743:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16743:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4484, - "initialValue": { - "expression": { - "id": 4482, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4462, - "src": "16758:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16760:6:27", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "16758:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16743:23:27" - }, - { - "expression": { - "id": 4497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4485, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4467, - "src": "16848:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 4488, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4458, - "src": "16874:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16876:6:27", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "16874:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 4490, - "name": "e", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4460, - "src": "16884:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16886:6:27", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "16884:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4492, - "name": "mLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4481, - "src": "16894:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4493, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4458, - "src": "16900:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 4494, - "name": "e", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4460, - "src": "16903:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 4495, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4462, - "src": "16906:1:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 4486, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "16857:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "16861:12:27", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "16857:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 4496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16857:51:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "16848:60:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4498, - "nodeType": "ExpressionStatement", - "src": "16848:60:27" - }, - { - "AST": { - "nativeSrc": "16944:496:27", - "nodeType": "YulBlock", - "src": "16944:496:27", - "statements": [ - { - "nativeSrc": "16958:32:27", - "nodeType": "YulVariableDeclaration", - "src": "16958:32:27", - "value": { - "arguments": [ - { - "name": "result", - "nativeSrc": "16977:6:27", - "nodeType": "YulIdentifier", - "src": "16977:6:27" - }, - { - "kind": "number", - "nativeSrc": "16985:4:27", - "nodeType": "YulLiteral", - "src": "16985:4:27", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16973:3:27", - "nodeType": "YulIdentifier", - "src": "16973:3:27" - }, - "nativeSrc": "16973:17:27", - "nodeType": "YulFunctionCall", - "src": "16973:17:27" - }, - "variables": [ - { - "name": "dataPtr", - "nativeSrc": "16962:7:27", - "nodeType": "YulTypedName", - "src": "16962:7:27", - "type": "" - } - ] - }, - { - "nativeSrc": "17080:73:27", - "nodeType": "YulAssignment", - "src": "17080:73:27", - "value": { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "gas", - "nativeSrc": "17102:3:27", - "nodeType": "YulIdentifier", - "src": "17102:3:27" - }, - "nativeSrc": "17102:5:27", - "nodeType": "YulFunctionCall", - "src": "17102:5:27" - }, - { - "kind": "number", - "nativeSrc": "17109:4:27", - "nodeType": "YulLiteral", - "src": "17109:4:27", - "type": "", - "value": "0x05" - }, - { - "name": "dataPtr", - "nativeSrc": "17115:7:27", - "nodeType": "YulIdentifier", - "src": "17115:7:27" - }, - { - "arguments": [ - { - "name": "result", - "nativeSrc": "17130:6:27", - "nodeType": "YulIdentifier", - "src": "17130:6:27" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "17124:5:27", - "nodeType": "YulIdentifier", - "src": "17124:5:27" - }, - "nativeSrc": "17124:13:27", - "nodeType": "YulFunctionCall", - "src": "17124:13:27" - }, - { - "name": "dataPtr", - "nativeSrc": "17139:7:27", - "nodeType": "YulIdentifier", - "src": "17139:7:27" - }, - { - "name": "mLen", - "nativeSrc": "17148:4:27", - "nodeType": "YulIdentifier", - "src": "17148:4:27" - } - ], - "functionName": { - "name": "staticcall", - "nativeSrc": "17091:10:27", - "nodeType": "YulIdentifier", - "src": "17091:10:27" - }, - "nativeSrc": "17091:62:27", - "nodeType": "YulFunctionCall", - "src": "17091:62:27" - }, - "variableNames": [ - { - "name": "success", - "nativeSrc": "17080:7:27", - "nodeType": "YulIdentifier", - "src": "17080:7:27" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "result", - "nativeSrc": "17309:6:27", - "nodeType": "YulIdentifier", - "src": "17309:6:27" - }, - { - "name": "mLen", - "nativeSrc": "17317:4:27", - "nodeType": "YulIdentifier", - "src": "17317:4:27" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17302:6:27", - "nodeType": "YulIdentifier", - "src": "17302:6:27" - }, - "nativeSrc": "17302:20:27", - "nodeType": "YulFunctionCall", - "src": "17302:20:27" - }, - "nativeSrc": "17302:20:27", - "nodeType": "YulExpressionStatement", - "src": "17302:20:27" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "17405:4:27", - "nodeType": "YulLiteral", - "src": "17405:4:27", - "type": "", - "value": "0x40" - }, - { - "arguments": [ - { - "name": "dataPtr", - "nativeSrc": "17415:7:27", - "nodeType": "YulIdentifier", - "src": "17415:7:27" - }, - { - "name": "mLen", - "nativeSrc": "17424:4:27", - "nodeType": "YulIdentifier", - "src": "17424:4:27" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17411:3:27", - "nodeType": "YulIdentifier", - "src": "17411:3:27" - }, - "nativeSrc": "17411:18:27", - "nodeType": "YulFunctionCall", - "src": "17411:18:27" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17398:6:27", - "nodeType": "YulIdentifier", - "src": "17398:6:27" - }, - "nativeSrc": "17398:32:27", - "nodeType": "YulFunctionCall", - "src": "17398:32:27" - }, - "nativeSrc": "17398:32:27", - "nodeType": "YulExpressionStatement", - "src": "17398:32:27" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4481, - "isOffset": false, - "isSlot": false, - "src": "17148:4:27", - "valueSize": 1 - }, - { - "declaration": 4481, - "isOffset": false, - "isSlot": false, - "src": "17317:4:27", - "valueSize": 1 - }, - { - "declaration": 4481, - "isOffset": false, - "isSlot": false, - "src": "17424:4:27", - "valueSize": 1 - }, - { - "declaration": 4467, - "isOffset": false, - "isSlot": false, - "src": "16977:6:27", - "valueSize": 1 - }, - { - "declaration": 4467, - "isOffset": false, - "isSlot": false, - "src": "17130:6:27", - "valueSize": 1 - }, - { - "declaration": 4467, - "isOffset": false, - "isSlot": false, - "src": "17309:6:27", - "valueSize": 1 - }, - { - "declaration": 4465, - "isOffset": false, - "isSlot": false, - "src": "17080:7:27", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 4499, - "nodeType": "InlineAssembly", - "src": "16919:521:27" - } - ] - }, - "documentation": { - "id": 4456, - "nodeType": "StructuredDocumentation", - "src": "16427:88:27", - "text": " @dev Variant of {tryModExp} that supports inputs of arbitrary length." - }, - "id": 4501, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryModExp", - "nameLocation": "16529:9:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4458, - "mutability": "mutable", - "name": "b", - "nameLocation": "16561:1:27", - "nodeType": "VariableDeclaration", - "scope": 4501, - "src": "16548:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4457, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16548:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4460, - "mutability": "mutable", - "name": "e", - "nameLocation": "16585:1:27", - "nodeType": "VariableDeclaration", - "scope": 4501, - "src": "16572:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4459, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16572:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4462, - "mutability": "mutable", - "name": "m", - "nameLocation": "16609:1:27", - "nodeType": "VariableDeclaration", - "scope": 4501, - "src": "16596:14:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4461, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16596:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "16538:78:27" - }, - "returnParameters": { - "id": 4468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4465, - "mutability": "mutable", - "name": "success", - "nameLocation": "16645:7:27", - "nodeType": "VariableDeclaration", - "scope": 4501, - "src": "16640:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4464, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16640:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4467, - "mutability": "mutable", - "name": "result", - "nameLocation": "16667:6:27", - "nodeType": "VariableDeclaration", - "scope": 4501, - "src": "16654:19:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4466, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16654:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "16639:35:27" - }, - "scope": 5374, - "src": "16520:926:27", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4533, - "nodeType": "Block", - "src": "17601:176:27", - "statements": [ - { - "body": { - "id": 4529, - "nodeType": "Block", - "src": "17658:92:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 4524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 4520, - "name": "byteArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4504, - "src": "17676:9:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4522, - "indexExpression": { - "id": 4521, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4510, - "src": "17686:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17676:12:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 4523, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17692:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17676:17:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4528, - "nodeType": "IfStatement", - "src": "17672:68:27", - "trueBody": { - "id": 4527, - "nodeType": "Block", - "src": "17695:45:27", - "statements": [ - { - "expression": { - "hexValue": "66616c7365", - "id": 4525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17720:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 4508, - "id": 4526, - "nodeType": "Return", - "src": "17713:12:27" - } - ] - } - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4513, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4510, - "src": "17631:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 4514, - "name": "byteArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4504, - "src": "17635:9:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17645:6:27", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "17635:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17631:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4530, - "initializationExpression": { - "assignments": [ - 4510 - ], - "declarations": [ - { - "constant": false, - "id": 4510, - "mutability": "mutable", - "name": "i", - "nameLocation": "17624:1:27", - "nodeType": "VariableDeclaration", - "scope": 4530, - "src": "17616:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4509, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17616:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4512, - "initialValue": { - "hexValue": "30", - "id": 4511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17628:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "17616:13:27" - }, - "isSimpleCounterLoop": true, - "loopExpression": { - "expression": { - "id": 4518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "17653:3:27", - "subExpression": { - "id": 4517, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4510, - "src": "17655:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4519, - "nodeType": "ExpressionStatement", - "src": "17653:3:27" - }, - "nodeType": "ForStatement", - "src": "17611:139:27" - }, - { - "expression": { - "hexValue": "74727565", - "id": 4531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17766:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 4508, - "id": 4532, - "nodeType": "Return", - "src": "17759:11:27" - } - ] - }, - "documentation": { - "id": 4502, - "nodeType": "StructuredDocumentation", - "src": "17452:72:27", - "text": " @dev Returns whether the provided byte array is zero." - }, - "id": 4534, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_zeroBytes", - "nameLocation": "17538:10:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4504, - "mutability": "mutable", - "name": "byteArray", - "nameLocation": "17562:9:27", - "nodeType": "VariableDeclaration", - "scope": 4534, - "src": "17549:22:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4503, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "17549:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "17548:24:27" - }, - "returnParameters": { - "id": 4508, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4507, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4534, - "src": "17595:4:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4506, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17595:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "17594:6:27" - }, - "scope": 5374, - "src": "17529:248:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 4752, - "nodeType": "Block", - "src": "18137:5124:27", - "statements": [ - { - "id": 4751, - "nodeType": "UncheckedBlock", - "src": "18147:5108:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4542, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "18241:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "hexValue": "31", - "id": 4543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18246:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "18241:6:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4548, - "nodeType": "IfStatement", - "src": "18237:53:27", - "trueBody": { - "id": 4547, - "nodeType": "Block", - "src": "18249:41:27", - "statements": [ - { - "expression": { - "id": 4545, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "18274:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4541, - "id": 4546, - "nodeType": "Return", - "src": "18267:8:27" - } - ] - } - }, - { - "assignments": [ - 4550 - ], - "declarations": [ - { - "constant": false, - "id": 4550, - "mutability": "mutable", - "name": "aa", - "nameLocation": "19225:2:27", - "nodeType": "VariableDeclaration", - "scope": 4751, - "src": "19217:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4549, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19217:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4552, - "initialValue": { - "id": 4551, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "19230:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19217:14:27" - }, - { - "assignments": [ - 4554 - ], - "declarations": [ - { - "constant": false, - "id": 4554, - "mutability": "mutable", - "name": "xn", - "nameLocation": "19253:2:27", - "nodeType": "VariableDeclaration", - "scope": 4751, - "src": "19245:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4553, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19245:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4556, - "initialValue": { - "hexValue": "31", - "id": 4555, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19258:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19245:14:27" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4557, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19278:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - }, - "id": 4560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19285:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "313238", - "id": 4559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19290:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "19285:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - } - ], - "id": 4561, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19284:10:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - }, - "src": "19278:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4572, - "nodeType": "IfStatement", - "src": "19274:92:27", - "trueBody": { - "id": 4571, - "nodeType": "Block", - "src": "19296:70:27", - "statements": [ - { - "expression": { - "id": 4565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4563, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19314:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "313238", - "id": 4564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19321:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "19314:10:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4566, - "nodeType": "ExpressionStatement", - "src": "19314:10:27" - }, - { - "expression": { - "id": 4569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4567, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19342:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "3634", - "id": 4568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19349:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "19342:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4570, - "nodeType": "ExpressionStatement", - "src": "19342:9:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4573, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19383:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - }, - "id": 4576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4574, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19390:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3634", - "id": 4575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19395:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "19390:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - } - ], - "id": 4577, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19389:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - }, - "src": "19383:15:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4588, - "nodeType": "IfStatement", - "src": "19379:90:27", - "trueBody": { - "id": 4587, - "nodeType": "Block", - "src": "19400:69:27", - "statements": [ - { - "expression": { - "id": 4581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4579, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19418:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3634", - "id": 4580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19425:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "19418:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4582, - "nodeType": "ExpressionStatement", - "src": "19418:9:27" - }, - { - "expression": { - "id": 4585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4583, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19445:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "3332", - "id": 4584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19452:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "19445:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4586, - "nodeType": "ExpressionStatement", - "src": "19445:9:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4589, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19486:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - }, - "id": 4592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19493:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3332", - "id": 4591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19498:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "19493:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - } - ], - "id": 4593, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19492:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - }, - "src": "19486:15:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4604, - "nodeType": "IfStatement", - "src": "19482:90:27", - "trueBody": { - "id": 4603, - "nodeType": "Block", - "src": "19503:69:27", - "statements": [ - { - "expression": { - "id": 4597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4595, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19521:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3332", - "id": 4596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19528:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "19521:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4598, - "nodeType": "ExpressionStatement", - "src": "19521:9:27" - }, - { - "expression": { - "id": 4601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4599, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19548:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "3136", - "id": 4600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19555:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "19548:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4602, - "nodeType": "ExpressionStatement", - "src": "19548:9:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4605, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19589:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - }, - "id": 4608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19596:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3136", - "id": 4607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19601:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "19596:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - } - ], - "id": 4609, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19595:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - }, - "src": "19589:15:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4620, - "nodeType": "IfStatement", - "src": "19585:89:27", - "trueBody": { - "id": 4619, - "nodeType": "Block", - "src": "19606:68:27", - "statements": [ - { - "expression": { - "id": 4613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4611, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19624:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3136", - "id": 4612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19631:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "19624:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4614, - "nodeType": "ExpressionStatement", - "src": "19624:9:27" - }, - { - "expression": { - "id": 4617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4615, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19651:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "38", - "id": 4616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19658:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "19651:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4618, - "nodeType": "ExpressionStatement", - "src": "19651:8:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4621, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19691:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - }, - "id": 4624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19698:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "38", - "id": 4623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19703:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "19698:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - } - ], - "id": 4625, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19697:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - }, - "src": "19691:14:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4636, - "nodeType": "IfStatement", - "src": "19687:87:27", - "trueBody": { - "id": 4635, - "nodeType": "Block", - "src": "19707:67:27", - "statements": [ - { - "expression": { - "id": 4629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4627, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19725:2:27", - "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": "19732:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "19725:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4630, - "nodeType": "ExpressionStatement", - "src": "19725:8:27" - }, - { - "expression": { - "id": 4633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4631, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19751:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "34", - "id": 4632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19758:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "19751:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4634, - "nodeType": "ExpressionStatement", - "src": "19751:8:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4637, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19791:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "id": 4640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19798:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "34", - "id": 4639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19803:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "19798:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - } - } - ], - "id": 4641, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19797:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - } - }, - "src": "19791:14:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4652, - "nodeType": "IfStatement", - "src": "19787:87:27", - "trueBody": { - "id": 4651, - "nodeType": "Block", - "src": "19807:67:27", - "statements": [ - { - "expression": { - "id": 4645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4643, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19825:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "34", - "id": 4644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "19825:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4646, - "nodeType": "ExpressionStatement", - "src": "19825:8:27" - }, - { - "expression": { - "id": 4649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4647, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19851:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "32", - "id": 4648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19858:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "19851:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4650, - "nodeType": "ExpressionStatement", - "src": "19851:8:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4653, - "name": "aa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4550, - "src": "19891:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "id": 4656, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19898:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "32", - "id": 4655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19903:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "19898:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - } - } - ], - "id": 4657, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19897:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - } - }, - "src": "19891:14:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4664, - "nodeType": "IfStatement", - "src": "19887:61:27", - "trueBody": { - "id": 4663, - "nodeType": "Block", - "src": "19907:41:27", - "statements": [ - { - "expression": { - "id": 4661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4659, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "19925:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "hexValue": "31", - "id": 4660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19932:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "19925:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4662, - "nodeType": "ExpressionStatement", - "src": "19925:8:27" - } - ] - } - }, - { - "expression": { - "id": 4672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4665, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "20368:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "33", - "id": 4666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20374:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4667, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "20378:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20374:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4669, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20373:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4670, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20385:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "20373:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20368:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4673, - "nodeType": "ExpressionStatement", - "src": "20368:18:27" - }, - { - "expression": { - "id": 4683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4674, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22273:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4675, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22279:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4676, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22284:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4677, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22288:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22284:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22279:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4680, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22278:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4681, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22295:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22278:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22273:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4684, - "nodeType": "ExpressionStatement", - "src": "22273:23:27" - }, - { - "expression": { - "id": 4694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4685, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22382:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4686, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22388:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4687, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22393:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4688, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22397:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22393:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22388:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4691, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22387:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22404:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22387:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22382:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4695, - "nodeType": "ExpressionStatement", - "src": "22382:23:27" - }, - { - "expression": { - "id": 4705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4696, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22493:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4697, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22499:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4698, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22504:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4699, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22508:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22504:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22499:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4702, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22498:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22515:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22498:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22493:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4706, - "nodeType": "ExpressionStatement", - "src": "22493:23:27" - }, - { - "expression": { - "id": 4716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4707, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22602:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4708, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22608:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4709, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22613:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4710, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22617:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22613:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22608:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4713, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22607:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22624:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22607:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22602:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4717, - "nodeType": "ExpressionStatement", - "src": "22602:23:27" - }, - { - "expression": { - "id": 4727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4718, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22712:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4719, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22718:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4720, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22723:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4721, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22727:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22723:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22718:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4724, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22717:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22734:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22717:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22712:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4728, - "nodeType": "ExpressionStatement", - "src": "22712:23:27" - }, - { - "expression": { - "id": 4738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4729, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22822:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4730, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22828:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4731, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "22833:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4732, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "22837:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22833:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22828:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4735, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22827:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 4736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22844:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22827:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22822:23:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4739, - "nodeType": "ExpressionStatement", - "src": "22822:23:27" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4740, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "23211:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4743, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "23232:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4744, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4537, - "src": "23237:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4745, - "name": "xn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4554, - "src": "23241:2:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23237:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23232:11:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4741, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "23216:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23225:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "23216:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23216:28:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23211:33:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4541, - "id": 4750, - "nodeType": "Return", - "src": "23204:40:27" - } - ] - } - ] - }, - "documentation": { - "id": 4535, - "nodeType": "StructuredDocumentation", - "src": "17783:292:27", - "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 This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations." - }, - "id": 4753, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sqrt", - "nameLocation": "18089:4:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4537, - "mutability": "mutable", - "name": "a", - "nameLocation": "18102:1:27", - "nodeType": "VariableDeclaration", - "scope": 4753, - "src": "18094:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4536, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18094:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "18093:11:27" - }, - "returnParameters": { - "id": 4541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4540, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4753, - "src": "18128:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18128:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "18127:9:27" - }, - "scope": 5374, - "src": "18080:5181:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4786, - "nodeType": "Block", - "src": "23434:171:27", - "statements": [ - { - "id": 4785, - "nodeType": "UncheckedBlock", - "src": "23444:155:27", - "statements": [ - { - "assignments": [ - 4765 - ], - "declarations": [ - { - "constant": false, - "id": 4765, - "mutability": "mutable", - "name": "result", - "nameLocation": "23476:6:27", - "nodeType": "VariableDeclaration", - "scope": 4785, - "src": "23468:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4764, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23468:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4769, - "initialValue": { - "arguments": [ - { - "id": 4767, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4756, - "src": "23490:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4766, - "name": "sqrt", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4753, - 4787 - ], - "referencedDeclaration": 4753, - "src": "23485:4:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 4768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23485:7:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23468:24:27" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4770, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4765, - "src": "23513:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4774, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4759, - "src": "23555:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 4773, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "23538:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 4775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23538:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4776, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4765, - "src": "23568:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4777, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4765, - "src": "23577:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23568:15:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 4779, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4756, - "src": "23586:1:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23568:19:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "23538:49:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4771, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "23522:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23531:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "23522:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23522:66:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23513:75:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4763, - "id": 4784, - "nodeType": "Return", - "src": "23506:82:27" - } - ] - } - ] - }, - "documentation": { - "id": 4754, - "nodeType": "StructuredDocumentation", - "src": "23267:86:27", - "text": " @dev Calculates sqrt(a), following the selected rounding direction." - }, - "id": 4787, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sqrt", - "nameLocation": "23367:4:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4756, - "mutability": "mutable", - "name": "a", - "nameLocation": "23380:1:27", - "nodeType": "VariableDeclaration", - "scope": 4787, - "src": "23372:9:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4755, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23372:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4759, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "23392:8:27", - "nodeType": "VariableDeclaration", - "scope": 4787, - "src": "23383:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 4758, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4757, - "name": "Rounding", - "nameLocations": [ - "23383:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "23383:8:27" - }, - "referencedDeclaration": 3780, - "src": "23383:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "23371:30:27" - }, - "returnParameters": { - "id": 4763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4762, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4787, - "src": "23425:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4761, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23425:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23424:9:27" - }, - "scope": 5374, - "src": "23358:247:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4982, - "nodeType": "Block", - "src": "23796:981:27", - "statements": [ - { - "assignments": [ - 4796 - ], - "declarations": [ - { - "constant": false, - "id": 4796, - "mutability": "mutable", - "name": "result", - "nameLocation": "23814:6:27", - "nodeType": "VariableDeclaration", - "scope": 4982, - "src": "23806:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4795, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23806:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4798, - "initialValue": { - "hexValue": "30", - "id": 4797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23823:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "23806:18:27" - }, - { - "assignments": [ - 4800 - ], - "declarations": [ - { - "constant": false, - "id": 4800, - "mutability": "mutable", - "name": "exp", - "nameLocation": "23842:3:27", - "nodeType": "VariableDeclaration", - "scope": 4982, - "src": "23834:11:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4799, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23834:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4801, - "nodeType": "VariableDeclarationStatement", - "src": "23834:11:27" - }, - { - "id": 4979, - "nodeType": "UncheckedBlock", - "src": "23855:893:27", - "statements": [ - { - "expression": { - "id": 4816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4802, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "23879:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "313238", - "id": 4803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23885:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4806, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "23907:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1455" - }, - "id": 4812, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - }, - "id": 4809, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23916:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "313238", - "id": 4808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23921:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "23916:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - } - ], - "id": 4810, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23915:10:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23928:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "23915:14:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1455" - } - }, - "src": "23907:22:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4804, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "23891:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23900:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "23891:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23891:39:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23885:45:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23879:51:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4817, - "nodeType": "ExpressionStatement", - "src": "23879:51:27" - }, - { - "expression": { - "id": 4820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4818, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "23944:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4819, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "23954:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23944:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4821, - "nodeType": "ExpressionStatement", - "src": "23944:13:27" - }, - { - "expression": { - "id": 4824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4822, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "23971:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4823, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "23981:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23971:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4825, - "nodeType": "ExpressionStatement", - "src": "23971:13:27" - }, - { - "expression": { - "id": 4840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4826, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "23999:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3634", - "id": 4827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24005:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4830, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24026:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_18446744073709551615_by_1", - "typeString": "int_const 18446744073709551615" - }, - "id": 4836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - }, - "id": 4833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24035:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3634", - "id": 4832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24040:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "24035:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - } - ], - "id": 4834, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24034:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4835, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24046:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24034:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551615_by_1", - "typeString": "int_const 18446744073709551615" - } - }, - "src": "24026:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4828, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24010:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24019:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24010:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24010:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24005:43:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23999:49:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4841, - "nodeType": "ExpressionStatement", - "src": "23999:49:27" - }, - { - "expression": { - "id": 4844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4842, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24062:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4843, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24072:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24062:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4845, - "nodeType": "ExpressionStatement", - "src": "24062:13:27" - }, - { - "expression": { - "id": 4848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4846, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24089:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4847, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24099:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24089:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4849, - "nodeType": "ExpressionStatement", - "src": "24089:13:27" - }, - { - "expression": { - "id": 4864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4850, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24117:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3332", - "id": 4851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24123:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4854, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24144:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "id": 4860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - }, - "id": 4857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24153:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3332", - "id": 4856, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24158:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "24153:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - } - ], - "id": 4858, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24152:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24164:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24152:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - } - }, - "src": "24144:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4852, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24128:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24137:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24128:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24128:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24123:43:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24117:49:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4865, - "nodeType": "ExpressionStatement", - "src": "24117:49:27" - }, - { - "expression": { - "id": 4868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4866, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24180:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4867, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24190:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24180:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4869, - "nodeType": "ExpressionStatement", - "src": "24180:13:27" - }, - { - "expression": { - "id": 4872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4870, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24207:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4871, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24217:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24207:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4873, - "nodeType": "ExpressionStatement", - "src": "24207:13:27" - }, - { - "expression": { - "id": 4888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4874, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24235:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3136", - "id": 4875, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24241:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4878, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24262:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_65535_by_1", - "typeString": "int_const 65535" - }, - "id": 4884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - }, - "id": 4881, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24271:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3136", - "id": 4880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24276:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "24271:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - } - ], - "id": 4882, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24270:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4883, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24282:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24270:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65535_by_1", - "typeString": "int_const 65535" - } - }, - "src": "24262:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4876, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24246:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24255:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24246:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24246:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24241:43:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24235:49:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4889, - "nodeType": "ExpressionStatement", - "src": "24235:49:27" - }, - { - "expression": { - "id": 4892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4890, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24298:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4891, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24308:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24298:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4893, - "nodeType": "ExpressionStatement", - "src": "24298:13:27" - }, - { - "expression": { - "id": 4896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4894, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24325:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4895, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24335:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24325:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4897, - "nodeType": "ExpressionStatement", - "src": "24325:13:27" - }, - { - "expression": { - "id": 4912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4898, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24353:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "38", - "id": 4899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24359:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4902, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24379:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "id": 4908, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - }, - "id": 4905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4903, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24388:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "38", - "id": 4904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24393:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "24388:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - } - ], - "id": 4906, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24387:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24398:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24387:12:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - } - }, - "src": "24379:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4900, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24363:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24372:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24363:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24363:37:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24359:41:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24353:47:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4913, - "nodeType": "ExpressionStatement", - "src": "24353:47:27" - }, - { - "expression": { - "id": 4916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4914, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24414:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4915, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24424:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24414:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4917, - "nodeType": "ExpressionStatement", - "src": "24414:13:27" - }, - { - "expression": { - "id": 4920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4918, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24441:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4919, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24451:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24441:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4921, - "nodeType": "ExpressionStatement", - "src": "24441:13:27" - }, - { - "expression": { - "id": 4936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4922, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24469:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "34", - "id": 4923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24475:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4926, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24495:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_15_by_1", - "typeString": "int_const 15" - }, - "id": 4932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "id": 4929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24504:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "34", - "id": 4928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24509:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "24504:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - } - } - ], - "id": 4930, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24503:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4931, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24514:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24503:12:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_15_by_1", - "typeString": "int_const 15" - } - }, - "src": "24495:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4924, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24479:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24488:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24479:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24479:37:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24475:41:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24469:47:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4937, - "nodeType": "ExpressionStatement", - "src": "24469:47:27" - }, - { - "expression": { - "id": 4940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4938, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24530:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4939, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24540:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24530:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4941, - "nodeType": "ExpressionStatement", - "src": "24530:13:27" - }, - { - "expression": { - "id": 4944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4942, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24557:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4943, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24567:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24557:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4945, - "nodeType": "ExpressionStatement", - "src": "24557:13:27" - }, - { - "expression": { - "id": 4960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4946, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24585:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 4947, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24591:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4950, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24611:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "id": 4956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "id": 4953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 4951, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24620:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "32", - "id": 4952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24625:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "24620:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - } - } - ], - "id": 4954, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24619:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24630:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24619:12:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - } - }, - "src": "24611:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4948, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24595:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24604:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24595:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24595:37:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24591:41:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24585:47:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4961, - "nodeType": "ExpressionStatement", - "src": "24585:47:27" - }, - { - "expression": { - "id": 4964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4962, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24646:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "id": 4963, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24656:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24646:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4965, - "nodeType": "ExpressionStatement", - "src": "24646:13:27" - }, - { - "expression": { - "id": 4968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4966, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24673:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 4967, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4800, - "src": "24683:3:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24673:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4969, - "nodeType": "ExpressionStatement", - "src": "24673:13:27" - }, - { - "expression": { - "id": 4977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4970, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24701:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4973, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4790, - "src": "24727:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "31", - "id": 4974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24735:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24727:9:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 4971, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "24711:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 4972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24720:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "24711:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 4976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24711:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24701:36:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4978, - "nodeType": "ExpressionStatement", - "src": "24701:36:27" - } - ] - }, - { - "expression": { - "id": 4980, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "24764:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4794, - "id": 4981, - "nodeType": "Return", - "src": "24757:13:27" - } - ] - }, - "documentation": { - "id": 4788, - "nodeType": "StructuredDocumentation", - "src": "23611:119:27", - "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." - }, - "id": 4983, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log2", - "nameLocation": "23744:4:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4790, - "mutability": "mutable", - "name": "value", - "nameLocation": "23757:5:27", - "nodeType": "VariableDeclaration", - "scope": 4983, - "src": "23749:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4789, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23749:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23748:15:27" - }, - "returnParameters": { - "id": 4794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4793, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4983, - "src": "23787:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23787:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23786:9:27" - }, - "scope": 5374, - "src": "23735:1042:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5016, - "nodeType": "Block", - "src": "25010:175:27", - "statements": [ - { - "id": 5015, - "nodeType": "UncheckedBlock", - "src": "25020:159:27", - "statements": [ - { - "assignments": [ - 4995 - ], - "declarations": [ - { - "constant": false, - "id": 4995, - "mutability": "mutable", - "name": "result", - "nameLocation": "25052:6:27", - "nodeType": "VariableDeclaration", - "scope": 5015, - "src": "25044:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4994, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4999, - "initialValue": { - "arguments": [ - { - "id": 4997, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4986, - "src": "25066:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4996, - "name": "log2", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4983, - 5017 - ], - "referencedDeclaration": 4983, - "src": "25061:4:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 4998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25061:11:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25044:28:27" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5000, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4995, - "src": "25093:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 5004, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4989, - "src": "25135:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 5003, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "25118:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25118:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25148:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "id": 5007, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4995, - "src": "25153:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25148:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 5009, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4986, - "src": "25162:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25148:19:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25118:49:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5001, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "25102:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25111:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "25102:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25102:66:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25093:75:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4993, - "id": 5014, - "nodeType": "Return", - "src": "25086:82:27" - } - ] - } - ] - }, - "documentation": { - "id": 4984, - "nodeType": "StructuredDocumentation", - "src": "24783:142:27", - "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." - }, - "id": 5017, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log2", - "nameLocation": "24939:4:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4990, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4986, - "mutability": "mutable", - "name": "value", - "nameLocation": "24952:5:27", - "nodeType": "VariableDeclaration", - "scope": 5017, - "src": "24944:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4985, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24944:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4989, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "24968:8:27", - "nodeType": "VariableDeclaration", - "scope": 5017, - "src": "24959:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 4988, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4987, - "name": "Rounding", - "nameLocations": [ - "24959:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "24959:8:27" - }, - "referencedDeclaration": 3780, - "src": "24959:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "24943:34:27" - }, - "returnParameters": { - "id": 4993, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4992, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5017, - "src": "25001:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4991, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25001:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "25000:9:27" - }, - "scope": 5374, - "src": "24930:255:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5145, - "nodeType": "Block", - "src": "25378:854:27", - "statements": [ - { - "assignments": [ - 5026 - ], - "declarations": [ - { - "constant": false, - "id": 5026, - "mutability": "mutable", - "name": "result", - "nameLocation": "25396:6:27", - "nodeType": "VariableDeclaration", - "scope": 5145, - "src": "25388:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5025, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25388:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5028, - "initialValue": { - "hexValue": "30", - "id": 5027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25405:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "25388:18:27" - }, - { - "id": 5142, - "nodeType": "UncheckedBlock", - "src": "25416:787:27", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5029, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25444:5:27", - "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": 5032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25453:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3634", - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25459:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "25453:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(57 digits omitted)...0000" - } - }, - "src": "25444:17:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5045, - "nodeType": "IfStatement", - "src": "25440:103:27", - "trueBody": { - "id": 5044, - "nodeType": "Block", - "src": "25463:80:27", - "statements": [ - { - "expression": { - "id": 5038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5034, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25481:5:27", - "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": 5037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25490:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3634", - "id": 5036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25496:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "25490:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(57 digits omitted)...0000" - } - }, - "src": "25481:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5039, - "nodeType": "ExpressionStatement", - "src": "25481:17:27" - }, - { - "expression": { - "id": 5042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5040, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "25516:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3634", - "id": 5041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25526:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "25516:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5043, - "nodeType": "ExpressionStatement", - "src": "25516:12:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5046, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25560:5:27", - "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": 5049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25569:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3332", - "id": 5048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25575:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "25569:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(25 digits omitted)...0000" - } - }, - "src": "25560:17:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "IfStatement", - "src": "25556:103:27", - "trueBody": { - "id": 5061, - "nodeType": "Block", - "src": "25579:80:27", - "statements": [ - { - "expression": { - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5051, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25597:5:27", - "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": 5054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25606:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3332", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25612:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "25606:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(25 digits omitted)...0000" - } - }, - "src": "25597:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "25597:17:27" - }, - { - "expression": { - "id": 5059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5057, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "25632:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3332", - "id": 5058, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25642:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "25632:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5060, - "nodeType": "ExpressionStatement", - "src": "25632:12:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5063, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25676:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - "id": 5066, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5064, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25685:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3136", - "id": 5065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25691:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "25685:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - } - }, - "src": "25676:17:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5079, - "nodeType": "IfStatement", - "src": "25672:103:27", - "trueBody": { - "id": 5078, - "nodeType": "Block", - "src": "25695:80:27", - "statements": [ - { - "expression": { - "id": 5072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5068, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25713:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - "id": 5071, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25722:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3136", - "id": 5070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25728:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "25722:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - } - }, - "src": "25713:17:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5073, - "nodeType": "ExpressionStatement", - "src": "25713:17:27" - }, - { - "expression": { - "id": 5076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5074, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "25748:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3136", - "id": 5075, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25758:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "25748:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5077, - "nodeType": "ExpressionStatement", - "src": "25748:12:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5080, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25792:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "id": 5083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5081, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25801:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "38", - "id": 5082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25807:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "25801:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - }, - "src": "25792:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5096, - "nodeType": "IfStatement", - "src": "25788:100:27", - "trueBody": { - "id": 5095, - "nodeType": "Block", - "src": "25810:78:27", - "statements": [ - { - "expression": { - "id": 5089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5085, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25828:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "id": 5088, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25837:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "38", - "id": 5087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25843:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "25837:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - }, - "src": "25828:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5090, - "nodeType": "ExpressionStatement", - "src": "25828:16:27" - }, - { - "expression": { - "id": 5093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5091, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "25862:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "38", - "id": 5092, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25872:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "25862:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5094, - "nodeType": "ExpressionStatement", - "src": "25862:11:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5097, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25905:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "id": 5100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25914:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "34", - "id": 5099, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25920:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "25914:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - }, - "src": "25905:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5113, - "nodeType": "IfStatement", - "src": "25901:100:27", - "trueBody": { - "id": 5112, - "nodeType": "Block", - "src": "25923:78:27", - "statements": [ - { - "expression": { - "id": 5106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5102, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "25941:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "id": 5105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25950:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "34", - "id": 5104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25956:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "25950:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - }, - "src": "25941:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5107, - "nodeType": "ExpressionStatement", - "src": "25941:16:27" - }, - { - "expression": { - "id": 5110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5108, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "25975:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "34", - "id": 5109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25985:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "25975:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5111, - "nodeType": "ExpressionStatement", - "src": "25975:11:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5114, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "26018:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "id": 5117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26027:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "32", - "id": 5116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26033:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "26027:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - } - }, - "src": "26018:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5130, - "nodeType": "IfStatement", - "src": "26014:100:27", - "trueBody": { - "id": 5129, - "nodeType": "Block", - "src": "26036:78:27", - "statements": [ - { - "expression": { - "id": 5123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5119, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "26054:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "id": 5122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26063:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "32", - "id": 5121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26069:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "26063:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - } - }, - "src": "26054:16:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5124, - "nodeType": "ExpressionStatement", - "src": "26054:16:27" - }, - { - "expression": { - "id": 5127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5125, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "26088:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "32", - "id": 5126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26098:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "26088:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5128, - "nodeType": "ExpressionStatement", - "src": "26088:11:27" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5131, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5020, - "src": "26131:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "id": 5134, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5132, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26140:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "31", - "id": 5133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26146:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "26140:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - } - }, - "src": "26131:16:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5141, - "nodeType": "IfStatement", - "src": "26127:66:27", - "trueBody": { - "id": 5140, - "nodeType": "Block", - "src": "26149:44:27", - "statements": [ - { - "expression": { - "id": 5138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5136, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "26167:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 5137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26177:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "26167:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5139, - "nodeType": "ExpressionStatement", - "src": "26167:11:27" - } - ] - } - } - ] - }, - { - "expression": { - "id": 5143, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "26219:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5024, - "id": 5144, - "nodeType": "Return", - "src": "26212:13:27" - } - ] - }, - "documentation": { - "id": 5018, - "nodeType": "StructuredDocumentation", - "src": "25191:120:27", - "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." - }, - "id": 5146, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log10", - "nameLocation": "25325:5:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5020, - "mutability": "mutable", - "name": "value", - "nameLocation": "25339:5:27", - "nodeType": "VariableDeclaration", - "scope": 5146, - "src": "25331:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5019, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25331:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "25330:15:27" - }, - "returnParameters": { - "id": 5024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5023, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5146, - "src": "25369:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25369:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "25368:9:27" - }, - "scope": 5374, - "src": "25316:916:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5179, - "nodeType": "Block", - "src": "26467:177:27", - "statements": [ - { - "id": 5178, - "nodeType": "UncheckedBlock", - "src": "26477:161:27", - "statements": [ - { - "assignments": [ - 5158 - ], - "declarations": [ - { - "constant": false, - "id": 5158, - "mutability": "mutable", - "name": "result", - "nameLocation": "26509:6:27", - "nodeType": "VariableDeclaration", - "scope": 5178, - "src": "26501:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5157, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26501:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5162, - "initialValue": { - "arguments": [ - { - "id": 5160, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5149, - "src": "26524:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5159, - "name": "log10", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5146, - 5180 - ], - "referencedDeclaration": 5146, - "src": "26518:5:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 5161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26518:12:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26501:29:27" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5163, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "26551:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 5167, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5152, - "src": "26593:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 5166, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "26576:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 5168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26576:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 5169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26606:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "id": 5170, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "26612:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26606:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 5172, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5149, - "src": "26621:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26606:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "26576:50:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5164, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "26560:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "26569:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "26560:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26560:67:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26551:76:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5156, - "id": 5177, - "nodeType": "Return", - "src": "26544:83:27" - } - ] - } - ] - }, - "documentation": { - "id": 5147, - "nodeType": "StructuredDocumentation", - "src": "26238:143:27", - "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." - }, - "id": 5180, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log10", - "nameLocation": "26395:5:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5149, - "mutability": "mutable", - "name": "value", - "nameLocation": "26409:5:27", - "nodeType": "VariableDeclaration", - "scope": 5180, - "src": "26401:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26401:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "26425:8:27", - "nodeType": "VariableDeclaration", - "scope": 5180, - "src": "26416:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 5151, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5150, - "name": "Rounding", - "nameLocations": [ - "26416:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "26416:8:27" - }, - "referencedDeclaration": 3780, - "src": "26416:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "26400:34:27" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5180, - "src": "26458:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5154, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26458:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "26457:9:27" - }, - "scope": 5374, - "src": "26386:258:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5316, - "nodeType": "Block", - "src": "26964:674:27", - "statements": [ - { - "assignments": [ - 5189 - ], - "declarations": [ - { - "constant": false, - "id": 5189, - "mutability": "mutable", - "name": "result", - "nameLocation": "26982:6:27", - "nodeType": "VariableDeclaration", - "scope": 5316, - "src": "26974:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5188, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26974:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5191, - "initialValue": { - "hexValue": "30", - "id": 5190, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26991:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "26974:18:27" - }, - { - "assignments": [ - 5193 - ], - "declarations": [ - { - "constant": false, - "id": 5193, - "mutability": "mutable", - "name": "isGt", - "nameLocation": "27010:4:27", - "nodeType": "VariableDeclaration", - "scope": 5316, - "src": "27002:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5192, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27002:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5194, - "nodeType": "VariableDeclarationStatement", - "src": "27002:12:27" - }, - { - "id": 5313, - "nodeType": "UncheckedBlock", - "src": "27024:585:27", - "statements": [ - { - "expression": { - "id": 5207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5195, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27048:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5198, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27071:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1455" - }, - "id": 5204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - }, - "id": 5201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27080:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "313238", - "id": 5200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27085:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "27080:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - } - ], - "id": 5202, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27079:10:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5203, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27092:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27079:14:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1455" - } - }, - "src": "27071:22:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5196, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27055:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27064:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27055:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27055:39:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27048:46:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5208, - "nodeType": "ExpressionStatement", - "src": "27048:46:27" - }, - { - "expression": { - "id": 5213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5209, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27108:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5210, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27118:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "313238", - "id": 5211, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27125:3:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "27118:10:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27108:20:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5214, - "nodeType": "ExpressionStatement", - "src": "27108:20:27" - }, - { - "expression": { - "id": 5219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5215, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27142:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5216, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27152:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3136", - "id": 5217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27159:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "27152:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27142:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5220, - "nodeType": "ExpressionStatement", - "src": "27142:19:27" - }, - { - "expression": { - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5221, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27176:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5224, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27199:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_18446744073709551615_by_1", - "typeString": "int_const 18446744073709551615" - }, - "id": 5230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - }, - "id": 5227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27208:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3634", - "id": 5226, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27213:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "27208:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - } - ], - "id": 5228, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27207:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551616_by_1", - "typeString": "int_const 18446744073709551616" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5229, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27219:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27207:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_18446744073709551615_by_1", - "typeString": "int_const 18446744073709551615" - } - }, - "src": "27199:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5222, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27183:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27192:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27183:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27183:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27176:45:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5234, - "nodeType": "ExpressionStatement", - "src": "27176:45:27" - }, - { - "expression": { - "id": 5239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5235, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27235:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5236, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27245:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3634", - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27252:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "27245:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27235:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5240, - "nodeType": "ExpressionStatement", - "src": "27235:19:27" - }, - { - "expression": { - "id": 5245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5241, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27268:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5242, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27278:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "38", - "id": 5243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27285:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "27278:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27268:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5246, - "nodeType": "ExpressionStatement", - "src": "27268:18:27" - }, - { - "expression": { - "id": 5259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5247, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27301:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5250, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27324:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "id": 5256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - }, - "id": 5253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27333:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3332", - "id": 5252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27338:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "27333:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - } - ], - "id": 5254, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27332:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27344:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27332:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - } - }, - "src": "27324:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5248, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27308:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27317:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27308:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27308:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27301:45:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5260, - "nodeType": "ExpressionStatement", - "src": "27301:45:27" - }, - { - "expression": { - "id": 5265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5261, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27360:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5262, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27370:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3332", - "id": 5263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27377:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "27370:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27360:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5266, - "nodeType": "ExpressionStatement", - "src": "27360:19:27" - }, - { - "expression": { - "id": 5271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5267, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27393:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5268, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27403:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "34", - "id": 5269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27410:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "27403:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27393:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5272, - "nodeType": "ExpressionStatement", - "src": "27393:18:27" - }, - { - "expression": { - "id": 5285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5273, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27426:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5276, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27449:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_65535_by_1", - "typeString": "int_const 65535" - }, - "id": 5282, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27458:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "3136", - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27463:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "27458:7:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - } - ], - "id": 5280, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27457:9:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65536_by_1", - "typeString": "int_const 65536" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27469:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27457:13:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_65535_by_1", - "typeString": "int_const 65535" - } - }, - "src": "27449:21:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5274, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27433:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27442:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27433:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27433:38:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27426:45:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5286, - "nodeType": "ExpressionStatement", - "src": "27426:45:27" - }, - { - "expression": { - "id": 5291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5287, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27485:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5288, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27495:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3136", - "id": 5289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27502:2:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "27495:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27485:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5292, - "nodeType": "ExpressionStatement", - "src": "27485:19:27" - }, - { - "expression": { - "id": 5297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5293, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27518:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5294, - "name": "isGt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5193, - "src": "27528:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "32", - "id": 5295, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27535:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "27528:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27518:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5298, - "nodeType": "ExpressionStatement", - "src": "27518:18:27" - }, - { - "expression": { - "id": 5311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5299, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27551:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5302, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5183, - "src": "27577:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "id": 5308, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27586:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "38", - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27591:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "27586:6:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - } - ], - "id": 5306, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27585:8:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27596:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27585:12:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - } - }, - "src": "27577:20:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5300, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27561:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27570:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27561:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27561:37:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27551:47:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5312, - "nodeType": "ExpressionStatement", - "src": "27551:47:27" - } - ] - }, - { - "expression": { - "id": 5314, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5189, - "src": "27625:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5187, - "id": 5315, - "nodeType": "Return", - "src": "27618:13:27" - } - ] - }, - "documentation": { - "id": 5181, - "nodeType": "StructuredDocumentation", - "src": "26650:246:27", - "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": 5317, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log256", - "nameLocation": "26910:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5183, - "mutability": "mutable", - "name": "value", - "nameLocation": "26925:5:27", - "nodeType": "VariableDeclaration", - "scope": 5317, - "src": "26917:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5182, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26917:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "26916:15:27" - }, - "returnParameters": { - "id": 5187, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5186, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5317, - "src": "26955:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5185, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26955:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "26954:9:27" - }, - "scope": 5374, - "src": "26901:737:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5353, - "nodeType": "Block", - "src": "27875:184:27", - "statements": [ - { - "id": 5352, - "nodeType": "UncheckedBlock", - "src": "27885:168:27", - "statements": [ - { - "assignments": [ - 5329 - ], - "declarations": [ - { - "constant": false, - "id": 5329, - "mutability": "mutable", - "name": "result", - "nameLocation": "27917:6:27", - "nodeType": "VariableDeclaration", - "scope": 5352, - "src": "27909:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5328, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27909:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5333, - "initialValue": { - "arguments": [ - { - "id": 5331, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "27933:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5330, - "name": "log256", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5317, - 5354 - ], - "referencedDeclaration": 5317, - "src": "27926:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 5332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27926:13:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "27909:30:27" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5334, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5329, - "src": "27960:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 5338, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5323, - "src": "28002:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 5337, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5373, - "src": "27985:16:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 5339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27985:26:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 5340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28015:1:27", - "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": 5343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5341, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5329, - "src": "28021:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "33", - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28031:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "28021:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5344, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "28020:13:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28015:18:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 5346, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "28036:5:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28015:26:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "27985:56:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 5335, - "name": "SafeCast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7139, - "src": "27969:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeCast_$7139_$", - "typeString": "type(library SafeCast)" - } - }, - "id": 5336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27978:6:27", - "memberName": "toUint", - "nodeType": "MemberAccess", - "referencedDeclaration": 7138, - "src": "27969:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) pure returns (uint256)" - } - }, - "id": 5349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27969:73:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27960:82:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5327, - "id": 5351, - "nodeType": "Return", - "src": "27953:89:27" - } - ] - } - ] - }, - "documentation": { - "id": 5318, - "nodeType": "StructuredDocumentation", - "src": "27644:144:27", - "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." - }, - "id": 5354, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log256", - "nameLocation": "27802:6:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5324, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5320, - "mutability": "mutable", - "name": "value", - "nameLocation": "27817:5:27", - "nodeType": "VariableDeclaration", - "scope": 5354, - "src": "27809:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5319, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27809:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5323, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "27833:8:27", - "nodeType": "VariableDeclaration", - "scope": 5354, - "src": "27824:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 5322, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5321, - "name": "Rounding", - "nameLocations": [ - "27824:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "27824:8:27" - }, - "referencedDeclaration": 3780, - "src": "27824:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "27808:34:27" - }, - "returnParameters": { - "id": 5327, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5326, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5354, - "src": "27866:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5325, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27866:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "27865:9:27" - }, - "scope": 5374, - "src": "27793:266:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5372, - "nodeType": "Block", - "src": "28257:48:27", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 5370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 5368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 5365, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5358, - "src": "28280:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - ], - "id": 5364, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28274:5:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 5363, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "28274:5:27", - "typeDescriptions": {} - } - }, - "id": 5366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28274:15:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "hexValue": "32", - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28292:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "28274:19:27", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "31", - "id": 5369, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28297:1:27", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "28274:24:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5362, - "id": 5371, - "nodeType": "Return", - "src": "28267:31:27" - } - ] - }, - "documentation": { - "id": 5355, - "nodeType": "StructuredDocumentation", - "src": "28065:113:27", - "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." - }, - "id": 5373, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "unsignedRoundsUp", - "nameLocation": "28192:16:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5359, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5358, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "28218:8:27", - "nodeType": "VariableDeclaration", - "scope": 5373, - "src": "28209:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 5357, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5356, - "name": "Rounding", - "nameLocations": [ - "28209:8:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3780, - "src": "28209:8:27" - }, - "referencedDeclaration": 3780, - "src": "28209:8:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$3780", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "28208:19:27" - }, - "returnParameters": { - "id": 5362, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5361, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5373, - "src": "28251:4:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5360, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "28251:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "28250:6:27" - }, - "scope": 5374, - "src": "28183:122:27", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 5375, - "src": "281:28026:27", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "103:28205:27" - }, - "id": 27 - }, - "@openzeppelin/contracts/utils/math/SafeCast.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", - "exportedSymbols": { - "SafeCast": [ - 7139 - ] - }, - "id": 7140, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5376, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "192:24:28" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "SafeCast", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 5377, - "nodeType": "StructuredDocumentation", - "src": "218:550:28", - "text": " @dev Wrappers over Solidity's uintXX/intXX/bool 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": 7139, - "linearizedBaseContracts": [ - 7139 - ], - "name": "SafeCast", - "nameLocation": "777:8:28", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 5378, - "nodeType": "StructuredDocumentation", - "src": "792:68:28", - "text": " @dev Value doesn't fit in an uint of `bits` size." - }, - "errorSelector": "6dfcc650", - "id": 5384, - "name": "SafeCastOverflowedUintDowncast", - "nameLocation": "871:30:28", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5380, - "mutability": "mutable", - "name": "bits", - "nameLocation": "908:4:28", - "nodeType": "VariableDeclaration", - "scope": 5384, - "src": "902:10:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5379, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "902:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5382, - "mutability": "mutable", - "name": "value", - "nameLocation": "922:5:28", - "nodeType": "VariableDeclaration", - "scope": 5384, - "src": "914:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5381, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "914:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "901:27:28" - }, - "src": "865:64:28" - }, - { - "documentation": { - "id": 5385, - "nodeType": "StructuredDocumentation", - "src": "935:75:28", - "text": " @dev An int value doesn't fit in an uint of `bits` size." - }, - "errorSelector": "a8ce4432", - "id": 5389, - "name": "SafeCastOverflowedIntToUint", - "nameLocation": "1021:27:28", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5388, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5387, - "mutability": "mutable", - "name": "value", - "nameLocation": "1056:5:28", - "nodeType": "VariableDeclaration", - "scope": 5389, - "src": "1049:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 5386, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "1049:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "1048:14:28" - }, - "src": "1015:48:28" - }, - { - "documentation": { - "id": 5390, - "nodeType": "StructuredDocumentation", - "src": "1069:67:28", - "text": " @dev Value doesn't fit in an int of `bits` size." - }, - "errorSelector": "327269a7", - "id": 5396, - "name": "SafeCastOverflowedIntDowncast", - "nameLocation": "1147:29:28", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5395, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5392, - "mutability": "mutable", - "name": "bits", - "nameLocation": "1183:4:28", - "nodeType": "VariableDeclaration", - "scope": 5396, - "src": "1177:10:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5391, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1177:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5394, - "mutability": "mutable", - "name": "value", - "nameLocation": "1196:5:28", - "nodeType": "VariableDeclaration", - "scope": 5396, - "src": "1189:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 5393, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "1189:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "1176:26:28" - }, - "src": "1141:62:28" - }, - { - "documentation": { - "id": 5397, - "nodeType": "StructuredDocumentation", - "src": "1209:75:28", - "text": " @dev An uint value doesn't fit in an int of `bits` size." - }, - "errorSelector": "24775e06", - "id": 5401, - "name": "SafeCastOverflowedUintToInt", - "nameLocation": "1295:27:28", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5399, - "mutability": "mutable", - "name": "value", - "nameLocation": "1331:5:28", - "nodeType": "VariableDeclaration", - "scope": 5401, - "src": "1323:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5398, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1323:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1322:15:28" - }, - "src": "1289:49:28" - }, - { - "body": { - "id": 5428, - "nodeType": "Block", - "src": "1695:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5409, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5404, - "src": "1709:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1722:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint248_$", - "typeString": "type(uint248)" - }, - "typeName": { - "id": 5411, - "name": "uint248", - "nodeType": "ElementaryTypeName", - "src": "1722:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint248_$", - "typeString": "type(uint248)" - } - ], - "id": 5410, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "1717:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1717:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint248", - "typeString": "type(uint248)" - } - }, - "id": 5414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1731:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "1717:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint248", - "typeString": "uint248" - } - }, - "src": "1709:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5422, - "nodeType": "IfStatement", - "src": "1705:105:28", - "trueBody": { - "id": 5421, - "nodeType": "Block", - "src": "1736:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323438", - "id": 5417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1788:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_248_by_1", - "typeString": "int_const 248" - }, - "value": "248" - }, - { - "id": 5418, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5404, - "src": "1793:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_248_by_1", - "typeString": "int_const 248" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5416, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "1757:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1757:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5420, - "nodeType": "RevertStatement", - "src": "1750:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5425, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5404, - "src": "1834:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1826:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint248_$", - "typeString": "type(uint248)" - }, - "typeName": { - "id": 5423, - "name": "uint248", - "nodeType": "ElementaryTypeName", - "src": "1826:7:28", - "typeDescriptions": {} - } - }, - "id": 5426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1826:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint248", - "typeString": "uint248" - } - }, - "functionReturnParameters": 5408, - "id": 5427, - "nodeType": "Return", - "src": "1819:21:28" - } - ] - }, - "documentation": { - "id": 5402, - "nodeType": "StructuredDocumentation", - "src": "1344:280:28", - "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": 5429, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint248", - "nameLocation": "1638:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5404, - "mutability": "mutable", - "name": "value", - "nameLocation": "1656:5:28", - "nodeType": "VariableDeclaration", - "scope": 5429, - "src": "1648:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1648:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1647:15:28" - }, - "returnParameters": { - "id": 5408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5407, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5429, - "src": "1686:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint248", - "typeString": "uint248" - }, - "typeName": { - "id": 5406, - "name": "uint248", - "nodeType": "ElementaryTypeName", - "src": "1686:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint248", - "typeString": "uint248" - } - }, - "visibility": "internal" - } - ], - "src": "1685:9:28" - }, - "scope": 7139, - "src": "1629:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5456, - "nodeType": "Block", - "src": "2204:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5437, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5432, - "src": "2218:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2231:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint240_$", - "typeString": "type(uint240)" - }, - "typeName": { - "id": 5439, - "name": "uint240", - "nodeType": "ElementaryTypeName", - "src": "2231:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint240_$", - "typeString": "type(uint240)" - } - ], - "id": 5438, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "2226:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2226:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint240", - "typeString": "type(uint240)" - } - }, - "id": 5442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2240:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "2226:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint240", - "typeString": "uint240" - } - }, - "src": "2218:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5450, - "nodeType": "IfStatement", - "src": "2214:105:28", - "trueBody": { - "id": 5449, - "nodeType": "Block", - "src": "2245:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323430", - "id": 5445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2297:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_240_by_1", - "typeString": "int_const 240" - }, - "value": "240" - }, - { - "id": 5446, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5432, - "src": "2302:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_240_by_1", - "typeString": "int_const 240" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5444, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2266:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2266:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5448, - "nodeType": "RevertStatement", - "src": "2259:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5453, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5432, - "src": "2343:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2335:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint240_$", - "typeString": "type(uint240)" - }, - "typeName": { - "id": 5451, - "name": "uint240", - "nodeType": "ElementaryTypeName", - "src": "2335:7:28", - "typeDescriptions": {} - } - }, - "id": 5454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2335:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint240", - "typeString": "uint240" - } - }, - "functionReturnParameters": 5436, - "id": 5455, - "nodeType": "Return", - "src": "2328:21:28" - } - ] - }, - "documentation": { - "id": 5430, - "nodeType": "StructuredDocumentation", - "src": "1853:280:28", - "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": 5457, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint240", - "nameLocation": "2147:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5432, - "mutability": "mutable", - "name": "value", - "nameLocation": "2165:5:28", - "nodeType": "VariableDeclaration", - "scope": 5457, - "src": "2157:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2157:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2156:15:28" - }, - "returnParameters": { - "id": 5436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5435, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5457, - "src": "2195:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint240", - "typeString": "uint240" - }, - "typeName": { - "id": 5434, - "name": "uint240", - "nodeType": "ElementaryTypeName", - "src": "2195:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint240", - "typeString": "uint240" - } - }, - "visibility": "internal" - } - ], - "src": "2194:9:28" - }, - "scope": 7139, - "src": "2138:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "2713:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5465, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5460, - "src": "2727:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2740:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint232_$", - "typeString": "type(uint232)" - }, - "typeName": { - "id": 5467, - "name": "uint232", - "nodeType": "ElementaryTypeName", - "src": "2740:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint232_$", - "typeString": "type(uint232)" - } - ], - "id": 5466, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "2735:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2735:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint232", - "typeString": "type(uint232)" - } - }, - "id": 5470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2749:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "2735:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint232", - "typeString": "uint232" - } - }, - "src": "2727:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5478, - "nodeType": "IfStatement", - "src": "2723:105:28", - "trueBody": { - "id": 5477, - "nodeType": "Block", - "src": "2754:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323332", - "id": 5473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2806:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_232_by_1", - "typeString": "int_const 232" - }, - "value": "232" - }, - { - "id": 5474, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5460, - "src": "2811:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_232_by_1", - "typeString": "int_const 232" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5472, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "2775:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2775:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5476, - "nodeType": "RevertStatement", - "src": "2768:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5481, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5460, - "src": "2852:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2844:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint232_$", - "typeString": "type(uint232)" - }, - "typeName": { - "id": 5479, - "name": "uint232", - "nodeType": "ElementaryTypeName", - "src": "2844:7:28", - "typeDescriptions": {} - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2844:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint232", - "typeString": "uint232" - } - }, - "functionReturnParameters": 5464, - "id": 5483, - "nodeType": "Return", - "src": "2837:21:28" - } - ] - }, - "documentation": { - "id": 5458, - "nodeType": "StructuredDocumentation", - "src": "2362:280:28", - "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": 5485, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint232", - "nameLocation": "2656:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5460, - "mutability": "mutable", - "name": "value", - "nameLocation": "2674:5:28", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "2666:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2666:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2665:15:28" - }, - "returnParameters": { - "id": 5464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5463, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "2704:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint232", - "typeString": "uint232" - }, - "typeName": { - "id": 5462, - "name": "uint232", - "nodeType": "ElementaryTypeName", - "src": "2704:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint232", - "typeString": "uint232" - } - }, - "visibility": "internal" - } - ], - "src": "2703:9:28" - }, - "scope": 7139, - "src": "2647:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5512, - "nodeType": "Block", - "src": "3222:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5493, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5488, - "src": "3236:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3249:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 5495, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "3249:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - } - ], - "id": 5494, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "3244:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3244:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint224", - "typeString": "type(uint224)" - } - }, - "id": 5498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3258:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "3244:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "src": "3236:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5506, - "nodeType": "IfStatement", - "src": "3232:105:28", - "trueBody": { - "id": 5505, - "nodeType": "Block", - "src": "3263:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323234", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3315:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_224_by_1", - "typeString": "int_const 224" - }, - "value": "224" - }, - { - "id": 5502, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5488, - "src": "3320:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_224_by_1", - "typeString": "int_const 224" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5500, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3284:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3284:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5504, - "nodeType": "RevertStatement", - "src": "3277:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5509, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5488, - "src": "3361:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3353:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 5507, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "3353:7:28", - "typeDescriptions": {} - } - }, - "id": 5510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3353:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "functionReturnParameters": 5492, - "id": 5511, - "nodeType": "Return", - "src": "3346:21:28" - } - ] - }, - "documentation": { - "id": 5486, - "nodeType": "StructuredDocumentation", - "src": "2871:280:28", - "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": 5513, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint224", - "nameLocation": "3165:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5488, - "mutability": "mutable", - "name": "value", - "nameLocation": "3183:5:28", - "nodeType": "VariableDeclaration", - "scope": 5513, - "src": "3175:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5487, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3175:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3174:15:28" - }, - "returnParameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5491, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5513, - "src": "3213:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "typeName": { - "id": 5490, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "3213:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "visibility": "internal" - } - ], - "src": "3212:9:28" - }, - "scope": 7139, - "src": "3156:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5540, - "nodeType": "Block", - "src": "3731:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5521, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5516, - "src": "3745:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3758:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint216_$", - "typeString": "type(uint216)" - }, - "typeName": { - "id": 5523, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "3758:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint216_$", - "typeString": "type(uint216)" - } - ], - "id": 5522, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "3753:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3753:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint216", - "typeString": "type(uint216)" - } - }, - "id": 5526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3767:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "3753:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "src": "3745:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5534, - "nodeType": "IfStatement", - "src": "3741:105:28", - "trueBody": { - "id": 5533, - "nodeType": "Block", - "src": "3772:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323136", - "id": 5529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3824:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_216_by_1", - "typeString": "int_const 216" - }, - "value": "216" - }, - { - "id": 5530, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5516, - "src": "3829:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_216_by_1", - "typeString": "int_const 216" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5528, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "3793:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3793:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5532, - "nodeType": "RevertStatement", - "src": "3786:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5537, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5516, - "src": "3870:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3862:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint216_$", - "typeString": "type(uint216)" - }, - "typeName": { - "id": 5535, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "3862:7:28", - "typeDescriptions": {} - } - }, - "id": 5538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3862:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "functionReturnParameters": 5520, - "id": 5539, - "nodeType": "Return", - "src": "3855:21:28" - } - ] - }, - "documentation": { - "id": 5514, - "nodeType": "StructuredDocumentation", - "src": "3380:280:28", - "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": 5541, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint216", - "nameLocation": "3674:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5517, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5516, - "mutability": "mutable", - "name": "value", - "nameLocation": "3692:5:28", - "nodeType": "VariableDeclaration", - "scope": 5541, - "src": "3684:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3684:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3683:15:28" - }, - "returnParameters": { - "id": 5520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5519, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5541, - "src": "3722:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - }, - "typeName": { - "id": 5518, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "3722:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "visibility": "internal" - } - ], - "src": "3721:9:28" - }, - "scope": 7139, - "src": "3665:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5568, - "nodeType": "Block", - "src": "4240:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5549, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5544, - "src": "4254:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4267:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint208_$", - "typeString": "type(uint208)" - }, - "typeName": { - "id": 5551, - "name": "uint208", - "nodeType": "ElementaryTypeName", - "src": "4267:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint208_$", - "typeString": "type(uint208)" - } - ], - "id": 5550, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "4262:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4262:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint208", - "typeString": "type(uint208)" - } - }, - "id": 5554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4276:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "4262:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint208", - "typeString": "uint208" - } - }, - "src": "4254:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5562, - "nodeType": "IfStatement", - "src": "4250:105:28", - "trueBody": { - "id": 5561, - "nodeType": "Block", - "src": "4281:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323038", - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4333:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_208_by_1", - "typeString": "int_const 208" - }, - "value": "208" - }, - { - "id": 5558, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5544, - "src": "4338:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_208_by_1", - "typeString": "int_const 208" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5556, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "4302:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4302:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5560, - "nodeType": "RevertStatement", - "src": "4295:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5565, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5544, - "src": "4379:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4371:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint208_$", - "typeString": "type(uint208)" - }, - "typeName": { - "id": 5563, - "name": "uint208", - "nodeType": "ElementaryTypeName", - "src": "4371:7:28", - "typeDescriptions": {} - } - }, - "id": 5566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4371:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint208", - "typeString": "uint208" - } - }, - "functionReturnParameters": 5548, - "id": 5567, - "nodeType": "Return", - "src": "4364:21:28" - } - ] - }, - "documentation": { - "id": 5542, - "nodeType": "StructuredDocumentation", - "src": "3889:280:28", - "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": 5569, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint208", - "nameLocation": "4183:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5544, - "mutability": "mutable", - "name": "value", - "nameLocation": "4201:5:28", - "nodeType": "VariableDeclaration", - "scope": 5569, - "src": "4193:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5543, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4193:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4192:15:28" - }, - "returnParameters": { - "id": 5548, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5547, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5569, - "src": "4231:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint208", - "typeString": "uint208" - }, - "typeName": { - "id": 5546, - "name": "uint208", - "nodeType": "ElementaryTypeName", - "src": "4231:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint208", - "typeString": "uint208" - } - }, - "visibility": "internal" - } - ], - "src": "4230:9:28" - }, - "scope": 7139, - "src": "4174:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5596, - "nodeType": "Block", - "src": "4749:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5577, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "4763:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4776:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint200_$", - "typeString": "type(uint200)" - }, - "typeName": { - "id": 5579, - "name": "uint200", - "nodeType": "ElementaryTypeName", - "src": "4776:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint200_$", - "typeString": "type(uint200)" - } - ], - "id": 5578, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "4771:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4771:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint200", - "typeString": "type(uint200)" - } - }, - "id": 5582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4785:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "4771:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint200", - "typeString": "uint200" - } - }, - "src": "4763:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5590, - "nodeType": "IfStatement", - "src": "4759:105:28", - "trueBody": { - "id": 5589, - "nodeType": "Block", - "src": "4790:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323030", - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4842:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" - }, - "value": "200" - }, - { - "id": 5586, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "4847:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5584, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "4811:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4811:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5588, - "nodeType": "RevertStatement", - "src": "4804:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5593, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5572, - "src": "4888:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4880:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint200_$", - "typeString": "type(uint200)" - }, - "typeName": { - "id": 5591, - "name": "uint200", - "nodeType": "ElementaryTypeName", - "src": "4880:7:28", - "typeDescriptions": {} - } - }, - "id": 5594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4880:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint200", - "typeString": "uint200" - } - }, - "functionReturnParameters": 5576, - "id": 5595, - "nodeType": "Return", - "src": "4873:21:28" - } - ] - }, - "documentation": { - "id": 5570, - "nodeType": "StructuredDocumentation", - "src": "4398:280:28", - "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": 5597, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint200", - "nameLocation": "4692:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5572, - "mutability": "mutable", - "name": "value", - "nameLocation": "4710:5:28", - "nodeType": "VariableDeclaration", - "scope": 5597, - "src": "4702:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5571, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4702:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4701:15:28" - }, - "returnParameters": { - "id": 5576, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5575, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5597, - "src": "4740:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint200", - "typeString": "uint200" - }, - "typeName": { - "id": 5574, - "name": "uint200", - "nodeType": "ElementaryTypeName", - "src": "4740:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint200", - "typeString": "uint200" - } - }, - "visibility": "internal" - } - ], - "src": "4739:9:28" - }, - "scope": 7139, - "src": "4683:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5624, - "nodeType": "Block", - "src": "5258:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5605, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "5272:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5285:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint192_$", - "typeString": "type(uint192)" - }, - "typeName": { - "id": 5607, - "name": "uint192", - "nodeType": "ElementaryTypeName", - "src": "5285:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint192_$", - "typeString": "type(uint192)" - } - ], - "id": 5606, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "5280:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5280:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint192", - "typeString": "type(uint192)" - } - }, - "id": 5610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5294:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "5280:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint192", - "typeString": "uint192" - } - }, - "src": "5272:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5618, - "nodeType": "IfStatement", - "src": "5268:105:28", - "trueBody": { - "id": 5617, - "nodeType": "Block", - "src": "5299:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313932", - "id": 5613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5351:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_192_by_1", - "typeString": "int_const 192" - }, - "value": "192" - }, - { - "id": 5614, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "5356:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_192_by_1", - "typeString": "int_const 192" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5612, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "5320:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5320:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5616, - "nodeType": "RevertStatement", - "src": "5313:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5621, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "5397:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5389:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint192_$", - "typeString": "type(uint192)" - }, - "typeName": { - "id": 5619, - "name": "uint192", - "nodeType": "ElementaryTypeName", - "src": "5389:7:28", - "typeDescriptions": {} - } - }, - "id": 5622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5389:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint192", - "typeString": "uint192" - } - }, - "functionReturnParameters": 5604, - "id": 5623, - "nodeType": "Return", - "src": "5382:21:28" - } - ] - }, - "documentation": { - "id": 5598, - "nodeType": "StructuredDocumentation", - "src": "4907:280:28", - "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": 5625, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint192", - "nameLocation": "5201:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5600, - "mutability": "mutable", - "name": "value", - "nameLocation": "5219:5:28", - "nodeType": "VariableDeclaration", - "scope": 5625, - "src": "5211:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5211:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5210:15:28" - }, - "returnParameters": { - "id": 5604, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5603, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5625, - "src": "5249:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint192", - "typeString": "uint192" - }, - "typeName": { - "id": 5602, - "name": "uint192", - "nodeType": "ElementaryTypeName", - "src": "5249:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint192", - "typeString": "uint192" - } - }, - "visibility": "internal" - } - ], - "src": "5248:9:28" - }, - "scope": 7139, - "src": "5192:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5652, - "nodeType": "Block", - "src": "5767:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5633, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5628, - "src": "5781:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5636, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5794:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint184_$", - "typeString": "type(uint184)" - }, - "typeName": { - "id": 5635, - "name": "uint184", - "nodeType": "ElementaryTypeName", - "src": "5794:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint184_$", - "typeString": "type(uint184)" - } - ], - "id": 5634, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "5789:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5789:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint184", - "typeString": "type(uint184)" - } - }, - "id": 5638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5803:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "5789:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint184", - "typeString": "uint184" - } - }, - "src": "5781:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5646, - "nodeType": "IfStatement", - "src": "5777:105:28", - "trueBody": { - "id": 5645, - "nodeType": "Block", - "src": "5808:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313834", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5860:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_184_by_1", - "typeString": "int_const 184" - }, - "value": "184" - }, - { - "id": 5642, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5628, - "src": "5865:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_184_by_1", - "typeString": "int_const 184" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5640, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "5829:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5829:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5644, - "nodeType": "RevertStatement", - "src": "5822:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5649, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5628, - "src": "5906:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5898:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint184_$", - "typeString": "type(uint184)" - }, - "typeName": { - "id": 5647, - "name": "uint184", - "nodeType": "ElementaryTypeName", - "src": "5898:7:28", - "typeDescriptions": {} - } - }, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5898:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint184", - "typeString": "uint184" - } - }, - "functionReturnParameters": 5632, - "id": 5651, - "nodeType": "Return", - "src": "5891:21:28" - } - ] - }, - "documentation": { - "id": 5626, - "nodeType": "StructuredDocumentation", - "src": "5416:280:28", - "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": 5653, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint184", - "nameLocation": "5710:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5628, - "mutability": "mutable", - "name": "value", - "nameLocation": "5728:5:28", - "nodeType": "VariableDeclaration", - "scope": 5653, - "src": "5720:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5720:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5719:15:28" - }, - "returnParameters": { - "id": 5632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5631, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5653, - "src": "5758:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint184", - "typeString": "uint184" - }, - "typeName": { - "id": 5630, - "name": "uint184", - "nodeType": "ElementaryTypeName", - "src": "5758:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint184", - "typeString": "uint184" - } - }, - "visibility": "internal" - } - ], - "src": "5757:9:28" - }, - "scope": 7139, - "src": "5701:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5680, - "nodeType": "Block", - "src": "6276:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5661, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5656, - "src": "6290:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6303:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint176_$", - "typeString": "type(uint176)" - }, - "typeName": { - "id": 5663, - "name": "uint176", - "nodeType": "ElementaryTypeName", - "src": "6303:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint176_$", - "typeString": "type(uint176)" - } - ], - "id": 5662, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "6298:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6298:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint176", - "typeString": "type(uint176)" - } - }, - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6312:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "6298:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint176", - "typeString": "uint176" - } - }, - "src": "6290:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5674, - "nodeType": "IfStatement", - "src": "6286:105:28", - "trueBody": { - "id": 5673, - "nodeType": "Block", - "src": "6317:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313736", - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6369:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_176_by_1", - "typeString": "int_const 176" - }, - "value": "176" - }, - { - "id": 5670, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5656, - "src": "6374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_176_by_1", - "typeString": "int_const 176" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5668, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "6338:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6338:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5672, - "nodeType": "RevertStatement", - "src": "6331:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5677, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5656, - "src": "6415:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6407:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint176_$", - "typeString": "type(uint176)" - }, - "typeName": { - "id": 5675, - "name": "uint176", - "nodeType": "ElementaryTypeName", - "src": "6407:7:28", - "typeDescriptions": {} - } - }, - "id": 5678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6407:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint176", - "typeString": "uint176" - } - }, - "functionReturnParameters": 5660, - "id": 5679, - "nodeType": "Return", - "src": "6400:21:28" - } - ] - }, - "documentation": { - "id": 5654, - "nodeType": "StructuredDocumentation", - "src": "5925:280:28", - "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": 5681, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint176", - "nameLocation": "6219:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5657, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5656, - "mutability": "mutable", - "name": "value", - "nameLocation": "6237:5:28", - "nodeType": "VariableDeclaration", - "scope": 5681, - "src": "6229:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5655, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6229:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6228:15:28" - }, - "returnParameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5659, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5681, - "src": "6267:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint176", - "typeString": "uint176" - }, - "typeName": { - "id": 5658, - "name": "uint176", - "nodeType": "ElementaryTypeName", - "src": "6267:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint176", - "typeString": "uint176" - } - }, - "visibility": "internal" - } - ], - "src": "6266:9:28" - }, - "scope": 7139, - "src": "6210:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5708, - "nodeType": "Block", - "src": "6785:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5689, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5684, - "src": "6799:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6812:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint168_$", - "typeString": "type(uint168)" - }, - "typeName": { - "id": 5691, - "name": "uint168", - "nodeType": "ElementaryTypeName", - "src": "6812:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint168_$", - "typeString": "type(uint168)" - } - ], - "id": 5690, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "6807:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6807:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint168", - "typeString": "type(uint168)" - } - }, - "id": 5694, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6821:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "6807:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint168", - "typeString": "uint168" - } - }, - "src": "6799:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5702, - "nodeType": "IfStatement", - "src": "6795:105:28", - "trueBody": { - "id": 5701, - "nodeType": "Block", - "src": "6826:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313638", - "id": 5697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6878:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_168_by_1", - "typeString": "int_const 168" - }, - "value": "168" - }, - { - "id": 5698, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5684, - "src": "6883:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_168_by_1", - "typeString": "int_const 168" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5696, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "6847:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6847:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5700, - "nodeType": "RevertStatement", - "src": "6840:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5705, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5684, - "src": "6924:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6916:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint168_$", - "typeString": "type(uint168)" - }, - "typeName": { - "id": 5703, - "name": "uint168", - "nodeType": "ElementaryTypeName", - "src": "6916:7:28", - "typeDescriptions": {} - } - }, - "id": 5706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6916:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint168", - "typeString": "uint168" - } - }, - "functionReturnParameters": 5688, - "id": 5707, - "nodeType": "Return", - "src": "6909:21:28" - } - ] - }, - "documentation": { - "id": 5682, - "nodeType": "StructuredDocumentation", - "src": "6434:280:28", - "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": 5709, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint168", - "nameLocation": "6728:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5684, - "mutability": "mutable", - "name": "value", - "nameLocation": "6746:5:28", - "nodeType": "VariableDeclaration", - "scope": 5709, - "src": "6738:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6738:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6737:15:28" - }, - "returnParameters": { - "id": 5688, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5687, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5709, - "src": "6776:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint168", - "typeString": "uint168" - }, - "typeName": { - "id": 5686, - "name": "uint168", - "nodeType": "ElementaryTypeName", - "src": "6776:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint168", - "typeString": "uint168" - } - }, - "visibility": "internal" - } - ], - "src": "6775:9:28" - }, - "scope": 7139, - "src": "6719:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5736, - "nodeType": "Block", - "src": "7294:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5717, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5712, - "src": "7308:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7321:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 5719, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "7321:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - } - ], - "id": 5718, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "7316:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7316:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint160", - "typeString": "type(uint160)" - } - }, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7330:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "7316:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - }, - "src": "7308:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5730, - "nodeType": "IfStatement", - "src": "7304:105:28", - "trueBody": { - "id": 5729, - "nodeType": "Block", - "src": "7335:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313630", - "id": 5725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7387:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_160_by_1", - "typeString": "int_const 160" - }, - "value": "160" - }, - { - "id": 5726, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5712, - "src": "7392:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_160_by_1", - "typeString": "int_const 160" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5724, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "7356:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7356:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5728, - "nodeType": "RevertStatement", - "src": "7349:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5733, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5712, - "src": "7433:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7425:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 5731, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "7425:7:28", - "typeDescriptions": {} - } - }, - "id": 5734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7425:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - }, - "functionReturnParameters": 5716, - "id": 5735, - "nodeType": "Return", - "src": "7418:21:28" - } - ] - }, - "documentation": { - "id": 5710, - "nodeType": "StructuredDocumentation", - "src": "6943:280:28", - "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": 5737, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint160", - "nameLocation": "7237:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5713, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5712, - "mutability": "mutable", - "name": "value", - "nameLocation": "7255:5:28", - "nodeType": "VariableDeclaration", - "scope": 5737, - "src": "7247:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5711, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7247:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7246:15:28" - }, - "returnParameters": { - "id": 5716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5715, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5737, - "src": "7285:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - }, - "typeName": { - "id": 5714, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "7285:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - }, - "visibility": "internal" - } - ], - "src": "7284:9:28" - }, - "scope": 7139, - "src": "7228:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5764, - "nodeType": "Block", - "src": "7803:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5745, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5740, - "src": "7817:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7830:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint152_$", - "typeString": "type(uint152)" - }, - "typeName": { - "id": 5747, - "name": "uint152", - "nodeType": "ElementaryTypeName", - "src": "7830:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint152_$", - "typeString": "type(uint152)" - } - ], - "id": 5746, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "7825:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5749, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7825:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint152", - "typeString": "type(uint152)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7839:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "7825:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint152", - "typeString": "uint152" - } - }, - "src": "7817:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5758, - "nodeType": "IfStatement", - "src": "7813:105:28", - "trueBody": { - "id": 5757, - "nodeType": "Block", - "src": "7844:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313532", - "id": 5753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7896:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_152_by_1", - "typeString": "int_const 152" - }, - "value": "152" - }, - { - "id": 5754, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5740, - "src": "7901:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_152_by_1", - "typeString": "int_const 152" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5752, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "7865:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7865:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5756, - "nodeType": "RevertStatement", - "src": "7858:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5761, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5740, - "src": "7942:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7934:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint152_$", - "typeString": "type(uint152)" - }, - "typeName": { - "id": 5759, - "name": "uint152", - "nodeType": "ElementaryTypeName", - "src": "7934:7:28", - "typeDescriptions": {} - } - }, - "id": 5762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7934:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint152", - "typeString": "uint152" - } - }, - "functionReturnParameters": 5744, - "id": 5763, - "nodeType": "Return", - "src": "7927:21:28" - } - ] - }, - "documentation": { - "id": 5738, - "nodeType": "StructuredDocumentation", - "src": "7452:280:28", - "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": 5765, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint152", - "nameLocation": "7746:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5741, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5740, - "mutability": "mutable", - "name": "value", - "nameLocation": "7764:5:28", - "nodeType": "VariableDeclaration", - "scope": 5765, - "src": "7756:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5739, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7756:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7755:15:28" - }, - "returnParameters": { - "id": 5744, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5743, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5765, - "src": "7794:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint152", - "typeString": "uint152" - }, - "typeName": { - "id": 5742, - "name": "uint152", - "nodeType": "ElementaryTypeName", - "src": "7794:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint152", - "typeString": "uint152" - } - }, - "visibility": "internal" - } - ], - "src": "7793:9:28" - }, - "scope": 7139, - "src": "7737:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5792, - "nodeType": "Block", - "src": "8312:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5773, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "8326:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8339:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint144_$", - "typeString": "type(uint144)" - }, - "typeName": { - "id": 5775, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "8339:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint144_$", - "typeString": "type(uint144)" - } - ], - "id": 5774, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "8334:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5777, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8334:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint144", - "typeString": "type(uint144)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8348:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "8334:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "src": "8326:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5786, - "nodeType": "IfStatement", - "src": "8322:105:28", - "trueBody": { - "id": 5785, - "nodeType": "Block", - "src": "8353:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313434", - "id": 5781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8405:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_144_by_1", - "typeString": "int_const 144" - }, - "value": "144" - }, - { - "id": 5782, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "8410:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_144_by_1", - "typeString": "int_const 144" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5780, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "8374:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8374:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5784, - "nodeType": "RevertStatement", - "src": "8367:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5789, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "8451:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8443:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint144_$", - "typeString": "type(uint144)" - }, - "typeName": { - "id": 5787, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "8443:7:28", - "typeDescriptions": {} - } - }, - "id": 5790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8443:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "functionReturnParameters": 5772, - "id": 5791, - "nodeType": "Return", - "src": "8436:21:28" - } - ] - }, - "documentation": { - "id": 5766, - "nodeType": "StructuredDocumentation", - "src": "7961:280:28", - "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": 5793, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint144", - "nameLocation": "8255:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5769, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "mutability": "mutable", - "name": "value", - "nameLocation": "8273:5:28", - "nodeType": "VariableDeclaration", - "scope": 5793, - "src": "8265:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5767, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8265:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8264:15:28" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5771, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5793, - "src": "8303:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - }, - "typeName": { - "id": 5770, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "8303:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "visibility": "internal" - } - ], - "src": "8302:9:28" - }, - "scope": 7139, - "src": "8246:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5820, - "nodeType": "Block", - "src": "8821:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5801, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5796, - "src": "8835:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8848:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint136_$", - "typeString": "type(uint136)" - }, - "typeName": { - "id": 5803, - "name": "uint136", - "nodeType": "ElementaryTypeName", - "src": "8848:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint136_$", - "typeString": "type(uint136)" - } - ], - "id": 5802, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "8843:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8843:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint136", - "typeString": "type(uint136)" - } - }, - "id": 5806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8857:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "8843:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint136", - "typeString": "uint136" - } - }, - "src": "8835:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5814, - "nodeType": "IfStatement", - "src": "8831:105:28", - "trueBody": { - "id": 5813, - "nodeType": "Block", - "src": "8862:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313336", - "id": 5809, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8914:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_136_by_1", - "typeString": "int_const 136" - }, - "value": "136" - }, - { - "id": 5810, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5796, - "src": "8919:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_136_by_1", - "typeString": "int_const 136" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5808, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "8883:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8883:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5812, - "nodeType": "RevertStatement", - "src": "8876:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5817, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5796, - "src": "8960:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8952:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint136_$", - "typeString": "type(uint136)" - }, - "typeName": { - "id": 5815, - "name": "uint136", - "nodeType": "ElementaryTypeName", - "src": "8952:7:28", - "typeDescriptions": {} - } - }, - "id": 5818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8952:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint136", - "typeString": "uint136" - } - }, - "functionReturnParameters": 5800, - "id": 5819, - "nodeType": "Return", - "src": "8945:21:28" - } - ] - }, - "documentation": { - "id": 5794, - "nodeType": "StructuredDocumentation", - "src": "8470:280:28", - "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": 5821, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint136", - "nameLocation": "8764:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5796, - "mutability": "mutable", - "name": "value", - "nameLocation": "8782:5:28", - "nodeType": "VariableDeclaration", - "scope": 5821, - "src": "8774:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5795, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8774:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8773:15:28" - }, - "returnParameters": { - "id": 5800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5799, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5821, - "src": "8812:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint136", - "typeString": "uint136" - }, - "typeName": { - "id": 5798, - "name": "uint136", - "nodeType": "ElementaryTypeName", - "src": "8812:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint136", - "typeString": "uint136" - } - }, - "visibility": "internal" - } - ], - "src": "8811:9:28" - }, - "scope": 7139, - "src": "8755:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5848, - "nodeType": "Block", - "src": "9330:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5829, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9344:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9357:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint128_$", - "typeString": "type(uint128)" - }, - "typeName": { - "id": 5831, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "9357:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint128_$", - "typeString": "type(uint128)" - } - ], - "id": 5830, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "9352:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9352:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint128", - "typeString": "type(uint128)" - } - }, - "id": 5834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9366:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "9352:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "src": "9344:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5842, - "nodeType": "IfStatement", - "src": "9340:105:28", - "trueBody": { - "id": 5841, - "nodeType": "Block", - "src": "9371:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313238", - "id": 5837, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9423:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - { - "id": 5838, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9428:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5836, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "9392:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9392:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5840, - "nodeType": "RevertStatement", - "src": "9385:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5845, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9469:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9461:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint128_$", - "typeString": "type(uint128)" - }, - "typeName": { - "id": 5843, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "9461:7:28", - "typeDescriptions": {} - } - }, - "id": 5846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9461:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "functionReturnParameters": 5828, - "id": 5847, - "nodeType": "Return", - "src": "9454:21:28" - } - ] - }, - "documentation": { - "id": 5822, - "nodeType": "StructuredDocumentation", - "src": "8979:280:28", - "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": 5849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint128", - "nameLocation": "9273:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5824, - "mutability": "mutable", - "name": "value", - "nameLocation": "9291:5:28", - "nodeType": "VariableDeclaration", - "scope": 5849, - "src": "9283:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5823, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9283:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9282:15:28" - }, - "returnParameters": { - "id": 5828, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5827, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5849, - "src": "9321:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 5826, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "9321:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - } - ], - "src": "9320:9:28" - }, - "scope": 7139, - "src": "9264:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5876, - "nodeType": "Block", - "src": "9839:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5857, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5852, - "src": "9853:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9866:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint120_$", - "typeString": "type(uint120)" - }, - "typeName": { - "id": 5859, - "name": "uint120", - "nodeType": "ElementaryTypeName", - "src": "9866:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint120_$", - "typeString": "type(uint120)" - } - ], - "id": 5858, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "9861:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5861, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9861:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint120", - "typeString": "type(uint120)" - } - }, - "id": 5862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9875:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "9861:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint120", - "typeString": "uint120" - } - }, - "src": "9853:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5870, - "nodeType": "IfStatement", - "src": "9849:105:28", - "trueBody": { - "id": 5869, - "nodeType": "Block", - "src": "9880:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313230", - "id": 5865, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9932:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - "value": "120" - }, - { - "id": 5866, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5852, - "src": "9937:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5864, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "9901:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9901:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5868, - "nodeType": "RevertStatement", - "src": "9894:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5873, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5852, - "src": "9978:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9970:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint120_$", - "typeString": "type(uint120)" - }, - "typeName": { - "id": 5871, - "name": "uint120", - "nodeType": "ElementaryTypeName", - "src": "9970:7:28", - "typeDescriptions": {} - } - }, - "id": 5874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9970:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint120", - "typeString": "uint120" - } - }, - "functionReturnParameters": 5856, - "id": 5875, - "nodeType": "Return", - "src": "9963:21:28" - } - ] - }, - "documentation": { - "id": 5850, - "nodeType": "StructuredDocumentation", - "src": "9488:280:28", - "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": 5877, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint120", - "nameLocation": "9782:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5852, - "mutability": "mutable", - "name": "value", - "nameLocation": "9800:5:28", - "nodeType": "VariableDeclaration", - "scope": 5877, - "src": "9792:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9792:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9791:15:28" - }, - "returnParameters": { - "id": 5856, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5855, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5877, - "src": "9830:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint120", - "typeString": "uint120" - }, - "typeName": { - "id": 5854, - "name": "uint120", - "nodeType": "ElementaryTypeName", - "src": "9830:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint120", - "typeString": "uint120" - } - }, - "visibility": "internal" - } - ], - "src": "9829:9:28" - }, - "scope": 7139, - "src": "9773:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5904, - "nodeType": "Block", - "src": "10348:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5885, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5880, - "src": "10362:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10375:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint112_$", - "typeString": "type(uint112)" - }, - "typeName": { - "id": 5887, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "10375:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint112_$", - "typeString": "type(uint112)" - } - ], - "id": 5886, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "10370:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5889, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10370:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint112", - "typeString": "type(uint112)" - } - }, - "id": 5890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10384:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "10370:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "src": "10362:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5898, - "nodeType": "IfStatement", - "src": "10358:105:28", - "trueBody": { - "id": 5897, - "nodeType": "Block", - "src": "10389:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313132", - "id": 5893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10441:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - "value": "112" - }, - { - "id": 5894, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5880, - "src": "10446:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5892, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "10410:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10410:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5896, - "nodeType": "RevertStatement", - "src": "10403:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5901, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5880, - "src": "10487:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10479:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint112_$", - "typeString": "type(uint112)" - }, - "typeName": { - "id": 5899, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "10479:7:28", - "typeDescriptions": {} - } - }, - "id": 5902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10479:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "functionReturnParameters": 5884, - "id": 5903, - "nodeType": "Return", - "src": "10472:21:28" - } - ] - }, - "documentation": { - "id": 5878, - "nodeType": "StructuredDocumentation", - "src": "9997:280:28", - "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": 5905, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint112", - "nameLocation": "10291:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5880, - "mutability": "mutable", - "name": "value", - "nameLocation": "10309:5:28", - "nodeType": "VariableDeclaration", - "scope": 5905, - "src": "10301:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5879, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10301:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10300:15:28" - }, - "returnParameters": { - "id": 5884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5883, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5905, - "src": "10339:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 5882, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "10339:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "visibility": "internal" - } - ], - "src": "10338:9:28" - }, - "scope": 7139, - "src": "10282:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5932, - "nodeType": "Block", - "src": "10857:152:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5913, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5908, - "src": "10871:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10884:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint104_$", - "typeString": "type(uint104)" - }, - "typeName": { - "id": 5915, - "name": "uint104", - "nodeType": "ElementaryTypeName", - "src": "10884:7:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint104_$", - "typeString": "type(uint104)" - } - ], - "id": 5914, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "10879:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5917, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10879:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint104", - "typeString": "type(uint104)" - } - }, - "id": 5918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10893:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "10879:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - "src": "10871:25:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5926, - "nodeType": "IfStatement", - "src": "10867:105:28", - "trueBody": { - "id": 5925, - "nodeType": "Block", - "src": "10898:74:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313034", - "id": 5921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10950:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_104_by_1", - "typeString": "int_const 104" - }, - "value": "104" - }, - { - "id": 5922, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5908, - "src": "10955:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_104_by_1", - "typeString": "int_const 104" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5920, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "10919:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10919:42:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5924, - "nodeType": "RevertStatement", - "src": "10912:49:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5929, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5908, - "src": "10996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10988:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint104_$", - "typeString": "type(uint104)" - }, - "typeName": { - "id": 5927, - "name": "uint104", - "nodeType": "ElementaryTypeName", - "src": "10988:7:28", - "typeDescriptions": {} - } - }, - "id": 5930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10988:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - "functionReturnParameters": 5912, - "id": 5931, - "nodeType": "Return", - "src": "10981:21:28" - } - ] - }, - "documentation": { - "id": 5906, - "nodeType": "StructuredDocumentation", - "src": "10506:280:28", - "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": 5933, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint104", - "nameLocation": "10800:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5909, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5908, - "mutability": "mutable", - "name": "value", - "nameLocation": "10818:5:28", - "nodeType": "VariableDeclaration", - "scope": 5933, - "src": "10810:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5907, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10810:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10809:15:28" - }, - "returnParameters": { - "id": 5912, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5911, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5933, - "src": "10848:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - }, - "typeName": { - "id": 5910, - "name": "uint104", - "nodeType": "ElementaryTypeName", - "src": "10848:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - "visibility": "internal" - } - ], - "src": "10847:9:28" - }, - "scope": 7139, - "src": "10791:218:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5960, - "nodeType": "Block", - "src": "11360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5941, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5936, - "src": "11374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint96_$", - "typeString": "type(uint96)" - }, - "typeName": { - "id": 5943, - "name": "uint96", - "nodeType": "ElementaryTypeName", - "src": "11387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint96_$", - "typeString": "type(uint96)" - } - ], - "id": 5942, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "11382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint96", - "typeString": "type(uint96)" - } - }, - "id": 5946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "11395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "11382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint96", - "typeString": "uint96" - } - }, - "src": "11374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5954, - "nodeType": "IfStatement", - "src": "11370:103:28", - "trueBody": { - "id": 5953, - "nodeType": "Block", - "src": "11400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3936", - "id": 5949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - "value": "96" - }, - { - "id": 5950, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5936, - "src": "11456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5948, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "11421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5952, - "nodeType": "RevertStatement", - "src": "11414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5957, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5936, - "src": "11496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint96_$", - "typeString": "type(uint96)" - }, - "typeName": { - "id": 5955, - "name": "uint96", - "nodeType": "ElementaryTypeName", - "src": "11489:6:28", - "typeDescriptions": {} - } - }, - "id": 5958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint96", - "typeString": "uint96" - } - }, - "functionReturnParameters": 5940, - "id": 5959, - "nodeType": "Return", - "src": "11482:20:28" - } - ] - }, - "documentation": { - "id": 5934, - "nodeType": "StructuredDocumentation", - "src": "11015:276:28", - "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": 5961, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint96", - "nameLocation": "11305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5936, - "mutability": "mutable", - "name": "value", - "nameLocation": "11322:5:28", - "nodeType": "VariableDeclaration", - "scope": 5961, - "src": "11314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5935, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11313:15:28" - }, - "returnParameters": { - "id": 5940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5939, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5961, - "src": "11352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint96", - "typeString": "uint96" - }, - "typeName": { - "id": 5938, - "name": "uint96", - "nodeType": "ElementaryTypeName", - "src": "11352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint96", - "typeString": "uint96" - } - }, - "visibility": "internal" - } - ], - "src": "11351:8:28" - }, - "scope": 7139, - "src": "11296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5988, - "nodeType": "Block", - "src": "11860:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5969, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5964, - "src": "11874:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11887:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint88_$", - "typeString": "type(uint88)" - }, - "typeName": { - "id": 5971, - "name": "uint88", - "nodeType": "ElementaryTypeName", - "src": "11887:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint88_$", - "typeString": "type(uint88)" - } - ], - "id": 5970, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "11882:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11882:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint88", - "typeString": "type(uint88)" - } - }, - "id": 5974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "11895:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "11882:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint88", - "typeString": "uint88" - } - }, - "src": "11874:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5982, - "nodeType": "IfStatement", - "src": "11870:103:28", - "trueBody": { - "id": 5981, - "nodeType": "Block", - "src": "11900:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3838", - "id": 5977, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11952:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_88_by_1", - "typeString": "int_const 88" - }, - "value": "88" - }, - { - "id": 5978, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5964, - "src": "11956:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_88_by_1", - "typeString": "int_const 88" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5976, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "11921:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 5979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11921:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5980, - "nodeType": "RevertStatement", - "src": "11914:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 5985, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5964, - "src": "11996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5984, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint88_$", - "typeString": "type(uint88)" - }, - "typeName": { - "id": 5983, - "name": "uint88", - "nodeType": "ElementaryTypeName", - "src": "11989:6:28", - "typeDescriptions": {} - } - }, - "id": 5986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint88", - "typeString": "uint88" - } - }, - "functionReturnParameters": 5968, - "id": 5987, - "nodeType": "Return", - "src": "11982:20:28" - } - ] - }, - "documentation": { - "id": 5962, - "nodeType": "StructuredDocumentation", - "src": "11515:276:28", - "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": 5989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint88", - "nameLocation": "11805:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5964, - "mutability": "mutable", - "name": "value", - "nameLocation": "11822:5:28", - "nodeType": "VariableDeclaration", - "scope": 5989, - "src": "11814:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11814:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11813:15:28" - }, - "returnParameters": { - "id": 5968, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5967, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5989, - "src": "11852:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint88", - "typeString": "uint88" - }, - "typeName": { - "id": 5966, - "name": "uint88", - "nodeType": "ElementaryTypeName", - "src": "11852:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint88", - "typeString": "uint88" - } - }, - "visibility": "internal" - } - ], - "src": "11851:8:28" - }, - "scope": 7139, - "src": "11796:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6016, - "nodeType": "Block", - "src": "12360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5997, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5992, - "src": "12374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6000, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint80_$", - "typeString": "type(uint80)" - }, - "typeName": { - "id": 5999, - "name": "uint80", - "nodeType": "ElementaryTypeName", - "src": "12387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint80_$", - "typeString": "type(uint80)" - } - ], - "id": 5998, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "12382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6001, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint80", - "typeString": "type(uint80)" - } - }, - "id": 6002, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "12395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "12382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - } - }, - "src": "12374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6010, - "nodeType": "IfStatement", - "src": "12370:103:28", - "trueBody": { - "id": 6009, - "nodeType": "Block", - "src": "12400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3830", - "id": 6005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_80_by_1", - "typeString": "int_const 80" - }, - "value": "80" - }, - { - "id": 6006, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5992, - "src": "12456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_80_by_1", - "typeString": "int_const 80" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6004, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "12421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6008, - "nodeType": "RevertStatement", - "src": "12414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6013, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5992, - "src": "12496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint80_$", - "typeString": "type(uint80)" - }, - "typeName": { - "id": 6011, - "name": "uint80", - "nodeType": "ElementaryTypeName", - "src": "12489:6:28", - "typeDescriptions": {} - } - }, - "id": 6014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - } - }, - "functionReturnParameters": 5996, - "id": 6015, - "nodeType": "Return", - "src": "12482:20:28" - } - ] - }, - "documentation": { - "id": 5990, - "nodeType": "StructuredDocumentation", - "src": "12015:276:28", - "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": 6017, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint80", - "nameLocation": "12305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5993, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5992, - "mutability": "mutable", - "name": "value", - "nameLocation": "12322:5:28", - "nodeType": "VariableDeclaration", - "scope": 6017, - "src": "12314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5991, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12313:15:28" - }, - "returnParameters": { - "id": 5996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5995, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6017, - "src": "12352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - }, - "typeName": { - "id": 5994, - "name": "uint80", - "nodeType": "ElementaryTypeName", - "src": "12352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - } - }, - "visibility": "internal" - } - ], - "src": "12351:8:28" - }, - "scope": 7139, - "src": "12296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6044, - "nodeType": "Block", - "src": "12860:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6025, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6020, - "src": "12874:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12887:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint72_$", - "typeString": "type(uint72)" - }, - "typeName": { - "id": 6027, - "name": "uint72", - "nodeType": "ElementaryTypeName", - "src": "12887:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint72_$", - "typeString": "type(uint72)" - } - ], - "id": 6026, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "12882:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12882:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint72", - "typeString": "type(uint72)" - } - }, - "id": 6030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "12895:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "12882:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint72", - "typeString": "uint72" - } - }, - "src": "12874:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6038, - "nodeType": "IfStatement", - "src": "12870:103:28", - "trueBody": { - "id": 6037, - "nodeType": "Block", - "src": "12900:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3732", - "id": 6033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12952:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_72_by_1", - "typeString": "int_const 72" - }, - "value": "72" - }, - { - "id": 6034, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6020, - "src": "12956:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_72_by_1", - "typeString": "int_const 72" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6032, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "12921:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12921:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6036, - "nodeType": "RevertStatement", - "src": "12914:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6041, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6020, - "src": "12996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint72_$", - "typeString": "type(uint72)" - }, - "typeName": { - "id": 6039, - "name": "uint72", - "nodeType": "ElementaryTypeName", - "src": "12989:6:28", - "typeDescriptions": {} - } - }, - "id": 6042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint72", - "typeString": "uint72" - } - }, - "functionReturnParameters": 6024, - "id": 6043, - "nodeType": "Return", - "src": "12982:20:28" - } - ] - }, - "documentation": { - "id": 6018, - "nodeType": "StructuredDocumentation", - "src": "12515:276:28", - "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": 6045, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint72", - "nameLocation": "12805:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6020, - "mutability": "mutable", - "name": "value", - "nameLocation": "12822:5:28", - "nodeType": "VariableDeclaration", - "scope": 6045, - "src": "12814:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6019, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12814:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12813:15:28" - }, - "returnParameters": { - "id": 6024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6023, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6045, - "src": "12852:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint72", - "typeString": "uint72" - }, - "typeName": { - "id": 6022, - "name": "uint72", - "nodeType": "ElementaryTypeName", - "src": "12852:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint72", - "typeString": "uint72" - } - }, - "visibility": "internal" - } - ], - "src": "12851:8:28" - }, - "scope": 7139, - "src": "12796:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6072, - "nodeType": "Block", - "src": "13360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6053, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6048, - "src": "13374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 6055, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - } - ], - "id": 6054, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "13382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6057, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint64", - "typeString": "type(uint64)" - } - }, - "id": 6058, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "13395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "13382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "13374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6066, - "nodeType": "IfStatement", - "src": "13370:103:28", - "trueBody": { - "id": 6065, - "nodeType": "Block", - "src": "13400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3634", - "id": 6061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - { - "id": 6062, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6048, - "src": "13456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6060, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "13421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6064, - "nodeType": "RevertStatement", - "src": "13414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6069, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6048, - "src": "13496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6068, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 6067, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13489:6:28", - "typeDescriptions": {} - } - }, - "id": 6070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 6052, - "id": 6071, - "nodeType": "Return", - "src": "13482:20:28" - } - ] - }, - "documentation": { - "id": 6046, - "nodeType": "StructuredDocumentation", - "src": "13015:276:28", - "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": 6073, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint64", - "nameLocation": "13305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6048, - "mutability": "mutable", - "name": "value", - "nameLocation": "13322:5:28", - "nodeType": "VariableDeclaration", - "scope": 6073, - "src": "13314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6047, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13313:15:28" - }, - "returnParameters": { - "id": 6052, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6051, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6073, - "src": "13352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 6050, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "13351:8:28" - }, - "scope": 7139, - "src": "13296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6100, - "nodeType": "Block", - "src": "13860:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6081, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6076, - "src": "13874:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13887:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint56_$", - "typeString": "type(uint56)" - }, - "typeName": { - "id": 6083, - "name": "uint56", - "nodeType": "ElementaryTypeName", - "src": "13887:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint56_$", - "typeString": "type(uint56)" - } - ], - "id": 6082, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "13882:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13882:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint56", - "typeString": "type(uint56)" - } - }, - "id": 6086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "13895:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "13882:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint56", - "typeString": "uint56" - } - }, - "src": "13874:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6094, - "nodeType": "IfStatement", - "src": "13870:103:28", - "trueBody": { - "id": 6093, - "nodeType": "Block", - "src": "13900:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3536", - "id": 6089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13952:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_56_by_1", - "typeString": "int_const 56" - }, - "value": "56" - }, - { - "id": 6090, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6076, - "src": "13956:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_56_by_1", - "typeString": "int_const 56" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6088, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "13921:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13921:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6092, - "nodeType": "RevertStatement", - "src": "13914:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6097, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6076, - "src": "13996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6096, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint56_$", - "typeString": "type(uint56)" - }, - "typeName": { - "id": 6095, - "name": "uint56", - "nodeType": "ElementaryTypeName", - "src": "13989:6:28", - "typeDescriptions": {} - } - }, - "id": 6098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint56", - "typeString": "uint56" - } - }, - "functionReturnParameters": 6080, - "id": 6099, - "nodeType": "Return", - "src": "13982:20:28" - } - ] - }, - "documentation": { - "id": 6074, - "nodeType": "StructuredDocumentation", - "src": "13515:276:28", - "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": 6101, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint56", - "nameLocation": "13805:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6077, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6076, - "mutability": "mutable", - "name": "value", - "nameLocation": "13822:5:28", - "nodeType": "VariableDeclaration", - "scope": 6101, - "src": "13814:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6075, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13814:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13813:15:28" - }, - "returnParameters": { - "id": 6080, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6079, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6101, - "src": "13852:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint56", - "typeString": "uint56" - }, - "typeName": { - "id": 6078, - "name": "uint56", - "nodeType": "ElementaryTypeName", - "src": "13852:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint56", - "typeString": "uint56" - } - }, - "visibility": "internal" - } - ], - "src": "13851:8:28" - }, - "scope": 7139, - "src": "13796:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6128, - "nodeType": "Block", - "src": "14360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6109, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6104, - "src": "14374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint48_$", - "typeString": "type(uint48)" - }, - "typeName": { - "id": 6111, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "14387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint48_$", - "typeString": "type(uint48)" - } - ], - "id": 6110, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "14382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint48", - "typeString": "type(uint48)" - } - }, - "id": 6114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "14395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "14382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "src": "14374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6122, - "nodeType": "IfStatement", - "src": "14370:103:28", - "trueBody": { - "id": 6121, - "nodeType": "Block", - "src": "14400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3438", - "id": 6117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - "value": "48" - }, - { - "id": 6118, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6104, - "src": "14456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6116, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "14421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6120, - "nodeType": "RevertStatement", - "src": "14414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6125, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6104, - "src": "14496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6124, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint48_$", - "typeString": "type(uint48)" - }, - "typeName": { - "id": 6123, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "14489:6:28", - "typeDescriptions": {} - } - }, - "id": 6126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "functionReturnParameters": 6108, - "id": 6127, - "nodeType": "Return", - "src": "14482:20:28" - } - ] - }, - "documentation": { - "id": 6102, - "nodeType": "StructuredDocumentation", - "src": "14015:276:28", - "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": 6129, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint48", - "nameLocation": "14305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6104, - "mutability": "mutable", - "name": "value", - "nameLocation": "14322:5:28", - "nodeType": "VariableDeclaration", - "scope": 6129, - "src": "14314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6103, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14313:15:28" - }, - "returnParameters": { - "id": 6108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6107, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6129, - "src": "14352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 6106, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "14352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "14351:8:28" - }, - "scope": 7139, - "src": "14296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6156, - "nodeType": "Block", - "src": "14860:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6137, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "14874:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14887:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint40_$", - "typeString": "type(uint40)" - }, - "typeName": { - "id": 6139, - "name": "uint40", - "nodeType": "ElementaryTypeName", - "src": "14887:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint40_$", - "typeString": "type(uint40)" - } - ], - "id": 6138, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "14882:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14882:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint40", - "typeString": "type(uint40)" - } - }, - "id": 6142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "14895:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "14882:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - } - }, - "src": "14874:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6150, - "nodeType": "IfStatement", - "src": "14870:103:28", - "trueBody": { - "id": 6149, - "nodeType": "Block", - "src": "14900:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3430", - "id": 6145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14952:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - "value": "40" - }, - { - "id": 6146, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "14956:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6144, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "14921:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14921:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6148, - "nodeType": "RevertStatement", - "src": "14914:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6153, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "14996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint40_$", - "typeString": "type(uint40)" - }, - "typeName": { - "id": 6151, - "name": "uint40", - "nodeType": "ElementaryTypeName", - "src": "14989:6:28", - "typeDescriptions": {} - } - }, - "id": 6154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - } - }, - "functionReturnParameters": 6136, - "id": 6155, - "nodeType": "Return", - "src": "14982:20:28" - } - ] - }, - "documentation": { - "id": 6130, - "nodeType": "StructuredDocumentation", - "src": "14515:276:28", - "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": 6157, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint40", - "nameLocation": "14805:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6132, - "mutability": "mutable", - "name": "value", - "nameLocation": "14822:5:28", - "nodeType": "VariableDeclaration", - "scope": 6157, - "src": "14814:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14814:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14813:15:28" - }, - "returnParameters": { - "id": 6136, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6135, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6157, - "src": "14852:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - }, - "typeName": { - "id": 6134, - "name": "uint40", - "nodeType": "ElementaryTypeName", - "src": "14852:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - } - }, - "visibility": "internal" - } - ], - "src": "14851:8:28" - }, - "scope": 7139, - "src": "14796:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6184, - "nodeType": "Block", - "src": "15360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6165, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6160, - "src": "15374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6168, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 6167, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "15387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - } - ], - "id": 6166, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "15382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint32", - "typeString": "type(uint32)" - } - }, - "id": 6170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "15395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "15382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "15374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6178, - "nodeType": "IfStatement", - "src": "15370:103:28", - "trueBody": { - "id": 6177, - "nodeType": "Block", - "src": "15400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3332", - "id": 6173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - { - "id": 6174, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6160, - "src": "15456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6172, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "15421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6176, - "nodeType": "RevertStatement", - "src": "15414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6181, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6160, - "src": "15496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 6179, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "15489:6:28", - "typeDescriptions": {} - } - }, - "id": 6182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 6164, - "id": 6183, - "nodeType": "Return", - "src": "15482:20:28" - } - ] - }, - "documentation": { - "id": 6158, - "nodeType": "StructuredDocumentation", - "src": "15015:276:28", - "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": 6185, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint32", - "nameLocation": "15305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6161, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6160, - "mutability": "mutable", - "name": "value", - "nameLocation": "15322:5:28", - "nodeType": "VariableDeclaration", - "scope": 6185, - "src": "15314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6159, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "15313:15:28" - }, - "returnParameters": { - "id": 6164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6163, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6185, - "src": "15352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 6162, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "15352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "15351:8:28" - }, - "scope": 7139, - "src": "15296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6212, - "nodeType": "Block", - "src": "15860:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6193, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6188, - "src": "15874:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15887:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint24_$", - "typeString": "type(uint24)" - }, - "typeName": { - "id": 6195, - "name": "uint24", - "nodeType": "ElementaryTypeName", - "src": "15887:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint24_$", - "typeString": "type(uint24)" - } - ], - "id": 6194, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "15882:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15882:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint24", - "typeString": "type(uint24)" - } - }, - "id": 6198, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "15895:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "15882:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint24", - "typeString": "uint24" - } - }, - "src": "15874:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6206, - "nodeType": "IfStatement", - "src": "15870:103:28", - "trueBody": { - "id": 6205, - "nodeType": "Block", - "src": "15900:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3234", - "id": 6201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15952:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - "value": "24" - }, - { - "id": 6202, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6188, - "src": "15956:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6200, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "15921:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15921:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6204, - "nodeType": "RevertStatement", - "src": "15914:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6209, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6188, - "src": "15996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint24_$", - "typeString": "type(uint24)" - }, - "typeName": { - "id": 6207, - "name": "uint24", - "nodeType": "ElementaryTypeName", - "src": "15989:6:28", - "typeDescriptions": {} - } - }, - "id": 6210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint24", - "typeString": "uint24" - } - }, - "functionReturnParameters": 6192, - "id": 6211, - "nodeType": "Return", - "src": "15982:20:28" - } - ] - }, - "documentation": { - "id": 6186, - "nodeType": "StructuredDocumentation", - "src": "15515:276:28", - "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": 6213, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint24", - "nameLocation": "15805:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6188, - "mutability": "mutable", - "name": "value", - "nameLocation": "15822:5:28", - "nodeType": "VariableDeclaration", - "scope": 6213, - "src": "15814:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6187, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15814:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "15813:15:28" - }, - "returnParameters": { - "id": 6192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6191, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6213, - "src": "15852:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint24", - "typeString": "uint24" - }, - "typeName": { - "id": 6190, - "name": "uint24", - "nodeType": "ElementaryTypeName", - "src": "15852:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint24", - "typeString": "uint24" - } - }, - "visibility": "internal" - } - ], - "src": "15851:8:28" - }, - "scope": 7139, - "src": "15796:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6240, - "nodeType": "Block", - "src": "16360:149:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6221, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6216, - "src": "16374:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6224, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16387:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": { - "id": 6223, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "16387:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - } - ], - "id": 6222, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "16382:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16382:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint16", - "typeString": "type(uint16)" - } - }, - "id": 6226, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "16395:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "16382:16:28", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "16374:24:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6234, - "nodeType": "IfStatement", - "src": "16370:103:28", - "trueBody": { - "id": 6233, - "nodeType": "Block", - "src": "16400:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3136", - "id": 6229, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16452:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - { - "id": 6230, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6216, - "src": "16456:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6228, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "16421:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16421:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6232, - "nodeType": "RevertStatement", - "src": "16414:48:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6237, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6216, - "src": "16496:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16489:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": { - "id": 6235, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "16489:6:28", - "typeDescriptions": {} - } - }, - "id": 6238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16489:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 6220, - "id": 6239, - "nodeType": "Return", - "src": "16482:20:28" - } - ] - }, - "documentation": { - "id": 6214, - "nodeType": "StructuredDocumentation", - "src": "16015:276:28", - "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": 6241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint16", - "nameLocation": "16305:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6217, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6216, - "mutability": "mutable", - "name": "value", - "nameLocation": "16322:5:28", - "nodeType": "VariableDeclaration", - "scope": 6241, - "src": "16314:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6215, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16314:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "16313:15:28" - }, - "returnParameters": { - "id": 6220, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6219, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6241, - "src": "16352:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 6218, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "16352:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "visibility": "internal" - } - ], - "src": "16351:8:28" - }, - "scope": 7139, - "src": "16296:213:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6268, - "nodeType": "Block", - "src": "16854:146:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6249, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6244, - "src": "16868:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16881:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 6251, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "16881:5:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - } - ], - "id": 6250, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "16876:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 6253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16876:11:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint8", - "typeString": "type(uint8)" - } - }, - "id": 6254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "16888:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "16876:15:28", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "16868:23:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6262, - "nodeType": "IfStatement", - "src": "16864:101:28", - "trueBody": { - "id": 6261, - "nodeType": "Block", - "src": "16893:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "38", - "id": 6257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16945:1:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - { - "id": 6258, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6244, - "src": "16948:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6256, - "name": "SafeCastOverflowedUintDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5384, - "src": "16914:30:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint8,uint256) pure returns (error)" - } - }, - "id": 6259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16914:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6260, - "nodeType": "RevertStatement", - "src": "16907:47:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6265, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6244, - "src": "16987:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16981:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 6263, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "16981:5:28", - "typeDescriptions": {} - } - }, - "id": 6266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16981:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 6248, - "id": 6267, - "nodeType": "Return", - "src": "16974:19:28" - } - ] - }, - "documentation": { - "id": 6242, - "nodeType": "StructuredDocumentation", - "src": "16515:272:28", - "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": 6269, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint8", - "nameLocation": "16801:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6245, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6244, - "mutability": "mutable", - "name": "value", - "nameLocation": "16817:5:28", - "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "16809:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6243, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16809:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "16808:15:28" - }, - "returnParameters": { - "id": 6248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6247, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "16847:5:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6246, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "16847:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "16846:7:28" - }, - "scope": 7139, - "src": "16792:208:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6291, - "nodeType": "Block", - "src": "17236:128:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6277, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6272, - "src": "17250:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "hexValue": "30", - "id": 6278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17258:1:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17250:9:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6285, - "nodeType": "IfStatement", - "src": "17246:81:28", - "trueBody": { - "id": 6284, - "nodeType": "Block", - "src": "17261:66:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 6281, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6272, - "src": "17310:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6280, - "name": "SafeCastOverflowedIntToUint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5389, - "src": "17282:27:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_int256_$returns$_t_error_$", - "typeString": "function (int256) pure returns (error)" - } - }, - "id": 6282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17282:34:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6283, - "nodeType": "RevertStatement", - "src": "17275:41:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6288, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6272, - "src": "17351:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17343:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6286, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17343:7:28", - "typeDescriptions": {} - } - }, - "id": 6289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17343:14:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6276, - "id": 6290, - "nodeType": "Return", - "src": "17336:21:28" - } - ] - }, - "documentation": { - "id": 6270, - "nodeType": "StructuredDocumentation", - "src": "17006:160:28", - "text": " @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0." - }, - "id": 6292, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint256", - "nameLocation": "17180:9:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6272, - "mutability": "mutable", - "name": "value", - "nameLocation": "17197:5:28", - "nodeType": "VariableDeclaration", - "scope": 6292, - "src": "17190:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6271, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "17190:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "17189:14:28" - }, - "returnParameters": { - "id": 6276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6275, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6292, - "src": "17227:7:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17227:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "17226:9:28" - }, - "scope": 7139, - "src": "17171:193:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6317, - "nodeType": "Block", - "src": "17761:150:28", - "statements": [ - { - "expression": { - "id": 6305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6300, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6298, - "src": "17771:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6303, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6295, - "src": "17791:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17784:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int248_$", - "typeString": "type(int248)" - }, - "typeName": { - "id": 6301, - "name": "int248", - "nodeType": "ElementaryTypeName", - "src": "17784:6:28", - "typeDescriptions": {} - } - }, - "id": 6304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17784:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - } - }, - "src": "17771:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - } - }, - "id": 6306, - "nodeType": "ExpressionStatement", - "src": "17771:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6307, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6298, - "src": "17811:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6308, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6295, - "src": "17825:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "17811:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6316, - "nodeType": "IfStatement", - "src": "17807:98:28", - "trueBody": { - "id": 6315, - "nodeType": "Block", - "src": "17832:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323438", - "id": 6311, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17883:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_248_by_1", - "typeString": "int_const 248" - }, - "value": "248" - }, - { - "id": 6312, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6295, - "src": "17888:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_248_by_1", - "typeString": "int_const 248" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6310, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "17853:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17853:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6314, - "nodeType": "RevertStatement", - "src": "17846:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6293, - "nodeType": "StructuredDocumentation", - "src": "17370:312:28", - "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": 6318, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt248", - "nameLocation": "17696:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6295, - "mutability": "mutable", - "name": "value", - "nameLocation": "17712:5:28", - "nodeType": "VariableDeclaration", - "scope": 6318, - "src": "17705:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6294, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "17705:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "17704:14:28" - }, - "returnParameters": { - "id": 6299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6298, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "17749:10:28", - "nodeType": "VariableDeclaration", - "scope": 6318, - "src": "17742:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - }, - "typeName": { - "id": 6297, - "name": "int248", - "nodeType": "ElementaryTypeName", - "src": "17742:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int248", - "typeString": "int248" - } - }, - "visibility": "internal" - } - ], - "src": "17741:19:28" - }, - "scope": 7139, - "src": "17687:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6343, - "nodeType": "Block", - "src": "18308:150:28", - "statements": [ - { - "expression": { - "id": 6331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6326, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "18318:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6329, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6321, - "src": "18338:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6328, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18331:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int240_$", - "typeString": "type(int240)" - }, - "typeName": { - "id": 6327, - "name": "int240", - "nodeType": "ElementaryTypeName", - "src": "18331:6:28", - "typeDescriptions": {} - } - }, - "id": 6330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18331:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - } - }, - "src": "18318:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - } - }, - "id": 6332, - "nodeType": "ExpressionStatement", - "src": "18318:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6333, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "18358:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6334, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6321, - "src": "18372:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "18358:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6342, - "nodeType": "IfStatement", - "src": "18354:98:28", - "trueBody": { - "id": 6341, - "nodeType": "Block", - "src": "18379:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323430", - "id": 6337, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18430:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_240_by_1", - "typeString": "int_const 240" - }, - "value": "240" - }, - { - "id": 6338, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6321, - "src": "18435:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_240_by_1", - "typeString": "int_const 240" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6336, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "18400:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18400:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6340, - "nodeType": "RevertStatement", - "src": "18393:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6319, - "nodeType": "StructuredDocumentation", - "src": "17917:312:28", - "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": 6344, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt240", - "nameLocation": "18243:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6321, - "mutability": "mutable", - "name": "value", - "nameLocation": "18259:5:28", - "nodeType": "VariableDeclaration", - "scope": 6344, - "src": "18252:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6320, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "18252:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "18251:14:28" - }, - "returnParameters": { - "id": 6325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6324, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "18296:10:28", - "nodeType": "VariableDeclaration", - "scope": 6344, - "src": "18289:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - }, - "typeName": { - "id": 6323, - "name": "int240", - "nodeType": "ElementaryTypeName", - "src": "18289:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int240", - "typeString": "int240" - } - }, - "visibility": "internal" - } - ], - "src": "18288:19:28" - }, - "scope": 7139, - "src": "18234:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6369, - "nodeType": "Block", - "src": "18855:150:28", - "statements": [ - { - "expression": { - "id": 6357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6352, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6350, - "src": "18865:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6355, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6347, - "src": "18885:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18878:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int232_$", - "typeString": "type(int232)" - }, - "typeName": { - "id": 6353, - "name": "int232", - "nodeType": "ElementaryTypeName", - "src": "18878:6:28", - "typeDescriptions": {} - } - }, - "id": 6356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18878:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - } - }, - "src": "18865:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - } - }, - "id": 6358, - "nodeType": "ExpressionStatement", - "src": "18865:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6359, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6350, - "src": "18905:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6360, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6347, - "src": "18919:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "18905:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6368, - "nodeType": "IfStatement", - "src": "18901:98:28", - "trueBody": { - "id": 6367, - "nodeType": "Block", - "src": "18926:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323332", - "id": 6363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18977:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_232_by_1", - "typeString": "int_const 232" - }, - "value": "232" - }, - { - "id": 6364, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6347, - "src": "18982:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_232_by_1", - "typeString": "int_const 232" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6362, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "18947:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18947:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6366, - "nodeType": "RevertStatement", - "src": "18940:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6345, - "nodeType": "StructuredDocumentation", - "src": "18464:312:28", - "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": 6370, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt232", - "nameLocation": "18790:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6347, - "mutability": "mutable", - "name": "value", - "nameLocation": "18806:5:28", - "nodeType": "VariableDeclaration", - "scope": 6370, - "src": "18799:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6346, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "18799:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "18798:14:28" - }, - "returnParameters": { - "id": 6351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6350, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "18843:10:28", - "nodeType": "VariableDeclaration", - "scope": 6370, - "src": "18836:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - }, - "typeName": { - "id": 6349, - "name": "int232", - "nodeType": "ElementaryTypeName", - "src": "18836:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int232", - "typeString": "int232" - } - }, - "visibility": "internal" - } - ], - "src": "18835:19:28" - }, - "scope": 7139, - "src": "18781:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6395, - "nodeType": "Block", - "src": "19402:150:28", - "statements": [ - { - "expression": { - "id": 6383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6378, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6376, - "src": "19412:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6381, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "19432:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19425:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int224_$", - "typeString": "type(int224)" - }, - "typeName": { - "id": 6379, - "name": "int224", - "nodeType": "ElementaryTypeName", - "src": "19425:6:28", - "typeDescriptions": {} - } - }, - "id": 6382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19425:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - } - }, - "src": "19412:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - } - }, - "id": 6384, - "nodeType": "ExpressionStatement", - "src": "19412:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6385, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6376, - "src": "19452:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6386, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "19466:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "19452:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6394, - "nodeType": "IfStatement", - "src": "19448:98:28", - "trueBody": { - "id": 6393, - "nodeType": "Block", - "src": "19473:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323234", - "id": 6389, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19524:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_224_by_1", - "typeString": "int_const 224" - }, - "value": "224" - }, - { - "id": 6390, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "19529:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_224_by_1", - "typeString": "int_const 224" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6388, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "19494:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19494:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6392, - "nodeType": "RevertStatement", - "src": "19487:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6371, - "nodeType": "StructuredDocumentation", - "src": "19011:312:28", - "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": 6396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt224", - "nameLocation": "19337:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6374, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6373, - "mutability": "mutable", - "name": "value", - "nameLocation": "19353:5:28", - "nodeType": "VariableDeclaration", - "scope": 6396, - "src": "19346:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6372, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "19346:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "19345:14:28" - }, - "returnParameters": { - "id": 6377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6376, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "19390:10:28", - "nodeType": "VariableDeclaration", - "scope": 6396, - "src": "19383:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - }, - "typeName": { - "id": 6375, - "name": "int224", - "nodeType": "ElementaryTypeName", - "src": "19383:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int224", - "typeString": "int224" - } - }, - "visibility": "internal" - } - ], - "src": "19382:19:28" - }, - "scope": 7139, - "src": "19328:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6421, - "nodeType": "Block", - "src": "19949:150:28", - "statements": [ - { - "expression": { - "id": 6409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6404, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6402, - "src": "19959:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6407, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6399, - "src": "19979:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6406, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19972:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int216_$", - "typeString": "type(int216)" - }, - "typeName": { - "id": 6405, - "name": "int216", - "nodeType": "ElementaryTypeName", - "src": "19972:6:28", - "typeDescriptions": {} - } - }, - "id": 6408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19972:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - } - }, - "src": "19959:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - } - }, - "id": 6410, - "nodeType": "ExpressionStatement", - "src": "19959:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6411, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6402, - "src": "19999:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6412, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6399, - "src": "20013:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "19999:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6420, - "nodeType": "IfStatement", - "src": "19995:98:28", - "trueBody": { - "id": 6419, - "nodeType": "Block", - "src": "20020:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323136", - "id": 6415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20071:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_216_by_1", - "typeString": "int_const 216" - }, - "value": "216" - }, - { - "id": 6416, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6399, - "src": "20076:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_216_by_1", - "typeString": "int_const 216" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6414, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "20041:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20041:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6418, - "nodeType": "RevertStatement", - "src": "20034:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6397, - "nodeType": "StructuredDocumentation", - "src": "19558:312:28", - "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": 6422, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt216", - "nameLocation": "19884:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6399, - "mutability": "mutable", - "name": "value", - "nameLocation": "19900:5:28", - "nodeType": "VariableDeclaration", - "scope": 6422, - "src": "19893:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6398, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "19893:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "19892:14:28" - }, - "returnParameters": { - "id": 6403, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6402, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "19937:10:28", - "nodeType": "VariableDeclaration", - "scope": 6422, - "src": "19930:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - }, - "typeName": { - "id": 6401, - "name": "int216", - "nodeType": "ElementaryTypeName", - "src": "19930:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int216", - "typeString": "int216" - } - }, - "visibility": "internal" - } - ], - "src": "19929:19:28" - }, - "scope": 7139, - "src": "19875:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6447, - "nodeType": "Block", - "src": "20496:150:28", - "statements": [ - { - "expression": { - "id": 6435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6430, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "20506:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6433, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6425, - "src": "20526:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20519:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int208_$", - "typeString": "type(int208)" - }, - "typeName": { - "id": 6431, - "name": "int208", - "nodeType": "ElementaryTypeName", - "src": "20519:6:28", - "typeDescriptions": {} - } - }, - "id": 6434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20519:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - } - }, - "src": "20506:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - } - }, - "id": 6436, - "nodeType": "ExpressionStatement", - "src": "20506:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6437, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "20546:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6438, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6425, - "src": "20560:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "20546:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6446, - "nodeType": "IfStatement", - "src": "20542:98:28", - "trueBody": { - "id": 6445, - "nodeType": "Block", - "src": "20567:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323038", - "id": 6441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20618:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_208_by_1", - "typeString": "int_const 208" - }, - "value": "208" - }, - { - "id": 6442, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6425, - "src": "20623:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_208_by_1", - "typeString": "int_const 208" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6440, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "20588:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20588:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6444, - "nodeType": "RevertStatement", - "src": "20581:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6423, - "nodeType": "StructuredDocumentation", - "src": "20105:312:28", - "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": 6448, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt208", - "nameLocation": "20431:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6425, - "mutability": "mutable", - "name": "value", - "nameLocation": "20447:5:28", - "nodeType": "VariableDeclaration", - "scope": 6448, - "src": "20440:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6424, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "20440:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "20439:14:28" - }, - "returnParameters": { - "id": 6429, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6428, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "20484:10:28", - "nodeType": "VariableDeclaration", - "scope": 6448, - "src": "20477:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - }, - "typeName": { - "id": 6427, - "name": "int208", - "nodeType": "ElementaryTypeName", - "src": "20477:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int208", - "typeString": "int208" - } - }, - "visibility": "internal" - } - ], - "src": "20476:19:28" - }, - "scope": 7139, - "src": "20422:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6473, - "nodeType": "Block", - "src": "21043:150:28", - "statements": [ - { - "expression": { - "id": 6461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6456, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6454, - "src": "21053:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6459, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6451, - "src": "21073:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21066:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int200_$", - "typeString": "type(int200)" - }, - "typeName": { - "id": 6457, - "name": "int200", - "nodeType": "ElementaryTypeName", - "src": "21066:6:28", - "typeDescriptions": {} - } - }, - "id": 6460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21066:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - } - }, - "src": "21053:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - } - }, - "id": 6462, - "nodeType": "ExpressionStatement", - "src": "21053:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6463, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6454, - "src": "21093:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6464, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6451, - "src": "21107:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "21093:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6472, - "nodeType": "IfStatement", - "src": "21089:98:28", - "trueBody": { - "id": 6471, - "nodeType": "Block", - "src": "21114:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "323030", - "id": 6467, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21165:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" - }, - "value": "200" - }, - { - "id": 6468, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6451, - "src": "21170:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6466, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "21135:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21135:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6470, - "nodeType": "RevertStatement", - "src": "21128:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6449, - "nodeType": "StructuredDocumentation", - "src": "20652:312:28", - "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": 6474, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt200", - "nameLocation": "20978:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6452, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6451, - "mutability": "mutable", - "name": "value", - "nameLocation": "20994:5:28", - "nodeType": "VariableDeclaration", - "scope": 6474, - "src": "20987:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6450, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "20987:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "20986:14:28" - }, - "returnParameters": { - "id": 6455, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6454, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "21031:10:28", - "nodeType": "VariableDeclaration", - "scope": 6474, - "src": "21024:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - }, - "typeName": { - "id": 6453, - "name": "int200", - "nodeType": "ElementaryTypeName", - "src": "21024:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int200", - "typeString": "int200" - } - }, - "visibility": "internal" - } - ], - "src": "21023:19:28" - }, - "scope": 7139, - "src": "20969:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6499, - "nodeType": "Block", - "src": "21590:150:28", - "statements": [ - { - "expression": { - "id": 6487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6482, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6480, - "src": "21600:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6485, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6477, - "src": "21620:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21613:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int192_$", - "typeString": "type(int192)" - }, - "typeName": { - "id": 6483, - "name": "int192", - "nodeType": "ElementaryTypeName", - "src": "21613:6:28", - "typeDescriptions": {} - } - }, - "id": 6486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21613:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - } - }, - "src": "21600:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - } - }, - "id": 6488, - "nodeType": "ExpressionStatement", - "src": "21600:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6489, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6480, - "src": "21640:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6490, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6477, - "src": "21654:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "21640:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6498, - "nodeType": "IfStatement", - "src": "21636:98:28", - "trueBody": { - "id": 6497, - "nodeType": "Block", - "src": "21661:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313932", - "id": 6493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21712:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_192_by_1", - "typeString": "int_const 192" - }, - "value": "192" - }, - { - "id": 6494, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6477, - "src": "21717:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_192_by_1", - "typeString": "int_const 192" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6492, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "21682:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21682:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6496, - "nodeType": "RevertStatement", - "src": "21675:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6475, - "nodeType": "StructuredDocumentation", - "src": "21199:312:28", - "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": 6500, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt192", - "nameLocation": "21525:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6477, - "mutability": "mutable", - "name": "value", - "nameLocation": "21541:5:28", - "nodeType": "VariableDeclaration", - "scope": 6500, - "src": "21534:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6476, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "21534:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "21533:14:28" - }, - "returnParameters": { - "id": 6481, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6480, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "21578:10:28", - "nodeType": "VariableDeclaration", - "scope": 6500, - "src": "21571:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - }, - "typeName": { - "id": 6479, - "name": "int192", - "nodeType": "ElementaryTypeName", - "src": "21571:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int192", - "typeString": "int192" - } - }, - "visibility": "internal" - } - ], - "src": "21570:19:28" - }, - "scope": 7139, - "src": "21516:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6525, - "nodeType": "Block", - "src": "22137:150:28", - "statements": [ - { - "expression": { - "id": 6513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6508, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6506, - "src": "22147:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6511, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6503, - "src": "22167:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22160:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int184_$", - "typeString": "type(int184)" - }, - "typeName": { - "id": 6509, - "name": "int184", - "nodeType": "ElementaryTypeName", - "src": "22160:6:28", - "typeDescriptions": {} - } - }, - "id": 6512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22160:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - } - }, - "src": "22147:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - } - }, - "id": 6514, - "nodeType": "ExpressionStatement", - "src": "22147:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6515, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6506, - "src": "22187:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6516, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6503, - "src": "22201:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "22187:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6524, - "nodeType": "IfStatement", - "src": "22183:98:28", - "trueBody": { - "id": 6523, - "nodeType": "Block", - "src": "22208:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313834", - "id": 6519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22259:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_184_by_1", - "typeString": "int_const 184" - }, - "value": "184" - }, - { - "id": 6520, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6503, - "src": "22264:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_184_by_1", - "typeString": "int_const 184" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6518, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "22229:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22229:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6522, - "nodeType": "RevertStatement", - "src": "22222:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6501, - "nodeType": "StructuredDocumentation", - "src": "21746:312:28", - "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": 6526, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt184", - "nameLocation": "22072:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6503, - "mutability": "mutable", - "name": "value", - "nameLocation": "22088:5:28", - "nodeType": "VariableDeclaration", - "scope": 6526, - "src": "22081:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6502, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "22081:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "22080:14:28" - }, - "returnParameters": { - "id": 6507, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6506, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "22125:10:28", - "nodeType": "VariableDeclaration", - "scope": 6526, - "src": "22118:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - }, - "typeName": { - "id": 6505, - "name": "int184", - "nodeType": "ElementaryTypeName", - "src": "22118:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int184", - "typeString": "int184" - } - }, - "visibility": "internal" - } - ], - "src": "22117:19:28" - }, - "scope": 7139, - "src": "22063:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6551, - "nodeType": "Block", - "src": "22684:150:28", - "statements": [ - { - "expression": { - "id": 6539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6534, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6532, - "src": "22694:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6537, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "22714:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22707:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int176_$", - "typeString": "type(int176)" - }, - "typeName": { - "id": 6535, - "name": "int176", - "nodeType": "ElementaryTypeName", - "src": "22707:6:28", - "typeDescriptions": {} - } - }, - "id": 6538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22707:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - } - }, - "src": "22694:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - } - }, - "id": 6540, - "nodeType": "ExpressionStatement", - "src": "22694:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6541, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6532, - "src": "22734:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6542, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "22748:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "22734:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6550, - "nodeType": "IfStatement", - "src": "22730:98:28", - "trueBody": { - "id": 6549, - "nodeType": "Block", - "src": "22755:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313736", - "id": 6545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22806:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_176_by_1", - "typeString": "int_const 176" - }, - "value": "176" - }, - { - "id": 6546, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "22811:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_176_by_1", - "typeString": "int_const 176" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6544, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "22776:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22776:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6548, - "nodeType": "RevertStatement", - "src": "22769:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6527, - "nodeType": "StructuredDocumentation", - "src": "22293:312:28", - "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": 6552, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt176", - "nameLocation": "22619:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6529, - "mutability": "mutable", - "name": "value", - "nameLocation": "22635:5:28", - "nodeType": "VariableDeclaration", - "scope": 6552, - "src": "22628:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6528, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "22628:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "22627:14:28" - }, - "returnParameters": { - "id": 6533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6532, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "22672:10:28", - "nodeType": "VariableDeclaration", - "scope": 6552, - "src": "22665:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - }, - "typeName": { - "id": 6531, - "name": "int176", - "nodeType": "ElementaryTypeName", - "src": "22665:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int176", - "typeString": "int176" - } - }, - "visibility": "internal" - } - ], - "src": "22664:19:28" - }, - "scope": 7139, - "src": "22610:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6577, - "nodeType": "Block", - "src": "23231:150:28", - "statements": [ - { - "expression": { - "id": 6565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6560, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6558, - "src": "23241:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6563, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6555, - "src": "23261:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6562, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23254:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int168_$", - "typeString": "type(int168)" - }, - "typeName": { - "id": 6561, - "name": "int168", - "nodeType": "ElementaryTypeName", - "src": "23254:6:28", - "typeDescriptions": {} - } - }, - "id": 6564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23254:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - } - }, - "src": "23241:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - } - }, - "id": 6566, - "nodeType": "ExpressionStatement", - "src": "23241:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6567, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6558, - "src": "23281:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6568, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6555, - "src": "23295:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "23281:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6576, - "nodeType": "IfStatement", - "src": "23277:98:28", - "trueBody": { - "id": 6575, - "nodeType": "Block", - "src": "23302:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313638", - "id": 6571, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23353:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_168_by_1", - "typeString": "int_const 168" - }, - "value": "168" - }, - { - "id": 6572, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6555, - "src": "23358:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_168_by_1", - "typeString": "int_const 168" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6570, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "23323:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23323:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6574, - "nodeType": "RevertStatement", - "src": "23316:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6553, - "nodeType": "StructuredDocumentation", - "src": "22840:312:28", - "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": 6578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt168", - "nameLocation": "23166:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6556, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6555, - "mutability": "mutable", - "name": "value", - "nameLocation": "23182:5:28", - "nodeType": "VariableDeclaration", - "scope": 6578, - "src": "23175:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6554, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "23175:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "23174:14:28" - }, - "returnParameters": { - "id": 6559, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6558, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "23219:10:28", - "nodeType": "VariableDeclaration", - "scope": 6578, - "src": "23212:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - }, - "typeName": { - "id": 6557, - "name": "int168", - "nodeType": "ElementaryTypeName", - "src": "23212:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int168", - "typeString": "int168" - } - }, - "visibility": "internal" - } - ], - "src": "23211:19:28" - }, - "scope": 7139, - "src": "23157:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6603, - "nodeType": "Block", - "src": "23778:150:28", - "statements": [ - { - "expression": { - "id": 6591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6586, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6584, - "src": "23788:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6589, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6581, - "src": "23808:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23801:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int160_$", - "typeString": "type(int160)" - }, - "typeName": { - "id": 6587, - "name": "int160", - "nodeType": "ElementaryTypeName", - "src": "23801:6:28", - "typeDescriptions": {} - } - }, - "id": 6590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23801:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - } - }, - "src": "23788:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - } - }, - "id": 6592, - "nodeType": "ExpressionStatement", - "src": "23788:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6593, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6584, - "src": "23828:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6594, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6581, - "src": "23842:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "23828:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6602, - "nodeType": "IfStatement", - "src": "23824:98:28", - "trueBody": { - "id": 6601, - "nodeType": "Block", - "src": "23849:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313630", - "id": 6597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23900:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_160_by_1", - "typeString": "int_const 160" - }, - "value": "160" - }, - { - "id": 6598, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6581, - "src": "23905:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_160_by_1", - "typeString": "int_const 160" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6596, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "23870:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23870:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6600, - "nodeType": "RevertStatement", - "src": "23863:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6579, - "nodeType": "StructuredDocumentation", - "src": "23387:312:28", - "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": 6604, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt160", - "nameLocation": "23713:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6582, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6581, - "mutability": "mutable", - "name": "value", - "nameLocation": "23729:5:28", - "nodeType": "VariableDeclaration", - "scope": 6604, - "src": "23722:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6580, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "23722:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "23721:14:28" - }, - "returnParameters": { - "id": 6585, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6584, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "23766:10:28", - "nodeType": "VariableDeclaration", - "scope": 6604, - "src": "23759:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - }, - "typeName": { - "id": 6583, - "name": "int160", - "nodeType": "ElementaryTypeName", - "src": "23759:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int160", - "typeString": "int160" - } - }, - "visibility": "internal" - } - ], - "src": "23758:19:28" - }, - "scope": 7139, - "src": "23704:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6629, - "nodeType": "Block", - "src": "24325:150:28", - "statements": [ - { - "expression": { - "id": 6617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6612, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6610, - "src": "24335:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6615, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "24355:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24348:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int152_$", - "typeString": "type(int152)" - }, - "typeName": { - "id": 6613, - "name": "int152", - "nodeType": "ElementaryTypeName", - "src": "24348:6:28", - "typeDescriptions": {} - } - }, - "id": 6616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24348:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - } - }, - "src": "24335:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - } - }, - "id": 6618, - "nodeType": "ExpressionStatement", - "src": "24335:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6619, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6610, - "src": "24375:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6620, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "24389:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "24375:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6628, - "nodeType": "IfStatement", - "src": "24371:98:28", - "trueBody": { - "id": 6627, - "nodeType": "Block", - "src": "24396:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313532", - "id": 6623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24447:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_152_by_1", - "typeString": "int_const 152" - }, - "value": "152" - }, - { - "id": 6624, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "24452:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_152_by_1", - "typeString": "int_const 152" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6622, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "24417:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24417:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6626, - "nodeType": "RevertStatement", - "src": "24410:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6605, - "nodeType": "StructuredDocumentation", - "src": "23934:312:28", - "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": 6630, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt152", - "nameLocation": "24260:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6608, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6607, - "mutability": "mutable", - "name": "value", - "nameLocation": "24276:5:28", - "nodeType": "VariableDeclaration", - "scope": 6630, - "src": "24269:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6606, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "24269:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "24268:14:28" - }, - "returnParameters": { - "id": 6611, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6610, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "24313:10:28", - "nodeType": "VariableDeclaration", - "scope": 6630, - "src": "24306:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - }, - "typeName": { - "id": 6609, - "name": "int152", - "nodeType": "ElementaryTypeName", - "src": "24306:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int152", - "typeString": "int152" - } - }, - "visibility": "internal" - } - ], - "src": "24305:19:28" - }, - "scope": 7139, - "src": "24251:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6655, - "nodeType": "Block", - "src": "24872:150:28", - "statements": [ - { - "expression": { - "id": 6643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6638, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6636, - "src": "24882:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6641, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6633, - "src": "24902:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24895:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int144_$", - "typeString": "type(int144)" - }, - "typeName": { - "id": 6639, - "name": "int144", - "nodeType": "ElementaryTypeName", - "src": "24895:6:28", - "typeDescriptions": {} - } - }, - "id": 6642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24895:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - } - }, - "src": "24882:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - } - }, - "id": 6644, - "nodeType": "ExpressionStatement", - "src": "24882:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6645, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6636, - "src": "24922:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6646, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6633, - "src": "24936:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "24922:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6654, - "nodeType": "IfStatement", - "src": "24918:98:28", - "trueBody": { - "id": 6653, - "nodeType": "Block", - "src": "24943:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313434", - "id": 6649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24994:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_144_by_1", - "typeString": "int_const 144" - }, - "value": "144" - }, - { - "id": 6650, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6633, - "src": "24999:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_144_by_1", - "typeString": "int_const 144" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6648, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "24964:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24964:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6652, - "nodeType": "RevertStatement", - "src": "24957:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6631, - "nodeType": "StructuredDocumentation", - "src": "24481:312:28", - "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": 6656, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt144", - "nameLocation": "24807:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6634, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6633, - "mutability": "mutable", - "name": "value", - "nameLocation": "24823:5:28", - "nodeType": "VariableDeclaration", - "scope": 6656, - "src": "24816:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6632, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "24816:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "24815:14:28" - }, - "returnParameters": { - "id": 6637, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6636, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "24860:10:28", - "nodeType": "VariableDeclaration", - "scope": 6656, - "src": "24853:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - }, - "typeName": { - "id": 6635, - "name": "int144", - "nodeType": "ElementaryTypeName", - "src": "24853:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int144", - "typeString": "int144" - } - }, - "visibility": "internal" - } - ], - "src": "24852:19:28" - }, - "scope": 7139, - "src": "24798:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6681, - "nodeType": "Block", - "src": "25419:150:28", - "statements": [ - { - "expression": { - "id": 6669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6664, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6662, - "src": "25429:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6667, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6659, - "src": "25449:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "25442:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int136_$", - "typeString": "type(int136)" - }, - "typeName": { - "id": 6665, - "name": "int136", - "nodeType": "ElementaryTypeName", - "src": "25442:6:28", - "typeDescriptions": {} - } - }, - "id": 6668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25442:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - } - }, - "src": "25429:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - } - }, - "id": 6670, - "nodeType": "ExpressionStatement", - "src": "25429:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6671, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6662, - "src": "25469:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6672, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6659, - "src": "25483:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "25469:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6680, - "nodeType": "IfStatement", - "src": "25465:98:28", - "trueBody": { - "id": 6679, - "nodeType": "Block", - "src": "25490:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313336", - "id": 6675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25541:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_136_by_1", - "typeString": "int_const 136" - }, - "value": "136" - }, - { - "id": 6676, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6659, - "src": "25546:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_136_by_1", - "typeString": "int_const 136" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6674, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "25511:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25511:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6678, - "nodeType": "RevertStatement", - "src": "25504:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6657, - "nodeType": "StructuredDocumentation", - "src": "25028:312:28", - "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": 6682, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt136", - "nameLocation": "25354:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6659, - "mutability": "mutable", - "name": "value", - "nameLocation": "25370:5:28", - "nodeType": "VariableDeclaration", - "scope": 6682, - "src": "25363:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6658, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "25363:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "25362:14:28" - }, - "returnParameters": { - "id": 6663, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6662, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "25407:10:28", - "nodeType": "VariableDeclaration", - "scope": 6682, - "src": "25400:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - }, - "typeName": { - "id": 6661, - "name": "int136", - "nodeType": "ElementaryTypeName", - "src": "25400:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int136", - "typeString": "int136" - } - }, - "visibility": "internal" - } - ], - "src": "25399:19:28" - }, - "scope": 7139, - "src": "25345:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6707, - "nodeType": "Block", - "src": "25966:150:28", - "statements": [ - { - "expression": { - "id": 6695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6690, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6688, - "src": "25976:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6693, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6685, - "src": "25996:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "25989:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int128_$", - "typeString": "type(int128)" - }, - "typeName": { - "id": 6691, - "name": "int128", - "nodeType": "ElementaryTypeName", - "src": "25989:6:28", - "typeDescriptions": {} - } - }, - "id": 6694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25989:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - } - }, - "src": "25976:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - } - }, - "id": 6696, - "nodeType": "ExpressionStatement", - "src": "25976:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6697, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6688, - "src": "26016:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6698, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6685, - "src": "26030:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "26016:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6706, - "nodeType": "IfStatement", - "src": "26012:98:28", - "trueBody": { - "id": 6705, - "nodeType": "Block", - "src": "26037:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313238", - "id": 6701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26088:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - { - "id": 6702, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6685, - "src": "26093:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6700, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "26058:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26058:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6704, - "nodeType": "RevertStatement", - "src": "26051:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6683, - "nodeType": "StructuredDocumentation", - "src": "25575:312:28", - "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": 6708, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt128", - "nameLocation": "25901:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6686, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6685, - "mutability": "mutable", - "name": "value", - "nameLocation": "25917:5:28", - "nodeType": "VariableDeclaration", - "scope": 6708, - "src": "25910:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6684, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "25910:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "25909:14:28" - }, - "returnParameters": { - "id": 6689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6688, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "25954:10:28", - "nodeType": "VariableDeclaration", - "scope": 6708, - "src": "25947:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - }, - "typeName": { - "id": 6687, - "name": "int128", - "nodeType": "ElementaryTypeName", - "src": "25947:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int128", - "typeString": "int128" - } - }, - "visibility": "internal" - } - ], - "src": "25946:19:28" - }, - "scope": 7139, - "src": "25892:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6733, - "nodeType": "Block", - "src": "26513:150:28", - "statements": [ - { - "expression": { - "id": 6721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6716, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6714, - "src": "26523:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6719, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6711, - "src": "26543:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "26536:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int120_$", - "typeString": "type(int120)" - }, - "typeName": { - "id": 6717, - "name": "int120", - "nodeType": "ElementaryTypeName", - "src": "26536:6:28", - "typeDescriptions": {} - } - }, - "id": 6720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26536:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - } - }, - "src": "26523:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - } - }, - "id": 6722, - "nodeType": "ExpressionStatement", - "src": "26523:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6723, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6714, - "src": "26563:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6724, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6711, - "src": "26577:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "26563:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6732, - "nodeType": "IfStatement", - "src": "26559:98:28", - "trueBody": { - "id": 6731, - "nodeType": "Block", - "src": "26584:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313230", - "id": 6727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26635:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - "value": "120" - }, - { - "id": 6728, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6711, - "src": "26640:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6726, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "26605:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26605:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6730, - "nodeType": "RevertStatement", - "src": "26598:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6709, - "nodeType": "StructuredDocumentation", - "src": "26122:312:28", - "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": 6734, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt120", - "nameLocation": "26448:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6712, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6711, - "mutability": "mutable", - "name": "value", - "nameLocation": "26464:5:28", - "nodeType": "VariableDeclaration", - "scope": 6734, - "src": "26457:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6710, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "26457:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "26456:14:28" - }, - "returnParameters": { - "id": 6715, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6714, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "26501:10:28", - "nodeType": "VariableDeclaration", - "scope": 6734, - "src": "26494:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - }, - "typeName": { - "id": 6713, - "name": "int120", - "nodeType": "ElementaryTypeName", - "src": "26494:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int120", - "typeString": "int120" - } - }, - "visibility": "internal" - } - ], - "src": "26493:19:28" - }, - "scope": 7139, - "src": "26439:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6759, - "nodeType": "Block", - "src": "27060:150:28", - "statements": [ - { - "expression": { - "id": 6747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6742, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6740, - "src": "27070:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6745, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6737, - "src": "27090:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "27083:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int112_$", - "typeString": "type(int112)" - }, - "typeName": { - "id": 6743, - "name": "int112", - "nodeType": "ElementaryTypeName", - "src": "27083:6:28", - "typeDescriptions": {} - } - }, - "id": 6746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27083:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - } - }, - "src": "27070:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - } - }, - "id": 6748, - "nodeType": "ExpressionStatement", - "src": "27070:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6749, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6740, - "src": "27110:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6750, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6737, - "src": "27124:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "27110:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6758, - "nodeType": "IfStatement", - "src": "27106:98:28", - "trueBody": { - "id": 6757, - "nodeType": "Block", - "src": "27131:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313132", - "id": 6753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27182:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - "value": "112" - }, - { - "id": 6754, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6737, - "src": "27187:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6752, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "27152:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27152:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6756, - "nodeType": "RevertStatement", - "src": "27145:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6735, - "nodeType": "StructuredDocumentation", - "src": "26669:312:28", - "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": 6760, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt112", - "nameLocation": "26995:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6738, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6737, - "mutability": "mutable", - "name": "value", - "nameLocation": "27011:5:28", - "nodeType": "VariableDeclaration", - "scope": 6760, - "src": "27004:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6736, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "27004:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "27003:14:28" - }, - "returnParameters": { - "id": 6741, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6740, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "27048:10:28", - "nodeType": "VariableDeclaration", - "scope": 6760, - "src": "27041:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - }, - "typeName": { - "id": 6739, - "name": "int112", - "nodeType": "ElementaryTypeName", - "src": "27041:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int112", - "typeString": "int112" - } - }, - "visibility": "internal" - } - ], - "src": "27040:19:28" - }, - "scope": 7139, - "src": "26986:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6785, - "nodeType": "Block", - "src": "27607:150:28", - "statements": [ - { - "expression": { - "id": 6773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6768, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6766, - "src": "27617:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6771, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6763, - "src": "27637:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "27630:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int104_$", - "typeString": "type(int104)" - }, - "typeName": { - "id": 6769, - "name": "int104", - "nodeType": "ElementaryTypeName", - "src": "27630:6:28", - "typeDescriptions": {} - } - }, - "id": 6772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27630:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - } - }, - "src": "27617:26:28", - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - } - }, - "id": 6774, - "nodeType": "ExpressionStatement", - "src": "27617:26:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6775, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6766, - "src": "27657:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6776, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6763, - "src": "27671:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "27657:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6784, - "nodeType": "IfStatement", - "src": "27653:98:28", - "trueBody": { - "id": 6783, - "nodeType": "Block", - "src": "27678:73:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "313034", - "id": 6779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27729:3:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_104_by_1", - "typeString": "int_const 104" - }, - "value": "104" - }, - { - "id": 6780, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6763, - "src": "27734:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_104_by_1", - "typeString": "int_const 104" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6778, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "27699:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27699:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6782, - "nodeType": "RevertStatement", - "src": "27692:48:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6761, - "nodeType": "StructuredDocumentation", - "src": "27216:312:28", - "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": 6786, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt104", - "nameLocation": "27542:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6764, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6763, - "mutability": "mutable", - "name": "value", - "nameLocation": "27558:5:28", - "nodeType": "VariableDeclaration", - "scope": 6786, - "src": "27551:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6762, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "27551:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "27550:14:28" - }, - "returnParameters": { - "id": 6767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6766, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "27595:10:28", - "nodeType": "VariableDeclaration", - "scope": 6786, - "src": "27588:17:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - }, - "typeName": { - "id": 6765, - "name": "int104", - "nodeType": "ElementaryTypeName", - "src": "27588:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int104", - "typeString": "int104" - } - }, - "visibility": "internal" - } - ], - "src": "27587:19:28" - }, - "scope": 7139, - "src": "27533:224:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6811, - "nodeType": "Block", - "src": "28147:148:28", - "statements": [ - { - "expression": { - "id": 6799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6794, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6792, - "src": "28157:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6797, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "28176:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28170:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int96_$", - "typeString": "type(int96)" - }, - "typeName": { - "id": 6795, - "name": "int96", - "nodeType": "ElementaryTypeName", - "src": "28170:5:28", - "typeDescriptions": {} - } - }, - "id": 6798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28170:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - } - }, - "src": "28157:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - } - }, - "id": 6800, - "nodeType": "ExpressionStatement", - "src": "28157:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6801, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6792, - "src": "28196:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6802, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "28210:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "28196:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6810, - "nodeType": "IfStatement", - "src": "28192:97:28", - "trueBody": { - "id": 6809, - "nodeType": "Block", - "src": "28217:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3936", - "id": 6805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28268:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - "value": "96" - }, - { - "id": 6806, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "28272:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6804, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "28238:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28238:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6808, - "nodeType": "RevertStatement", - "src": "28231:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6787, - "nodeType": "StructuredDocumentation", - "src": "27763:307:28", - "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": 6812, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt96", - "nameLocation": "28084:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6790, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6789, - "mutability": "mutable", - "name": "value", - "nameLocation": "28099:5:28", - "nodeType": "VariableDeclaration", - "scope": 6812, - "src": "28092:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6788, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "28092:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "28091:14:28" - }, - "returnParameters": { - "id": 6793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6792, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "28135:10:28", - "nodeType": "VariableDeclaration", - "scope": 6812, - "src": "28129:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - }, - "typeName": { - "id": 6791, - "name": "int96", - "nodeType": "ElementaryTypeName", - "src": "28129:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int96", - "typeString": "int96" - } - }, - "visibility": "internal" - } - ], - "src": "28128:18:28" - }, - "scope": 7139, - "src": "28075:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6837, - "nodeType": "Block", - "src": "28685:148:28", - "statements": [ - { - "expression": { - "id": 6825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6820, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6818, - "src": "28695:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6823, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6815, - "src": "28714:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28708:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int88_$", - "typeString": "type(int88)" - }, - "typeName": { - "id": 6821, - "name": "int88", - "nodeType": "ElementaryTypeName", - "src": "28708:5:28", - "typeDescriptions": {} - } - }, - "id": 6824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28708:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - } - }, - "src": "28695:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - } - }, - "id": 6826, - "nodeType": "ExpressionStatement", - "src": "28695:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6827, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6818, - "src": "28734:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6828, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6815, - "src": "28748:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "28734:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6836, - "nodeType": "IfStatement", - "src": "28730:97:28", - "trueBody": { - "id": 6835, - "nodeType": "Block", - "src": "28755:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3838", - "id": 6831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28806:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_88_by_1", - "typeString": "int_const 88" - }, - "value": "88" - }, - { - "id": 6832, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6815, - "src": "28810:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_88_by_1", - "typeString": "int_const 88" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6830, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "28776:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28776:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6834, - "nodeType": "RevertStatement", - "src": "28769:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6813, - "nodeType": "StructuredDocumentation", - "src": "28301:307:28", - "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": 6838, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt88", - "nameLocation": "28622:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6815, - "mutability": "mutable", - "name": "value", - "nameLocation": "28637:5:28", - "nodeType": "VariableDeclaration", - "scope": 6838, - "src": "28630:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6814, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "28630:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "28629:14:28" - }, - "returnParameters": { - "id": 6819, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6818, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "28673:10:28", - "nodeType": "VariableDeclaration", - "scope": 6838, - "src": "28667:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - }, - "typeName": { - "id": 6817, - "name": "int88", - "nodeType": "ElementaryTypeName", - "src": "28667:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int88", - "typeString": "int88" - } - }, - "visibility": "internal" - } - ], - "src": "28666:18:28" - }, - "scope": 7139, - "src": "28613:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6863, - "nodeType": "Block", - "src": "29223:148:28", - "statements": [ - { - "expression": { - "id": 6851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6846, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6844, - "src": "29233:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6849, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6841, - "src": "29252:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "29246:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int80_$", - "typeString": "type(int80)" - }, - "typeName": { - "id": 6847, - "name": "int80", - "nodeType": "ElementaryTypeName", - "src": "29246:5:28", - "typeDescriptions": {} - } - }, - "id": 6850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29246:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - } - }, - "src": "29233:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - } - }, - "id": 6852, - "nodeType": "ExpressionStatement", - "src": "29233:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6853, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6844, - "src": "29272:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6854, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6841, - "src": "29286:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "29272:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6862, - "nodeType": "IfStatement", - "src": "29268:97:28", - "trueBody": { - "id": 6861, - "nodeType": "Block", - "src": "29293:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3830", - "id": 6857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29344:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_80_by_1", - "typeString": "int_const 80" - }, - "value": "80" - }, - { - "id": 6858, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6841, - "src": "29348:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_80_by_1", - "typeString": "int_const 80" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6856, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "29314:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29314:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6860, - "nodeType": "RevertStatement", - "src": "29307:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6839, - "nodeType": "StructuredDocumentation", - "src": "28839:307:28", - "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": 6864, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt80", - "nameLocation": "29160:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6842, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6841, - "mutability": "mutable", - "name": "value", - "nameLocation": "29175:5:28", - "nodeType": "VariableDeclaration", - "scope": 6864, - "src": "29168:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6840, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "29168:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "29167:14:28" - }, - "returnParameters": { - "id": 6845, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6844, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "29211:10:28", - "nodeType": "VariableDeclaration", - "scope": 6864, - "src": "29205:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - }, - "typeName": { - "id": 6843, - "name": "int80", - "nodeType": "ElementaryTypeName", - "src": "29205:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int80", - "typeString": "int80" - } - }, - "visibility": "internal" - } - ], - "src": "29204:18:28" - }, - "scope": 7139, - "src": "29151:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6889, - "nodeType": "Block", - "src": "29761:148:28", - "statements": [ - { - "expression": { - "id": 6877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6872, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6870, - "src": "29771:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6875, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6867, - "src": "29790:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "29784:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int72_$", - "typeString": "type(int72)" - }, - "typeName": { - "id": 6873, - "name": "int72", - "nodeType": "ElementaryTypeName", - "src": "29784:5:28", - "typeDescriptions": {} - } - }, - "id": 6876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29784:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - } - }, - "src": "29771:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - } - }, - "id": 6878, - "nodeType": "ExpressionStatement", - "src": "29771:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6879, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6870, - "src": "29810:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6880, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6867, - "src": "29824:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "29810:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6888, - "nodeType": "IfStatement", - "src": "29806:97:28", - "trueBody": { - "id": 6887, - "nodeType": "Block", - "src": "29831:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3732", - "id": 6883, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29882:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_72_by_1", - "typeString": "int_const 72" - }, - "value": "72" - }, - { - "id": 6884, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6867, - "src": "29886:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_72_by_1", - "typeString": "int_const 72" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6882, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "29852:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29852:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6886, - "nodeType": "RevertStatement", - "src": "29845:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6865, - "nodeType": "StructuredDocumentation", - "src": "29377:307:28", - "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": 6890, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt72", - "nameLocation": "29698:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6867, - "mutability": "mutable", - "name": "value", - "nameLocation": "29713:5:28", - "nodeType": "VariableDeclaration", - "scope": 6890, - "src": "29706:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6866, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "29706:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "29705:14:28" - }, - "returnParameters": { - "id": 6871, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6870, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "29749:10:28", - "nodeType": "VariableDeclaration", - "scope": 6890, - "src": "29743:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - }, - "typeName": { - "id": 6869, - "name": "int72", - "nodeType": "ElementaryTypeName", - "src": "29743:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int72", - "typeString": "int72" - } - }, - "visibility": "internal" - } - ], - "src": "29742:18:28" - }, - "scope": 7139, - "src": "29689:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6915, - "nodeType": "Block", - "src": "30299:148:28", - "statements": [ - { - "expression": { - "id": 6903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6898, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6896, - "src": "30309:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6901, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6893, - "src": "30328:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "30322:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int64_$", - "typeString": "type(int64)" - }, - "typeName": { - "id": 6899, - "name": "int64", - "nodeType": "ElementaryTypeName", - "src": "30322:5:28", - "typeDescriptions": {} - } - }, - "id": 6902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30322:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - } - }, - "src": "30309:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - } - }, - "id": 6904, - "nodeType": "ExpressionStatement", - "src": "30309:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6905, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6896, - "src": "30348:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6906, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6893, - "src": "30362:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "30348:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6914, - "nodeType": "IfStatement", - "src": "30344:97:28", - "trueBody": { - "id": 6913, - "nodeType": "Block", - "src": "30369:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3634", - "id": 6909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "30420:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - { - "id": 6910, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6893, - "src": "30424:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6908, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "30390:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30390:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6912, - "nodeType": "RevertStatement", - "src": "30383:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6891, - "nodeType": "StructuredDocumentation", - "src": "29915:307:28", - "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": 6916, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt64", - "nameLocation": "30236:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6894, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6893, - "mutability": "mutable", - "name": "value", - "nameLocation": "30251:5:28", - "nodeType": "VariableDeclaration", - "scope": 6916, - "src": "30244:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6892, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "30244:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "30243:14:28" - }, - "returnParameters": { - "id": 6897, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6896, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "30287:10:28", - "nodeType": "VariableDeclaration", - "scope": 6916, - "src": "30281:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - }, - "typeName": { - "id": 6895, - "name": "int64", - "nodeType": "ElementaryTypeName", - "src": "30281:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int64", - "typeString": "int64" - } - }, - "visibility": "internal" - } - ], - "src": "30280:18:28" - }, - "scope": 7139, - "src": "30227:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6941, - "nodeType": "Block", - "src": "30837:148:28", - "statements": [ - { - "expression": { - "id": 6929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6924, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6922, - "src": "30847:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6927, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6919, - "src": "30866:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "30860:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int56_$", - "typeString": "type(int56)" - }, - "typeName": { - "id": 6925, - "name": "int56", - "nodeType": "ElementaryTypeName", - "src": "30860:5:28", - "typeDescriptions": {} - } - }, - "id": 6928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30860:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - } - }, - "src": "30847:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - } - }, - "id": 6930, - "nodeType": "ExpressionStatement", - "src": "30847:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6931, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6922, - "src": "30886:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6932, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6919, - "src": "30900:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "30886:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6940, - "nodeType": "IfStatement", - "src": "30882:97:28", - "trueBody": { - "id": 6939, - "nodeType": "Block", - "src": "30907:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3536", - "id": 6935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "30958:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_56_by_1", - "typeString": "int_const 56" - }, - "value": "56" - }, - { - "id": 6936, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6919, - "src": "30962:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_56_by_1", - "typeString": "int_const 56" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6934, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "30928:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30928:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6938, - "nodeType": "RevertStatement", - "src": "30921:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6917, - "nodeType": "StructuredDocumentation", - "src": "30453:307:28", - "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": 6942, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt56", - "nameLocation": "30774:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6920, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6919, - "mutability": "mutable", - "name": "value", - "nameLocation": "30789:5:28", - "nodeType": "VariableDeclaration", - "scope": 6942, - "src": "30782:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6918, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "30782:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "30781:14:28" - }, - "returnParameters": { - "id": 6923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6922, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "30825:10:28", - "nodeType": "VariableDeclaration", - "scope": 6942, - "src": "30819:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - }, - "typeName": { - "id": 6921, - "name": "int56", - "nodeType": "ElementaryTypeName", - "src": "30819:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int56", - "typeString": "int56" - } - }, - "visibility": "internal" - } - ], - "src": "30818:18:28" - }, - "scope": 7139, - "src": "30765:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6967, - "nodeType": "Block", - "src": "31375:148:28", - "statements": [ - { - "expression": { - "id": 6955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6950, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6948, - "src": "31385:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6953, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6945, - "src": "31404:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "31398:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int48_$", - "typeString": "type(int48)" - }, - "typeName": { - "id": 6951, - "name": "int48", - "nodeType": "ElementaryTypeName", - "src": "31398:5:28", - "typeDescriptions": {} - } - }, - "id": 6954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31398:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - } - }, - "src": "31385:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - } - }, - "id": 6956, - "nodeType": "ExpressionStatement", - "src": "31385:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6957, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6948, - "src": "31424:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6958, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6945, - "src": "31438:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "31424:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6966, - "nodeType": "IfStatement", - "src": "31420:97:28", - "trueBody": { - "id": 6965, - "nodeType": "Block", - "src": "31445:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3438", - "id": 6961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31496:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - "value": "48" - }, - { - "id": 6962, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6945, - "src": "31500:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6960, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "31466:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31466:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6964, - "nodeType": "RevertStatement", - "src": "31459:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6943, - "nodeType": "StructuredDocumentation", - "src": "30991:307:28", - "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": 6968, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt48", - "nameLocation": "31312:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6945, - "mutability": "mutable", - "name": "value", - "nameLocation": "31327:5:28", - "nodeType": "VariableDeclaration", - "scope": 6968, - "src": "31320:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6944, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "31320:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "31319:14:28" - }, - "returnParameters": { - "id": 6949, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6948, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "31363:10:28", - "nodeType": "VariableDeclaration", - "scope": 6968, - "src": "31357:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - }, - "typeName": { - "id": 6947, - "name": "int48", - "nodeType": "ElementaryTypeName", - "src": "31357:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int48", - "typeString": "int48" - } - }, - "visibility": "internal" - } - ], - "src": "31356:18:28" - }, - "scope": 7139, - "src": "31303:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6993, - "nodeType": "Block", - "src": "31913:148:28", - "statements": [ - { - "expression": { - "id": 6981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6976, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6974, - "src": "31923:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 6979, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6971, - "src": "31942:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "31936:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int40_$", - "typeString": "type(int40)" - }, - "typeName": { - "id": 6977, - "name": "int40", - "nodeType": "ElementaryTypeName", - "src": "31936:5:28", - "typeDescriptions": {} - } - }, - "id": 6980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31936:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - } - }, - "src": "31923:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - } - }, - "id": 6982, - "nodeType": "ExpressionStatement", - "src": "31923:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6983, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6974, - "src": "31962:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6984, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6971, - "src": "31976:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "31962:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6992, - "nodeType": "IfStatement", - "src": "31958:97:28", - "trueBody": { - "id": 6991, - "nodeType": "Block", - "src": "31983:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3430", - "id": 6987, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32034:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - "value": "40" - }, - { - "id": 6988, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6971, - "src": "32038:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 6986, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "32004:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 6989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32004:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6990, - "nodeType": "RevertStatement", - "src": "31997:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6969, - "nodeType": "StructuredDocumentation", - "src": "31529:307:28", - "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": 6994, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt40", - "nameLocation": "31850:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6971, - "mutability": "mutable", - "name": "value", - "nameLocation": "31865:5:28", - "nodeType": "VariableDeclaration", - "scope": 6994, - "src": "31858:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6970, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "31858:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "31857:14:28" - }, - "returnParameters": { - "id": 6975, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6974, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "31901:10:28", - "nodeType": "VariableDeclaration", - "scope": 6994, - "src": "31895:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - }, - "typeName": { - "id": 6973, - "name": "int40", - "nodeType": "ElementaryTypeName", - "src": "31895:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int40", - "typeString": "int40" - } - }, - "visibility": "internal" - } - ], - "src": "31894:18:28" - }, - "scope": 7139, - "src": "31841:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7019, - "nodeType": "Block", - "src": "32451:148:28", - "statements": [ - { - "expression": { - "id": 7007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7002, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7000, - "src": "32461:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7005, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6997, - "src": "32480:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "32474:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int32_$", - "typeString": "type(int32)" - }, - "typeName": { - "id": 7003, - "name": "int32", - "nodeType": "ElementaryTypeName", - "src": "32474:5:28", - "typeDescriptions": {} - } - }, - "id": 7006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32474:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - } - }, - "src": "32461:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - } - }, - "id": 7008, - "nodeType": "ExpressionStatement", - "src": "32461:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7009, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7000, - "src": "32500:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7010, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6997, - "src": "32514:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "32500:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7018, - "nodeType": "IfStatement", - "src": "32496:97:28", - "trueBody": { - "id": 7017, - "nodeType": "Block", - "src": "32521:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3332", - "id": 7013, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32572:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - { - "id": 7014, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6997, - "src": "32576:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7012, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "32542:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 7015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32542:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7016, - "nodeType": "RevertStatement", - "src": "32535:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 6995, - "nodeType": "StructuredDocumentation", - "src": "32067:307:28", - "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": 7020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt32", - "nameLocation": "32388:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6997, - "mutability": "mutable", - "name": "value", - "nameLocation": "32403:5:28", - "nodeType": "VariableDeclaration", - "scope": 7020, - "src": "32396:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6996, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "32396:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "32395:14:28" - }, - "returnParameters": { - "id": 7001, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7000, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "32439:10:28", - "nodeType": "VariableDeclaration", - "scope": 7020, - "src": "32433:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - }, - "typeName": { - "id": 6999, - "name": "int32", - "nodeType": "ElementaryTypeName", - "src": "32433:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int32", - "typeString": "int32" - } - }, - "visibility": "internal" - } - ], - "src": "32432:18:28" - }, - "scope": 7139, - "src": "32379:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7045, - "nodeType": "Block", - "src": "32989:148:28", - "statements": [ - { - "expression": { - "id": 7033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7028, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7026, - "src": "32999:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7031, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7023, - "src": "33018:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "33012:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int24_$", - "typeString": "type(int24)" - }, - "typeName": { - "id": 7029, - "name": "int24", - "nodeType": "ElementaryTypeName", - "src": "33012:5:28", - "typeDescriptions": {} - } - }, - "id": 7032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33012:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - } - }, - "src": "32999:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - } - }, - "id": 7034, - "nodeType": "ExpressionStatement", - "src": "32999:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7035, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7026, - "src": "33038:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7036, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7023, - "src": "33052:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "33038:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7044, - "nodeType": "IfStatement", - "src": "33034:97:28", - "trueBody": { - "id": 7043, - "nodeType": "Block", - "src": "33059:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3234", - "id": 7039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33110:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - "value": "24" - }, - { - "id": 7040, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7023, - "src": "33114:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7038, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "33080:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 7041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33080:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7042, - "nodeType": "RevertStatement", - "src": "33073:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 7021, - "nodeType": "StructuredDocumentation", - "src": "32605:307:28", - "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": 7046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt24", - "nameLocation": "32926:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7023, - "mutability": "mutable", - "name": "value", - "nameLocation": "32941:5:28", - "nodeType": "VariableDeclaration", - "scope": 7046, - "src": "32934:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7022, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "32934:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "32933:14:28" - }, - "returnParameters": { - "id": 7027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7026, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "32977:10:28", - "nodeType": "VariableDeclaration", - "scope": 7046, - "src": "32971:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - }, - "typeName": { - "id": 7025, - "name": "int24", - "nodeType": "ElementaryTypeName", - "src": "32971:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int24", - "typeString": "int24" - } - }, - "visibility": "internal" - } - ], - "src": "32970:18:28" - }, - "scope": 7139, - "src": "32917:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7071, - "nodeType": "Block", - "src": "33527:148:28", - "statements": [ - { - "expression": { - "id": 7059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7054, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7052, - "src": "33537:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7057, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7049, - "src": "33556:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "33550:5:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int16_$", - "typeString": "type(int16)" - }, - "typeName": { - "id": 7055, - "name": "int16", - "nodeType": "ElementaryTypeName", - "src": "33550:5:28", - "typeDescriptions": {} - } - }, - "id": 7058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33550:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - } - }, - "src": "33537:25:28", - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - } - }, - "id": 7060, - "nodeType": "ExpressionStatement", - "src": "33537:25:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7061, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7052, - "src": "33576:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7062, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7049, - "src": "33590:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "33576:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7070, - "nodeType": "IfStatement", - "src": "33572:97:28", - "trueBody": { - "id": 7069, - "nodeType": "Block", - "src": "33597:72:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "3136", - "id": 7065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33648:2:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - { - "id": 7066, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7049, - "src": "33652:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7064, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "33618:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 7067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33618:40:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7068, - "nodeType": "RevertStatement", - "src": "33611:47:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 7047, - "nodeType": "StructuredDocumentation", - "src": "33143:307:28", - "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": 7072, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt16", - "nameLocation": "33464:7:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7049, - "mutability": "mutable", - "name": "value", - "nameLocation": "33479:5:28", - "nodeType": "VariableDeclaration", - "scope": 7072, - "src": "33472:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7048, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "33472:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "33471:14:28" - }, - "returnParameters": { - "id": 7053, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7052, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "33515:10:28", - "nodeType": "VariableDeclaration", - "scope": 7072, - "src": "33509:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - }, - "typeName": { - "id": 7051, - "name": "int16", - "nodeType": "ElementaryTypeName", - "src": "33509:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int16", - "typeString": "int16" - } - }, - "visibility": "internal" - } - ], - "src": "33508:18:28" - }, - "scope": 7139, - "src": "33455:220:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7097, - "nodeType": "Block", - "src": "34058:146:28", - "statements": [ - { - "expression": { - "id": 7085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7080, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7078, - "src": "34068:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7083, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7075, - "src": "34086:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34081:4:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int8_$", - "typeString": "type(int8)" - }, - "typeName": { - "id": 7081, - "name": "int8", - "nodeType": "ElementaryTypeName", - "src": "34081:4:28", - "typeDescriptions": {} - } - }, - "id": 7084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34081:11:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - } - }, - "src": "34068:24:28", - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - } - }, - "id": 7086, - "nodeType": "ExpressionStatement", - "src": "34068:24:28" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7087, - "name": "downcasted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7078, - "src": "34106:10:28", - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7088, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7075, - "src": "34120:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "34106:19:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7096, - "nodeType": "IfStatement", - "src": "34102:96:28", - "trueBody": { - "id": 7095, - "nodeType": "Block", - "src": "34127:71:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "38", - "id": 7091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34178:1:28", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - { - "id": 7092, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7075, - "src": "34181:5:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7090, - "name": "SafeCastOverflowedIntDowncast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "34148:29:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", - "typeString": "function (uint8,int256) pure returns (error)" - } - }, - "id": 7093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34148:39:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7094, - "nodeType": "RevertStatement", - "src": "34141:46:28" - } - ] - } - } - ] - }, - "documentation": { - "id": 7073, - "nodeType": "StructuredDocumentation", - "src": "33681:302:28", - "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": 7098, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt8", - "nameLocation": "33997:6:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7076, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7075, - "mutability": "mutable", - "name": "value", - "nameLocation": "34011:5:28", - "nodeType": "VariableDeclaration", - "scope": 7098, - "src": "34004:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7074, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "34004:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "34003:14:28" - }, - "returnParameters": { - "id": 7079, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7078, - "mutability": "mutable", - "name": "downcasted", - "nameLocation": "34046:10:28", - "nodeType": "VariableDeclaration", - "scope": 7098, - "src": "34041:15:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - }, - "typeName": { - "id": 7077, - "name": "int8", - "nodeType": "ElementaryTypeName", - "src": "34041:4:28", - "typeDescriptions": { - "typeIdentifier": "t_int8", - "typeString": "int8" - } - }, - "visibility": "internal" - } - ], - "src": "34040:17:28" - }, - "scope": 7139, - "src": "33988:216:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7127, - "nodeType": "Block", - "src": "34444:250:28", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7106, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7101, - "src": "34557:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 7111, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34578:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 7110, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "34578:6:28", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - } - ], - "id": 7109, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "34573:4:28", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 7112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34573:12:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_int256", - "typeString": "type(int256)" - } - }, - "id": 7113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "34586:3:28", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "34573:16:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34565:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 7107, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34565:7:28", - "typeDescriptions": {} - } - }, - "id": 7114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34565:25:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34557:33:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7121, - "nodeType": "IfStatement", - "src": "34553:105:28", - "trueBody": { - "id": 7120, - "nodeType": "Block", - "src": "34592:66:28", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 7117, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7101, - "src": "34641:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7116, - "name": "SafeCastOverflowedUintToInt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5401, - "src": "34613:27:28", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256) pure returns (error)" - } - }, - "id": 7118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34613:34:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7119, - "nodeType": "RevertStatement", - "src": "34606:41:28" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 7124, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7101, - "src": "34681:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34674:6:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 7122, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "34674:6:28", - "typeDescriptions": {} - } - }, - "id": 7125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34674:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 7105, - "id": 7126, - "nodeType": "Return", - "src": "34667:20:28" - } - ] - }, - "documentation": { - "id": 7099, - "nodeType": "StructuredDocumentation", - "src": "34210:165:28", - "text": " @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256." - }, - "id": 7128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toInt256", - "nameLocation": "34389:8:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7102, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7101, - "mutability": "mutable", - "name": "value", - "nameLocation": "34406:5:28", - "nodeType": "VariableDeclaration", - "scope": 7128, - "src": "34398:13:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7100, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34398:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "34397:15:28" - }, - "returnParameters": { - "id": 7105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7104, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7128, - "src": "34436:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7103, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "34436:6:28", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "34435:8:28" - }, - "scope": 7139, - "src": "34380:314:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7137, - "nodeType": "Block", - "src": "34853:87:28", - "statements": [ - { - "AST": { - "nativeSrc": "34888:46:28", - "nodeType": "YulBlock", - "src": "34888:46:28", - "statements": [ - { - "nativeSrc": "34902:22:28", - "nodeType": "YulAssignment", - "src": "34902:22:28", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "b", - "nativeSrc": "34921:1:28", - "nodeType": "YulIdentifier", - "src": "34921:1:28" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "34914:6:28", - "nodeType": "YulIdentifier", - "src": "34914:6:28" - }, - "nativeSrc": "34914:9:28", - "nodeType": "YulFunctionCall", - "src": "34914:9:28" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "34907:6:28", - "nodeType": "YulIdentifier", - "src": "34907:6:28" - }, - "nativeSrc": "34907:17:28", - "nodeType": "YulFunctionCall", - "src": "34907:17:28" - }, - "variableNames": [ - { - "name": "u", - "nativeSrc": "34902:1:28", - "nodeType": "YulIdentifier", - "src": "34902:1:28" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 7131, - "isOffset": false, - "isSlot": false, - "src": "34921:1:28", - "valueSize": 1 - }, - { - "declaration": 7134, - "isOffset": false, - "isSlot": false, - "src": "34902:1:28", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 7136, - "nodeType": "InlineAssembly", - "src": "34863:71:28" - } - ] - }, - "documentation": { - "id": 7129, - "nodeType": "StructuredDocumentation", - "src": "34700:90:28", - "text": " @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump." - }, - "id": 7138, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toUint", - "nameLocation": "34804:6:28", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7131, - "mutability": "mutable", - "name": "b", - "nameLocation": "34816:1:28", - "nodeType": "VariableDeclaration", - "scope": 7138, - "src": "34811:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7130, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "34811:4:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "34810:8:28" - }, - "returnParameters": { - "id": 7135, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7134, - "mutability": "mutable", - "name": "u", - "nameLocation": "34850:1:28", - "nodeType": "VariableDeclaration", - "scope": 7138, - "src": "34842:9:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7133, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34842:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "34841:11:28" - }, - "scope": 7139, - "src": "34795:145:28", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 7140, - "src": "769:34173:28", - "usedErrors": [ - 5384, - 5389, - 5396, - 5401 - ], - "usedEvents": [] - } - ], - "src": "192:34751:28" - }, - "id": 28 - }, - "contracts/DomainMangager/DomainManager.sol": { - "ast": { - "absolutePath": "contracts/DomainMangager/DomainManager.sol", - "exportedSymbols": { - "DomainManager": [ - 7204 - ], - "ISciRegistry": [ - 7736 - ] - }, - "id": 7205, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7141, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:29" - }, - { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "file": "../SciRegistry/ISciRegistry.sol", - "id": 7143, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7205, - "sourceUnit": 7737, - "src": "62:61:29", - "symbolAliases": [ - { - "foreign": { - "id": 7142, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "70:12:29", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "DomainManager", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7144, - "nodeType": "StructuredDocumentation", - "src": "125:185:29", - "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": 7204, - "linearizedBaseContracts": [ - 7204 - ], - "name": "DomainManager", - "nameLocation": "329:13:29", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "7b103999", - "id": 7147, - "mutability": "immutable", - "name": "registry", - "nameLocation": "379:8:29", - "nodeType": "VariableDeclaration", - "scope": 7204, - "src": "349:38:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - }, - "typeName": { - "id": 7146, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7145, - "name": "ISciRegistry", - "nameLocations": [ - "349:12:29" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7736, - "src": "349:12:29" - }, - "referencedDeclaration": 7736, - "src": "349:12:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "visibility": "public" - }, - { - "documentation": { - "id": 7148, - "nodeType": "StructuredDocumentation", - "src": "394:85:29", - "text": " @dev Thrown when the `account` is not the owner of the domainhash." - }, - "errorSelector": "2ebb0ef6", - "id": 7154, - "name": "AccountIsNotDomainOwner", - "nameLocation": "490:23:29", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 7153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7150, - "mutability": "mutable", - "name": "account", - "nameLocation": "522:7:29", - "nodeType": "VariableDeclaration", - "scope": 7154, - "src": "514:15:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "514:7:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7152, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "539:10:29", - "nodeType": "VariableDeclaration", - "scope": 7154, - "src": "531:18:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7151, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "531:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "513:37:29" - }, - "src": "484:67:29" - }, - { - "body": { - "id": 7167, - "nodeType": "Block", - "src": "862:66:29", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7162, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7157, - "src": "890:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7163, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7159, - "src": "899:10:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7161, - "name": "_checkDomainOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7203, - "src": "872:17:29", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) view" - } - }, - "id": 7164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "872:38:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7165, - "nodeType": "ExpressionStatement", - "src": "872:38:29" - }, - { - "id": 7166, - "nodeType": "PlaceholderStatement", - "src": "920:1:29" - } - ] - }, - "documentation": { - "id": 7155, - "nodeType": "StructuredDocumentation", - "src": "557:238:29", - "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": 7168, - "name": "onlyDomainOwner", - "nameLocation": "809:15:29", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7160, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7157, - "mutability": "mutable", - "name": "account", - "nameLocation": "833:7:29", - "nodeType": "VariableDeclaration", - "scope": 7168, - "src": "825:15:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "825:7:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7159, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "850:10:29", - "nodeType": "VariableDeclaration", - "scope": 7168, - "src": "842:18:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7158, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "842:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "824:37:29" - }, - "src": "800:128:29", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7180, - "nodeType": "Block", - "src": "1137:61:29", - "statements": [ - { - "expression": { - "id": 7178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7174, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7147, - "src": "1147:8:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7176, - "name": "_sciRegistryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7171, - "src": "1171:19:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7175, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "1158:12:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7736_$", - "typeString": "type(contract ISciRegistry)" - } - }, - "id": 7177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1158:33:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "src": "1147:44:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7179, - "nodeType": "ExpressionStatement", - "src": "1147:44:29" - } - ] - }, - "documentation": { - "id": 7169, - "nodeType": "StructuredDocumentation", - "src": "934:157:29", - "text": " @dev Initializes the contract with references to the SCI Registry.\n @param _sciRegistryAddress Address of the SCI Registry contract." - }, - "id": 7181, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7171, - "mutability": "mutable", - "name": "_sciRegistryAddress", - "nameLocation": "1116:19:29", - "nodeType": "VariableDeclaration", - "scope": 7181, - "src": "1108:27:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1107:29:29" - }, - "returnParameters": { - "id": 7173, - "nodeType": "ParameterList", - "parameters": [], - "src": "1137:0:29" - }, - "scope": 7204, - "src": "1096:102:29", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7202, - "nodeType": "Block", - "src": "1564:141:29", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7191, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7186, - "src": "1599:10:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7189, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7147, - "src": "1578:8:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1587:11:29", - "memberName": "domainOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 7709, - "src": "1578:20:29", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 7192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1578:32:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7193, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7184, - "src": "1614:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1578:43:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7201, - "nodeType": "IfStatement", - "src": "1574:125:29", - "trueBody": { - "id": 7200, - "nodeType": "Block", - "src": "1623:76:29", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 7196, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7184, - "src": "1668:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7197, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7186, - "src": "1677:10:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7195, - "name": "AccountIsNotDomainOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7154, - "src": "1644:23:29", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", - "typeString": "function (address,bytes32) pure returns (error)" - } - }, - "id": 7198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1644:44:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7199, - "nodeType": "RevertStatement", - "src": "1637:51:29" - } - ] - } - } - ] - }, - "documentation": { - "id": 7182, - "nodeType": "StructuredDocumentation", - "src": "1204:278:29", - "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": 7203, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkDomainOwner", - "nameLocation": "1496:17:29", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7187, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7184, - "mutability": "mutable", - "name": "account", - "nameLocation": "1522:7:29", - "nodeType": "VariableDeclaration", - "scope": 7203, - "src": "1514:15:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7183, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1514:7:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7186, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1539:10:29", - "nodeType": "VariableDeclaration", - "scope": 7203, - "src": "1531:18:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7185, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1531:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1513:37:29" - }, - "returnParameters": { - "id": 7188, - "nodeType": "ParameterList", - "parameters": [], - "src": "1564:0:29" - }, - "scope": 7204, - "src": "1487:218:29", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 7205, - "src": "311:1396:29", - "usedErrors": [ - 7154 - ], - "usedEvents": [] - } - ], - "src": "37:1671:29" - }, - "id": 29 - }, - "contracts/Ens/Ens.sol": { - "ast": { - "absolutePath": "contracts/Ens/Ens.sol", - "exportedSymbols": { - "ENSRegistry": [ - 560 - ] - }, - "id": 7209, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7206, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:30" - }, - { - "absolutePath": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", - "file": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol", - "id": 7208, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7209, - "sourceUnit": 561, - "src": "160:89:30", - "symbolAliases": [ - { - "foreign": { - "id": 7207, - "name": "ENSRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "168:11:30", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - } - ], - "src": "37:213:30" - }, - "id": 30 - }, - "contracts/Proxy/Proxy.sol": { - "ast": { - "absolutePath": "contracts/Proxy/Proxy.sol", - "exportedSymbols": { - "ProxyAdmin": [ - 2992 - ], - "TransparentUpgradeableProxy": [ - 3128 - ] - }, - "id": 7215, - "license": "UNLICENSED", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7210, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "39:23:31" - }, - { - "absolutePath": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", - "file": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", - "id": 7212, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7215, - "sourceUnit": 2993, - "src": "238:84:31", - "symbolAliases": [ - { - "foreign": { - "id": 7211, - "name": "ProxyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "246:10:31", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "file": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "id": 7214, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7215, - "sourceUnit": 3129, - "src": "323:118:31", - "symbolAliases": [ - { - "foreign": { - "id": 7213, - "name": "TransparentUpgradeableProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3128, - "src": "331:27:31", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - } - ], - "src": "39:403:31" - }, - "id": 31 - }, - "contracts/Registrars/EnsRegistrar.sol": { - "ast": { - "absolutePath": "contracts/Registrars/EnsRegistrar.sol", - "exportedSymbols": { - "Context": [ - 3417 - ], - "ENS": [ - 136 - ], - "EnsRegistrar": [ - 7342 - ], - "ISciRegistry": [ - 7736 - ], - "IVerifier": [ - 8101 - ] - }, - "id": 7343, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7216, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:32" - }, - { - "absolutePath": "@ensdomains/ens-contracts/contracts/registry/ENS.sol", - "file": "@ensdomains/ens-contracts/contracts/registry/ENS.sol", - "id": 7218, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7343, - "sourceUnit": 137, - "src": "62:73:32", - "symbolAliases": [ - { - "foreign": { - "id": 7217, - "name": "ENS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "70:3:32", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "file": "../SciRegistry/ISciRegistry.sol", - "id": 7220, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7343, - "sourceUnit": 7737, - "src": "136:61:32", - "symbolAliases": [ - { - "foreign": { - "id": 7219, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "144:12:32", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "../Verifiers/IVerifier.sol", - "id": 7222, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7343, - "sourceUnit": 8102, - "src": "198:53:32", - "symbolAliases": [ - { - "foreign": { - "id": 7221, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "206:9:32", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "@openzeppelin/contracts/utils/Context.sol", - "id": 7224, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7343, - "sourceUnit": 3418, - "src": "252:66:32", - "symbolAliases": [ - { - "foreign": { - "id": 7223, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "src": "260:7:32", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 7226, - "name": "Context", - "nameLocations": [ - "694:7:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3417, - "src": "694:7:32" - }, - "id": 7227, - "nodeType": "InheritanceSpecifier", - "src": "694:7:32" - } - ], - "canonicalName": "EnsRegistrar", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7225, - "nodeType": "StructuredDocumentation", - "src": "320:348:32", - "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": 7342, - "linearizedBaseContracts": [ - 7342, - 3417 - ], - "name": "EnsRegistrar", - "nameLocation": "678:12:32", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "7d73b231", - "id": 7230, - "mutability": "immutable", - "name": "ensRegistry", - "nameLocation": "729:11:32", - "nodeType": "VariableDeclaration", - "scope": 7342, - "src": "708:32:32", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - }, - "typeName": { - "id": 7229, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7228, - "name": "ENS", - "nameLocations": [ - "708:3:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 136, - "src": "708:3:32" - }, - "referencedDeclaration": 136, - "src": "708:3:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7b103999", - "id": 7233, - "mutability": "immutable", - "name": "registry", - "nameLocation": "776:8:32", - "nodeType": "VariableDeclaration", - "scope": 7342, - "src": "746:38:32", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - }, - "typeName": { - "id": 7232, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7231, - "name": "ISciRegistry", - "nameLocations": [ - "746:12:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7736, - "src": "746:12:32" - }, - "referencedDeclaration": 7736, - "src": "746:12:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "visibility": "public" - }, - { - "documentation": { - "id": 7234, - "nodeType": "StructuredDocumentation", - "src": "791:91:32", - "text": " @dev Thrown when the `account` is not the owner of the ENS `domainhash`." - }, - "errorSelector": "36b85210", - "id": 7240, - "name": "AccountIsNotEnsOwner", - "nameLocation": "893:20:32", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 7239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7236, - "mutability": "mutable", - "name": "account", - "nameLocation": "922:7:32", - "nodeType": "VariableDeclaration", - "scope": 7240, - "src": "914:15:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "914:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7238, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "939:10:32", - "nodeType": "VariableDeclaration", - "scope": 7240, - "src": "931:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7237, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "931:7:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "913:37:32" - }, - "src": "887:64:32" - }, - { - "body": { - "id": 7253, - "nodeType": "Block", - "src": "1319:63:32", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7248, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7243, - "src": "1344:7:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7249, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7245, - "src": "1353:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7247, - "name": "_checkEnsOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7341, - "src": "1329:14:32", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) view" - } - }, - "id": 7250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1329:35:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7251, - "nodeType": "ExpressionStatement", - "src": "1329:35:32" - }, - { - "id": 7252, - "nodeType": "PlaceholderStatement", - "src": "1374:1:32" - } - ] - }, - "documentation": { - "id": 7241, - "nodeType": "StructuredDocumentation", - "src": "957:298:32", - "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": 7254, - "name": "onlyEnsOwner", - "nameLocation": "1269:12:32", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7243, - "mutability": "mutable", - "name": "account", - "nameLocation": "1290:7:32", - "nodeType": "VariableDeclaration", - "scope": 7254, - "src": "1282:15:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1282:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7245, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1307:10:32", - "nodeType": "VariableDeclaration", - "scope": 7254, - "src": "1299:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7244, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1299:7:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1281:37:32" - }, - "src": "1260:122:32", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7274, - "nodeType": "Block", - "src": "1704:109:32", - "statements": [ - { - "expression": { - "id": 7266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7262, - "name": "ensRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7230, - "src": "1714:11:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7264, - "name": "_ensRegistryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7257, - "src": "1732:19:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7263, - "name": "ENS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "1728:3:32", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ENS_$136_$", - "typeString": "type(contract ENS)" - } - }, - "id": 7265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1728:24:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - } - }, - "src": "1714:38:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - } - }, - "id": 7267, - "nodeType": "ExpressionStatement", - "src": "1714:38:32" - }, - { - "expression": { - "id": 7272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7268, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7233, - "src": "1762:8:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7270, - "name": "_sciRegistryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7259, - "src": "1786:19:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7269, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "1773:12:32", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7736_$", - "typeString": "type(contract ISciRegistry)" - } - }, - "id": 7271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1773:33:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "src": "1762:44:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7273, - "nodeType": "ExpressionStatement", - "src": "1762:44:32" - } - ] - }, - "documentation": { - "id": 7255, - "nodeType": "StructuredDocumentation", - "src": "1388:241:32", - "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": 7275, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7260, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7257, - "mutability": "mutable", - "name": "_ensRegistryAddress", - "nameLocation": "1654:19:32", - "nodeType": "VariableDeclaration", - "scope": 7275, - "src": "1646:27:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7256, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1646:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7259, - "mutability": "mutable", - "name": "_sciRegistryAddress", - "nameLocation": "1683:19:32", - "nodeType": "VariableDeclaration", - "scope": 7275, - "src": "1675:27:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1675:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1645:58:32" - }, - "returnParameters": { - "id": 7261, - "nodeType": "ParameterList", - "parameters": [], - "src": "1704:0:32" - }, - "scope": 7342, - "src": "1634:179:32", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 7294, - "nodeType": "Block", - "src": "2207:59:32", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7290, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7278, - "src": "2241:5:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7291, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7280, - "src": "2248:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7287, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7233, - "src": "2217:8:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2226:14:32", - "memberName": "registerDomain", - "nodeType": "MemberAccess", - "referencedDeclaration": 7680, - "src": "2217:23:32", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) external" - } - }, - "id": 7292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2217:42:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7293, - "nodeType": "ExpressionStatement", - "src": "2217:42:32" - } - ] - }, - "documentation": { - "id": 7276, - "nodeType": "StructuredDocumentation", - "src": "1819:261:32", - "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": 7295, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7283, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7278, - "src": "2188:5:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7284, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7280, - "src": "2195:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7285, - "kind": "modifierInvocation", - "modifierName": { - "id": 7282, - "name": "onlyEnsOwner", - "nameLocations": [ - "2175:12:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7254, - "src": "2175:12:32" - }, - "nodeType": "ModifierInvocation", - "src": "2175:31:32" - } - ], - "name": "registerDomain", - "nameLocation": "2094:14:32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7278, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2126:5:32", - "nodeType": "VariableDeclaration", - "scope": 7295, - "src": "2118:13:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7277, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2118:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7280, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2149:10:32", - "nodeType": "VariableDeclaration", - "scope": 7295, - "src": "2141:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7279, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2141:7:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2108:57:32" - }, - "returnParameters": { - "id": 7286, - "nodeType": "ParameterList", - "parameters": [], - "src": "2207:0:32" - }, - "scope": 7342, - "src": "2085:181:32", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7318, - "nodeType": "Block", - "src": "2713:88:32", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7312, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2759:10:32", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2759:12:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7314, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7298, - "src": "2773:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7315, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7301, - "src": "2785:8:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "expression": { - "id": 7309, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7233, - "src": "2723:8:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2732:26:32", - "memberName": "registerDomainWithVerifier", - "nodeType": "MemberAccess", - "referencedDeclaration": 7691, - "src": "2723:35:32", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8101_$returns$__$", - "typeString": "function (address,bytes32,contract IVerifier) external" - } - }, - "id": 7316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2723:71:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7317, - "nodeType": "ExpressionStatement", - "src": "2723:71:32" - } - ] - }, - "documentation": { - "id": 7296, - "nodeType": "StructuredDocumentation", - "src": "2272:290:32", - "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": 7319, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7304, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2687:10:32", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2687:12:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7306, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7298, - "src": "2701:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7307, - "kind": "modifierInvocation", - "modifierName": { - "id": 7303, - "name": "onlyEnsOwner", - "nameLocations": [ - "2674:12:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7254, - "src": "2674:12:32" - }, - "nodeType": "ModifierInvocation", - "src": "2674:38:32" - } - ], - "name": "registerDomainWithVerifier", - "nameLocation": "2576:26:32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7298, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2620:10:32", - "nodeType": "VariableDeclaration", - "scope": 7319, - "src": "2612:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7297, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2612:7:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7301, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2650:8:32", - "nodeType": "VariableDeclaration", - "scope": 7319, - "src": "2640:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7300, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7299, - "name": "IVerifier", - "nameLocations": [ - "2640:9:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "2640:9:32" - }, - "referencedDeclaration": 8101, - "src": "2640:9:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "2602:62:32" - }, - "returnParameters": { - "id": 7308, - "nodeType": "ParameterList", - "parameters": [], - "src": "2713:0:32" - }, - "scope": 7342, - "src": "2567:234:32", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7340, - "nodeType": "Block", - "src": "3213:135:32", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7329, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7324, - "src": "3245:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7327, - "name": "ensRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7230, - "src": "3227:11:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ENS_$136", - "typeString": "contract ENS" - } - }, - "id": 7328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3239:5:32", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 105, - "src": "3227:17:32", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 7330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3227:29:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 7331, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7322, - "src": "3260:7:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3227:40:32", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7339, - "nodeType": "IfStatement", - "src": "3223:119:32", - "trueBody": { - "id": 7338, - "nodeType": "Block", - "src": "3269:73:32", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 7334, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7322, - "src": "3311:7:32", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7335, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7324, - "src": "3320:10:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7333, - "name": "AccountIsNotEnsOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7240, - "src": "3290:20:32", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", - "typeString": "function (address,bytes32) pure returns (error)" - } - }, - "id": 7336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3290:41:32", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7337, - "nodeType": "RevertStatement", - "src": "3283:48:32" - } - ] - } - } - ] - }, - "documentation": { - "id": 7320, - "nodeType": "StructuredDocumentation", - "src": "2807:327:32", - "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": 7341, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkEnsOwner", - "nameLocation": "3148:14:32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7322, - "mutability": "mutable", - "name": "account", - "nameLocation": "3171:7:32", - "nodeType": "VariableDeclaration", - "scope": 7341, - "src": "3163:15:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7321, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3163:7:32", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7324, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3188:10:32", - "nodeType": "VariableDeclaration", - "scope": 7341, - "src": "3180:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7323, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3180:7:32", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3162:37:32" - }, - "returnParameters": { - "id": 7326, - "nodeType": "ParameterList", - "parameters": [], - "src": "3213:0:32" - }, - "scope": 7342, - "src": "3139:209:32", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 7343, - "src": "669:2681:32", - "usedErrors": [ - 7240 - ], - "usedEvents": [] - } - ], - "src": "37:3314:32" - }, - "id": 32 - }, - "contracts/Registrars/SciRegistrar.sol": { - "ast": { - "absolutePath": "contracts/Registrars/SciRegistrar.sol", - "exportedSymbols": { - "AccessControlDefaultAdminRules": [ - 2436 - ], - "ISciRegistry": [ - 7736 - ], - "IVerifier": [ - 8101 - ], - "SciRegistrar": [ - 7424 - ] - }, - "id": 7425, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7344, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:33" - }, - { - "absolutePath": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", - "file": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", - "id": 7346, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7425, - "sourceUnit": 2437, - "src": "62:124:33", - "symbolAliases": [ - { - "foreign": { - "id": 7345, - "name": "AccessControlDefaultAdminRules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2436, - "src": "70:30:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "file": "../SciRegistry/ISciRegistry.sol", - "id": 7348, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7425, - "sourceUnit": 7737, - "src": "187:61:33", - "symbolAliases": [ - { - "foreign": { - "id": 7347, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "195:12:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "../Verifiers/IVerifier.sol", - "id": 7350, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7425, - "sourceUnit": 8102, - "src": "249:53:33", - "symbolAliases": [ - { - "foreign": { - "id": 7349, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "257:9:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 7352, - "name": "AccessControlDefaultAdminRules", - "nameLocations": [ - "768:30:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2436, - "src": "768:30:33" - }, - "id": 7353, - "nodeType": "InheritanceSpecifier", - "src": "768:30:33" - } - ], - "canonicalName": "SciRegistrar", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7351, - "nodeType": "StructuredDocumentation", - "src": "304:438:33", - "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": 7424, - "linearizedBaseContracts": [ - 7424, - 2436, - 1488, - 3756, - 3768, - 2566, - 2535, - 1571, - 3417 - ], - "name": "SciRegistrar", - "nameLocation": "752:12:33", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "functionSelector": "2a3fea62", - "id": 7358, - "mutability": "constant", - "name": "REGISTER_DOMAIN_ROLE", - "nameLocation": "873:20:33", - "nodeType": "VariableDeclaration", - "scope": 7424, - "src": "849:80:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7354, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "849:7:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "52454749535445525f444f4d41494e5f524f4c45", - "id": 7356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "906:22:33", - "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": 7355, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "896:9:33", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 7357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "896:33:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7b103999", - "id": 7361, - "mutability": "immutable", - "name": "registry", - "nameLocation": "966:8:33", - "nodeType": "VariableDeclaration", - "scope": 7424, - "src": "936:38:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - }, - "typeName": { - "id": 7360, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7359, - "name": "ISciRegistry", - "nameLocations": [ - "936:12:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7736, - "src": "936:12:33" - }, - "referencedDeclaration": 7736, - "src": "936:12:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 7380, - "nodeType": "Block", - "src": "1439:61:33", - "statements": [ - { - "expression": { - "id": 7378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7374, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7361, - "src": "1449:8:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7376, - "name": "_sciRegistryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7364, - "src": "1473:19:33", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7375, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "1460:12:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7736_$", - "typeString": "type(contract ISciRegistry)" - } - }, - "id": 7377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1460:33:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "src": "1449:44:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7379, - "nodeType": "ExpressionStatement", - "src": "1449:44:33" - } - ] - }, - "documentation": { - "id": 7362, - "nodeType": "StructuredDocumentation", - "src": "981:310:33", - "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": 7381, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 7369, - "name": "initialDelay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7366, - "src": "1411:12:33", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7370, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "1425:10:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1425:12:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 7372, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 7368, - "name": "AccessControlDefaultAdminRules", - "nameLocations": [ - "1380:30:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2436, - "src": "1380:30:33" - }, - "nodeType": "ModifierInvocation", - "src": "1380:58:33" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7364, - "mutability": "mutable", - "name": "_sciRegistryAddress", - "nameLocation": "1325:19:33", - "nodeType": "VariableDeclaration", - "scope": 7381, - "src": "1317:27:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1317:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7366, - "mutability": "mutable", - "name": "initialDelay", - "nameLocation": "1361:12:33", - "nodeType": "VariableDeclaration", - "scope": 7381, - "src": "1354:19:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 7365, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "1354:6:33", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "1307:72:33" - }, - "returnParameters": { - "id": 7373, - "nodeType": "ParameterList", - "parameters": [], - "src": "1439:0:33" - }, - "scope": 7424, - "src": "1296:204:33", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 7399, - "nodeType": "Block", - "src": "1910:59:33", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7395, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7384, - "src": "1944:5:33", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7396, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7386, - "src": "1951:10:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7392, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7361, - "src": "1920:8:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1929:14:33", - "memberName": "registerDomain", - "nodeType": "MemberAccess", - "referencedDeclaration": 7680, - "src": "1920:23:33", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) external" - } - }, - "id": 7397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1920:42:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7398, - "nodeType": "ExpressionStatement", - "src": "1920:42:33" - } - ] - }, - "documentation": { - "id": 7382, - "nodeType": "StructuredDocumentation", - "src": "1506:278:33", - "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": 7400, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7389, - "name": "REGISTER_DOMAIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7358, - "src": "1888:20:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7390, - "kind": "modifierInvocation", - "modifierName": { - "id": 7388, - "name": "onlyRole", - "nameLocations": [ - "1879:8:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "1879:8:33" - }, - "nodeType": "ModifierInvocation", - "src": "1879:30:33" - } - ], - "name": "registerDomain", - "nameLocation": "1798:14:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7387, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7384, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1830:5:33", - "nodeType": "VariableDeclaration", - "scope": 7400, - "src": "1822:13:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1822:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7386, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1853:10:33", - "nodeType": "VariableDeclaration", - "scope": 7400, - "src": "1845:18:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7385, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1845:7:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1812:57:33" - }, - "returnParameters": { - "id": 7391, - "nodeType": "ParameterList", - "parameters": [], - "src": "1910:0:33" - }, - "scope": 7424, - "src": "1789:180:33", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7422, - "nodeType": "Block", - "src": "2614:81:33", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7417, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "2660:5:33", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7418, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7405, - "src": "2667:10:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7419, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7408, - "src": "2679:8:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "expression": { - "id": 7414, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7361, - "src": "2624:8:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2633:26:33", - "memberName": "registerDomainWithVerifier", - "nodeType": "MemberAccess", - "referencedDeclaration": 7691, - "src": "2624:35:33", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8101_$returns$__$", - "typeString": "function (address,bytes32,contract IVerifier) external" - } - }, - "id": 7420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2624:64:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7421, - "nodeType": "ExpressionStatement", - "src": "2624:64:33" - } - ] - }, - "documentation": { - "id": 7401, - "nodeType": "StructuredDocumentation", - "src": "1975:473:33", - "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": 7423, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7411, - "name": "REGISTER_DOMAIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7358, - "src": "2592:20:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7412, - "kind": "modifierInvocation", - "modifierName": { - "id": 7410, - "name": "onlyRole", - "nameLocations": [ - "2583:8:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "2583:8:33" - }, - "nodeType": "ModifierInvocation", - "src": "2583:30:33" - } - ], - "name": "registerDomainWithVerifier", - "nameLocation": "2462:26:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7409, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7403, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2506:5:33", - "nodeType": "VariableDeclaration", - "scope": 7423, - "src": "2498:13:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2498:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7405, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2529:10:33", - "nodeType": "VariableDeclaration", - "scope": 7423, - "src": "2521:18:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7404, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2521:7:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7408, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2559:8:33", - "nodeType": "VariableDeclaration", - "scope": 7423, - "src": "2549:18:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7407, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7406, - "name": "IVerifier", - "nameLocations": [ - "2549:9:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "2549:9:33" - }, - "referencedDeclaration": 8101, - "src": "2549:9:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "2488:85:33" - }, - "returnParameters": { - "id": 7413, - "nodeType": "ParameterList", - "parameters": [], - "src": "2614:0:33" - }, - "scope": 7424, - "src": "2453:242:33", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 7425, - "src": "743:1954:33", - "usedErrors": [ - 1498, - 1501, - 2448, - 2451, - 2456, - 5384 - ], - "usedEvents": [ - 1510, - 1519, - 1528, - 2463, - 2466, - 2473, - 2476 - ] - } - ], - "src": "37:2661:33" - }, - "id": 33 - }, - "contracts/SCI.sol": { - "ast": { - "absolutePath": "contracts/SCI.sol", - "exportedSymbols": { - "ISciRegistry": [ - 7736 - ], - "IVerifier": [ - 8101 - ], - "Initializable": [ - 1146 - ], - "Ownable2StepUpgradeable": [ - 697 - ], - "SCI": [ - 7619 - ] - }, - "id": 7620, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7426, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:34" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "./Verifiers/IVerifier.sol", - "id": 7428, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7620, - "sourceUnit": 8102, - "src": "62:52:34", - "symbolAliases": [ - { - "foreign": { - "id": 7427, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "70:9:34", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "file": "./SciRegistry/ISciRegistry.sol", - "id": 7430, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7620, - "sourceUnit": 7737, - "src": "115:60:34", - "symbolAliases": [ - { - "foreign": { - "id": 7429, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "123:12:34", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "id": 7432, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7620, - "sourceUnit": 1147, - "src": "176:96:34", - "symbolAliases": [ - { - "foreign": { - "id": 7431, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "184:13:34", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", - "id": 7434, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7620, - "sourceUnit": 698, - "src": "273:111:34", - "symbolAliases": [ - { - "foreign": { - "id": 7433, - "name": "Ownable2StepUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 697, - "src": "281:23:34", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 7436, - "name": "Initializable", - "nameLocations": [ - "724:13:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1146, - "src": "724:13:34" - }, - "id": 7437, - "nodeType": "InheritanceSpecifier", - "src": "724:13:34" - }, - { - "baseName": { - "id": 7438, - "name": "Ownable2StepUpgradeable", - "nameLocations": [ - "739:23:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 697, - "src": "739:23:34" - }, - "id": 7439, - "nodeType": "InheritanceSpecifier", - "src": "739:23:34" - } - ], - "canonicalName": "SCI", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7435, - "nodeType": "StructuredDocumentation", - "src": "386:321:34", - "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": 7619, - "linearizedBaseContracts": [ - 7619, - 697, - 892, - 1192, - 1146 - ], - "name": "SCI", - "nameLocation": "717:3:34", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "7b103999", - "id": 7442, - "mutability": "mutable", - "name": "registry", - "nameLocation": "789:8:34", - "nodeType": "VariableDeclaration", - "scope": 7619, - "src": "769:28:34", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - }, - "typeName": { - "id": 7441, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7440, - "name": "ISciRegistry", - "nameLocations": [ - "769:12:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7736, - "src": "769:12:34" - }, - "referencedDeclaration": 7736, - "src": "769:12:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": { - "id": 7443, - "nodeType": "StructuredDocumentation", - "src": "804:62:34", - "text": " @dev Emitted when the Registry is changed." - }, - "eventSelector": "363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f5", - "id": 7449, - "name": "RegistrySet", - "nameLocation": "877:11:34", - "nodeType": "EventDefinition", - "parameters": { - "id": 7448, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7445, - "indexed": true, - "mutability": "mutable", - "name": "oldRegistryAddress", - "nameLocation": "905:18:34", - "nodeType": "VariableDeclaration", - "scope": 7449, - "src": "889:34:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7444, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "889:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7447, - "indexed": true, - "mutability": "mutable", - "name": "newRegistryAddress", - "nameLocation": "941:18:34", - "nodeType": "VariableDeclaration", - "scope": 7449, - "src": "925:34:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7446, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "925:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "888:72:34" - }, - "src": "871:90:34" - }, - { - "body": { - "id": 7470, - "nodeType": "Block", - "src": "1342:107:34", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7459, - "name": "__Ownable2Step_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "1352:19:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 7460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1352:21:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7461, - "nodeType": "ExpressionStatement", - "src": "1352:21:34" - }, - { - "expression": { - "arguments": [ - { - "id": 7463, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7452, - "src": "1398:5:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7462, - "name": "__Ownable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "1383:14:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 7464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1383:21:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7465, - "nodeType": "ExpressionStatement", - "src": "1383:21:34" - }, - { - "expression": { - "arguments": [ - { - "id": 7467, - "name": "registryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7454, - "src": "1426:15:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7466, - "name": "setRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7618, - "src": "1414:11:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 7468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1414:28:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7469, - "nodeType": "ExpressionStatement", - "src": "1414:28:34" - } - ] - }, - "documentation": { - "id": 7450, - "nodeType": "StructuredDocumentation", - "src": "967:289:34", - "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": 7471, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 7457, - "kind": "modifierInvocation", - "modifierName": { - "id": 7456, - "name": "initializer", - "nameLocations": [ - "1330:11:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1000, - "src": "1330:11:34" - }, - "nodeType": "ModifierInvocation", - "src": "1330:11:34" - } - ], - "name": "initialize", - "nameLocation": "1270:10:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7455, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7452, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1289:5:34", - "nodeType": "VariableDeclaration", - "scope": 7471, - "src": "1281:13:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7451, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1281:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7454, - "mutability": "mutable", - "name": "registryAddress", - "nameLocation": "1304:15:34", - "nodeType": "VariableDeclaration", - "scope": 7471, - "src": "1296:23:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7453, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1296:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1280:40:34" - }, - "returnParameters": { - "id": 7458, - "nodeType": "ParameterList", - "parameters": [], - "src": "1342:0:34" - }, - "scope": 7619, - "src": "1261:188:34", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7491, - "nodeType": "Block", - "src": "1834:63:34", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7488, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7474, - "src": "1879:10:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7486, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7442, - "src": "1851:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1860:18:34", - "memberName": "domainHashToRecord", - "nodeType": "MemberAccess", - "referencedDeclaration": 7672, - "src": "1851:27:34", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$_t_contract$_IVerifier_$8101_$_t_uint256_$_t_uint256_$", - "typeString": "function (bytes32) view external returns (address,contract IVerifier,uint256,uint256)" - } - }, - "id": 7489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1851:39:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_contract$_IVerifier_$8101_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(address,contract IVerifier,uint256,uint256)" - } - }, - "functionReturnParameters": 7485, - "id": 7490, - "nodeType": "Return", - "src": "1844:46:34" - } - ] - }, - "documentation": { - "id": 7472, - "nodeType": "StructuredDocumentation", - "src": "1455:113:34", - "text": " @dev Returns info from the domain.\n @param domainHash The namehash of the domain." - }, - "functionSelector": "5b377fa2", - "id": 7492, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "domainHashToRecord", - "nameLocation": "1582:18:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7474, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1618:10:34", - "nodeType": "VariableDeclaration", - "scope": 7492, - "src": "1610:18:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7473, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1610:7:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1600:34:34" - }, - "returnParameters": { - "id": 7485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7477, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1703:5:34", - "nodeType": "VariableDeclaration", - "scope": 7492, - "src": "1695:13:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7476, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1695:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7480, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "1732:8:34", - "nodeType": "VariableDeclaration", - "scope": 7492, - "src": "1722:18:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7479, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7478, - "name": "IVerifier", - "nameLocations": [ - "1722:9:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "1722:9:34" - }, - "referencedDeclaration": 8101, - "src": "1722:9:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7482, - "mutability": "mutable", - "name": "lastOwnerSetTime", - "nameLocation": "1762:16:34", - "nodeType": "VariableDeclaration", - "scope": 7492, - "src": "1754:24:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7481, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1754:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7484, - "mutability": "mutable", - "name": "lastVerifierSetTime", - "nameLocation": "1800:19:34", - "nodeType": "VariableDeclaration", - "scope": 7492, - "src": "1792:27:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1792:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1681:148:34" - }, - "scope": 7619, - "src": "1573:324:34", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7549, - "nodeType": "Block", - "src": "2608:472:34", - "statements": [ - { - "assignments": [ - 7510 - ], - "declarations": [ - { - "constant": false, - "id": 7510, - "mutability": "mutable", - "name": "domainsVerification", - "nameLocation": "2635:19:34", - "nodeType": "VariableDeclaration", - "scope": 7549, - "src": "2618:36:34", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 7508, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2618:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7509, - "nodeType": "ArrayTypeName", - "src": "2618:9:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 7517, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 7514, - "name": "domainHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7496, - "src": "2671:12:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 7515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2684:6:34", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2671:19:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2657:13:34", - "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": 7511, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2661:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7512, - "nodeType": "ArrayTypeName", - "src": "2661:9:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 7516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2657:34:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2618:73:34" - }, - { - "assignments": [ - 7519 - ], - "declarations": [ - { - "constant": false, - "id": 7519, - "mutability": "mutable", - "name": "domainHashesLength", - "nameLocation": "2709:18:34", - "nodeType": "VariableDeclaration", - "scope": 7549, - "src": "2701:26:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2701:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7522, - "initialValue": { - "expression": { - "id": 7520, - "name": "domainHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7496, - "src": "2730:12:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 7521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2743:6:34", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2730:19:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2701:48:34" - }, - { - "body": { - "id": 7545, - "nodeType": "Block", - "src": "2801:237:34", - "statements": [ - { - "expression": { - "id": 7539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 7529, - "name": "domainsVerification", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "2815:19:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 7531, - "indexExpression": { - "id": 7530, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7524, - "src": "2835:1:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2815:22:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 7533, - "name": "domainHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7496, - "src": "2881:12:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 7535, - "indexExpression": { - "id": 7534, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7524, - "src": "2894:1:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2881:15:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7536, - "name": "contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7498, - "src": "2914:15:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7537, - "name": "chainId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7500, - "src": "2947:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7532, - "name": "isVerifiedForDomainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7591, - "src": "2840:23:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bytes32,address,uint256) view returns (uint256)" - } - }, - "id": 7538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2840:128:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2815:153:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7540, - "nodeType": "ExpressionStatement", - "src": "2815:153:34" - }, - { - "id": 7544, - "nodeType": "UncheckedBlock", - "src": "2982:46:34", - "statements": [ - { - "expression": { - "id": 7542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "3010:3:34", - "subExpression": { - "id": 7541, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7524, - "src": "3012:1:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7543, - "nodeType": "ExpressionStatement", - "src": "3010:3:34" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7526, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7524, - "src": "2775:1:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 7527, - "name": "domainHashesLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7519, - "src": "2779:18:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2775:22:34", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7546, - "initializationExpression": { - "assignments": [ - 7524 - ], - "declarations": [ - { - "constant": false, - "id": 7524, - "mutability": "mutable", - "name": "i", - "nameLocation": "2772:1:34", - "nodeType": "VariableDeclaration", - "scope": 7546, - "src": "2764:9:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2764:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7525, - "nodeType": "VariableDeclarationStatement", - "src": "2764:9:34" - }, - "isSimpleCounterLoop": false, - "nodeType": "ForStatement", - "src": "2759:279:34" - }, - { - "expression": { - "id": 7547, - "name": "domainsVerification", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "3054:19:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 7505, - "id": 7548, - "nodeType": "Return", - "src": "3047:26:34" - } - ] - }, - "documentation": { - "id": 7493, - "nodeType": "StructuredDocumentation", - "src": "1903:513:34", - "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": 7550, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isVerifiedForMultipleDomainHashes", - "nameLocation": "2430:33:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7496, - "mutability": "mutable", - "name": "domainHashes", - "nameLocation": "2490:12:34", - "nodeType": "VariableDeclaration", - "scope": 7550, - "src": "2473:29:34", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 7494, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2473:7:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 7495, - "nodeType": "ArrayTypeName", - "src": "2473:9:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7498, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "2520:15:34", - "nodeType": "VariableDeclaration", - "scope": 7550, - "src": "2512:23:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7497, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2512:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7500, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "2553:7:34", - "nodeType": "VariableDeclaration", - "scope": 7550, - "src": "2545:15:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7499, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2545:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2463:103:34" - }, - "returnParameters": { - "id": 7505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7504, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7550, - "src": "2590:16:34", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 7502, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2590:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7503, - "nodeType": "ArrayTypeName", - "src": "2590:9:34", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "2589:18:34" - }, - "scope": 7619, - "src": "2421:659:34", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7590, - "nodeType": "Block", - "src": "3851:240:34", - "statements": [ - { - "assignments": [ - null, - 7564, - null, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 7564, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "3874:8:34", - "nodeType": "VariableDeclaration", - "scope": 7590, - "src": "3864:18:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7563, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7562, - "name": "IVerifier", - "nameLocations": [ - "3864:9:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "3864:9:34" - }, - "referencedDeclaration": 8101, - "src": "3864:9:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - }, - null, - null - ], - "id": 7569, - "initialValue": { - "arguments": [ - { - "id": 7567, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7553, - "src": "3918:10:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 7565, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7442, - "src": "3890:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3899:18:34", - "memberName": "domainHashToRecord", - "nodeType": "MemberAccess", - "referencedDeclaration": 7672, - "src": "3890:27:34", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$_t_contract$_IVerifier_$8101_$_t_uint256_$_t_uint256_$", - "typeString": "function (bytes32) view external returns (address,contract IVerifier,uint256,uint256)" - } - }, - "id": 7568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3890:39:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_contract$_IVerifier_$8101_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(address,contract IVerifier,uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3861:68:34" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7572, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7564, - "src": "3952:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "id": 7571, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3944:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7570, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3944:7:34", - "typeDescriptions": {} - } - }, - "id": 7573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3944:17:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 7576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3973:1:34", - "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": 7575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3965:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7574, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3965:7:34", - "typeDescriptions": {} - } - }, - "id": 7577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3965:10:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3944:31:34", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7582, - "nodeType": "IfStatement", - "src": "3940:70:34", - "trueBody": { - "id": 7581, - "nodeType": "Block", - "src": "3977:33:34", - "statements": [ - { - "expression": { - "hexValue": "30", - "id": 7579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3998:1:34", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 7561, - "id": 7580, - "nodeType": "Return", - "src": "3991:8:34" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 7585, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7553, - "src": "4047:10:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7586, - "name": "contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7555, - "src": "4059:15:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7587, - "name": "chainId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7557, - "src": "4076:7:34", - "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": 7583, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7564, - "src": "4027:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "id": 7584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4036:10:34", - "memberName": "isVerified", - "nodeType": "MemberAccess", - "referencedDeclaration": 8100, - "src": "4027:19:34", - "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": 7588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4027:57:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7561, - "id": 7589, - "nodeType": "Return", - "src": "4020:64:34" - } - ] - }, - "documentation": { - "id": 7551, - "nodeType": "StructuredDocumentation", - "src": "3086:605:34", - "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": 7591, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isVerifiedForDomainHash", - "nameLocation": "3705:23:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7553, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3746:10:34", - "nodeType": "VariableDeclaration", - "scope": 7591, - "src": "3738:18:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7552, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3738:7:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7555, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "3774:15:34", - "nodeType": "VariableDeclaration", - "scope": 7591, - "src": "3766:23:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3766:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7557, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "3807:7:34", - "nodeType": "VariableDeclaration", - "scope": 7591, - "src": "3799:15:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7556, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3799:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3728:92:34" - }, - "returnParameters": { - "id": 7561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7560, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7591, - "src": "3842:7:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7559, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3842:7:34", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3841:9:34" - }, - "scope": 7619, - "src": "3696:395:34", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 7617, - "nodeType": "Block", - "src": "4321:168:34", - "statements": [ - { - "assignments": [ - 7600 - ], - "declarations": [ - { - "constant": false, - "id": 7600, - "mutability": "mutable", - "name": "oldRegistryAddress", - "nameLocation": "4339:18:34", - "nodeType": "VariableDeclaration", - "scope": 7617, - "src": "4331:26:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7599, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4331:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 7605, - "initialValue": { - "arguments": [ - { - "id": 7603, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7442, - "src": "4368:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - ], - "id": 7602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4360:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7601, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4360:7:34", - "typeDescriptions": {} - } - }, - "id": 7604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4360:17:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4331:46:34" - }, - { - "expression": { - "id": 7610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7606, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7442, - "src": "4387:8:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 7608, - "name": "newRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7594, - "src": "4411:11:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7607, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "4398:12:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISciRegistry_$7736_$", - "typeString": "type(contract ISciRegistry)" - } - }, - "id": 7609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4398:25:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "src": "4387:36:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISciRegistry_$7736", - "typeString": "contract ISciRegistry" - } - }, - "id": 7611, - "nodeType": "ExpressionStatement", - "src": "4387:36:34" - }, - { - "eventCall": { - "arguments": [ - { - "id": 7613, - "name": "oldRegistryAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7600, - "src": "4450:18:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7614, - "name": "newRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7594, - "src": "4470:11:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7612, - "name": "RegistrySet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7449, - "src": "4438:11:34", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 7615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4438:44:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7616, - "nodeType": "EmitStatement", - "src": "4433:49:34" - } - ] - }, - "documentation": { - "id": 7592, - "nodeType": "StructuredDocumentation", - "src": "4097:160:34", - "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": 7618, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 7597, - "kind": "modifierInvocation", - "modifierName": { - "id": 7596, - "name": "onlyOwner", - "nameLocations": [ - "4311:9:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 787, - "src": "4311:9:34" - }, - "nodeType": "ModifierInvocation", - "src": "4311:9:34" - } - ], - "name": "setRegistry", - "nameLocation": "4271:11:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7595, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7594, - "mutability": "mutable", - "name": "newRegistry", - "nameLocation": "4291:11:34", - "nodeType": "VariableDeclaration", - "scope": 7618, - "src": "4283:19:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4283:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4282:21:34" - }, - "returnParameters": { - "id": 7598, - "nodeType": "ParameterList", - "parameters": [], - "src": "4321:0:34" - }, - "scope": 7619, - "src": "4262:227:34", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 7620, - "src": "708:3783:34", - "usedErrors": [ - 728, - 733, - 909, - 912 - ], - "usedEvents": [ - 592, - 739, - 917, - 7449 - ] - } - ], - "src": "37:4455:34" - }, - "id": 34 - }, - "contracts/SciRegistry/ISciRegistry.sol": { - "ast": { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "exportedSymbols": { - "ISciRegistry": [ - 7736 - ], - "IVerifier": [ - 8101 - ] - }, - "id": 7737, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7621, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:35" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "../Verifiers/IVerifier.sol", - "id": 7623, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 7737, - "sourceUnit": 8102, - "src": "62:53:35", - "symbolAliases": [ - { - "foreign": { - "id": 7622, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "70:9:35", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ISciRegistry", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 7624, - "nodeType": "StructuredDocumentation", - "src": "117:368:35", - "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": 7736, - "linearizedBaseContracts": [ - 7736 - ], - "name": "ISciRegistry", - "nameLocation": "496:12:35", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 7625, - "nodeType": "StructuredDocumentation", - "src": "515:110:35", - "text": " @dev Emitted when a new `domain` with the `domainHash` is\n registered by the `owner`." - }, - "eventSelector": "fb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a63", - "id": 7633, - "name": "DomainRegistered", - "nameLocation": "636:16:35", - "nodeType": "EventDefinition", - "parameters": { - "id": 7632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7627, - "indexed": true, - "mutability": "mutable", - "name": "registrar", - "nameLocation": "678:9:35", - "nodeType": "VariableDeclaration", - "scope": 7633, - "src": "662:25:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7626, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "662:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7629, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "713:5:35", - "nodeType": "VariableDeclaration", - "scope": 7633, - "src": "697:21:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7628, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "697:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7631, - "indexed": true, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "744:10:35", - "nodeType": "VariableDeclaration", - "scope": 7633, - "src": "728:26:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7630, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "728:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "652:108:35" - }, - "src": "630:131:35" - }, - { - "anonymous": false, - "documentation": { - "id": 7634, - "nodeType": "StructuredDocumentation", - "src": "767:163:35", - "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": 7646, - "name": "VerifierSet", - "nameLocation": "941:11:35", - "nodeType": "EventDefinition", - "parameters": { - "id": 7645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7636, - "indexed": false, - "mutability": "mutable", - "name": "msgSender", - "nameLocation": "970:9:35", - "nodeType": "VariableDeclaration", - "scope": 7646, - "src": "962:17:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7635, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "962:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7638, - "indexed": true, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1005:10:35", - "nodeType": "VariableDeclaration", - "scope": 7646, - "src": "989:26:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7637, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "989:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7641, - "indexed": true, - "mutability": "mutable", - "name": "oldVerifier", - "nameLocation": "1043:11:35", - "nodeType": "VariableDeclaration", - "scope": 7646, - "src": "1025:29:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7640, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7639, - "name": "IVerifier", - "nameLocations": [ - "1025:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "1025:9:35" - }, - "referencedDeclaration": 8101, - "src": "1025:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7644, - "indexed": true, - "mutability": "mutable", - "name": "newVerifie", - "nameLocation": "1082:10:35", - "nodeType": "VariableDeclaration", - "scope": 7646, - "src": "1064:28:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7643, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7642, - "name": "IVerifier", - "nameLocations": [ - "1064:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "1064:9:35" - }, - "referencedDeclaration": 8101, - "src": "1064:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "952:146:35" - }, - "src": "935:164:35" - }, - { - "anonymous": false, - "documentation": { - "id": 7647, - "nodeType": "StructuredDocumentation", - "src": "1105:79:35", - "text": " @dev Emitted when the owner of a `domainHash` is set." - }, - "eventSelector": "c4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288", - "id": 7657, - "name": "OwnerSet", - "nameLocation": "1195:8:35", - "nodeType": "EventDefinition", - "parameters": { - "id": 7656, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7649, - "indexed": false, - "mutability": "mutable", - "name": "msgSender", - "nameLocation": "1221:9:35", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1213:17:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7648, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1213:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7651, - "indexed": true, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1256:10:35", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1240:26:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7650, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1240:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7653, - "indexed": true, - "mutability": "mutable", - "name": "oldOwner", - "nameLocation": "1292:8:35", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1276:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1276:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7655, - "indexed": true, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "1326:8:35", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1310:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7654, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1310:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1203:137:35" - }, - "src": "1189:152:35" - }, - { - "documentation": { - "id": 7658, - "nodeType": "StructuredDocumentation", - "src": "1347:183:35", - "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": 7672, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "domainHashToRecord", - "nameLocation": "1544:18:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7661, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7660, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1580:10:35", - "nodeType": "VariableDeclaration", - "scope": 7672, - "src": "1572:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7659, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1572:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1562:34:35" - }, - "returnParameters": { - "id": 7671, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7663, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1665:5:35", - "nodeType": "VariableDeclaration", - "scope": 7672, - "src": "1657:13:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7662, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1657:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7666, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "1694:8:35", - "nodeType": "VariableDeclaration", - "scope": 7672, - "src": "1684:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7665, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7664, - "name": "IVerifier", - "nameLocations": [ - "1684:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "1684:9:35" - }, - "referencedDeclaration": 8101, - "src": "1684:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7668, - "mutability": "mutable", - "name": "lastOwnerSetTime", - "nameLocation": "1724:16:35", - "nodeType": "VariableDeclaration", - "scope": 7672, - "src": "1716:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7667, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1716:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7670, - "mutability": "mutable", - "name": "lastIVerifierSetTime", - "nameLocation": "1762:20:35", - "nodeType": "VariableDeclaration", - "scope": 7672, - "src": "1754:28:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7669, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1754:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1643:149:35" - }, - "scope": 7736, - "src": "1535:258:35", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7673, - "nodeType": "StructuredDocumentation", - "src": "1799:317:35", - "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": 7680, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "registerDomain", - "nameLocation": "2130:14:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7675, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2153:5:35", - "nodeType": "VariableDeclaration", - "scope": 7680, - "src": "2145:13:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2145:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7677, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2168:10:35", - "nodeType": "VariableDeclaration", - "scope": 7680, - "src": "2160:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7676, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2160:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2144:35:35" - }, - "returnParameters": { - "id": 7679, - "nodeType": "ParameterList", - "parameters": [], - "src": "2188:0:35" - }, - "scope": 7736, - "src": "2121:68:35", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7681, - "nodeType": "StructuredDocumentation", - "src": "2195:655:35", - "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": 7691, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "registerDomainWithVerifier", - "nameLocation": "2864:26:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7683, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2908:5:35", - "nodeType": "VariableDeclaration", - "scope": 7691, - "src": "2900:13:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7682, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2900:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7685, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2931:10:35", - "nodeType": "VariableDeclaration", - "scope": 7691, - "src": "2923:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7684, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2923:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7688, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2961:8:35", - "nodeType": "VariableDeclaration", - "scope": 7691, - "src": "2951:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7687, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7686, - "name": "IVerifier", - "nameLocations": [ - "2951:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "2951:9:35" - }, - "referencedDeclaration": 8101, - "src": "2951:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "2890:85:35" - }, - "returnParameters": { - "id": 7690, - "nodeType": "ParameterList", - "parameters": [], - "src": "2984:0:35" - }, - "scope": 7736, - "src": "2855:130:35", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7692, - "nodeType": "StructuredDocumentation", - "src": "2991:83:35", - "text": " @dev Returns true if the account is the owner of the domainHash." - }, - "functionSelector": "8023597e", - "id": 7701, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isDomainOwner", - "nameLocation": "3088:13:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7697, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7694, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3110:10:35", - "nodeType": "VariableDeclaration", - "scope": 7701, - "src": "3102:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7693, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3102:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7696, - "mutability": "mutable", - "name": "account", - "nameLocation": "3130:7:35", - "nodeType": "VariableDeclaration", - "scope": 7701, - "src": "3122:15:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7695, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3122:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3101:37:35" - }, - "returnParameters": { - "id": 7700, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7699, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7701, - "src": "3162:4:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7698, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3162:4:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3161:6:35" - }, - "scope": 7736, - "src": "3079:89:35", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7702, - "nodeType": "StructuredDocumentation", - "src": "3174:206:35", - "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": 7709, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "domainOwner", - "nameLocation": "3394:11:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7705, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7704, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3414:10:35", - "nodeType": "VariableDeclaration", - "scope": 7709, - "src": "3406:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7703, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3406:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3405:20:35" - }, - "returnParameters": { - "id": 7708, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7707, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7709, - "src": "3449:7:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7706, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3449:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3448:9:35" - }, - "scope": 7736, - "src": "3385:73:35", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7710, - "nodeType": "StructuredDocumentation", - "src": "3464:239:35", - "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": 7718, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "domainVerifier", - "nameLocation": "3717:14:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7713, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7712, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3740:10:35", - "nodeType": "VariableDeclaration", - "scope": 7718, - "src": "3732:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7711, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3732:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3731:20:35" - }, - "returnParameters": { - "id": 7717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7716, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7718, - "src": "3775:9:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7715, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7714, - "name": "IVerifier", - "nameLocations": [ - "3775:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "3775:9:35" - }, - "referencedDeclaration": 8101, - "src": "3775:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "3774:11:35" - }, - "scope": 7736, - "src": "3708:78:35", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7719, - "nodeType": "StructuredDocumentation", - "src": "3792:236:35", - "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": 7726, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "domainVerifierSetTime", - "nameLocation": "4042:21:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7722, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7721, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "4072:10:35", - "nodeType": "VariableDeclaration", - "scope": 7726, - "src": "4064:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7720, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4064:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4063:20:35" - }, - "returnParameters": { - "id": 7725, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7724, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7726, - "src": "4107:7:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7723, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4107:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4106:9:35" - }, - "scope": 7736, - "src": "4033:83:35", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 7727, - "nodeType": "StructuredDocumentation", - "src": "4122:402:35", - "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": 7735, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setVerifier", - "nameLocation": "4538:11:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7729, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "4558:10:35", - "nodeType": "VariableDeclaration", - "scope": 7735, - "src": "4550:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7728, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4550:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7732, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "4580:8:35", - "nodeType": "VariableDeclaration", - "scope": 7735, - "src": "4570:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7731, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7730, - "name": "IVerifier", - "nameLocations": [ - "4570:9:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "4570:9:35" - }, - "referencedDeclaration": 8101, - "src": "4570:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "4549:40:35" - }, - "returnParameters": { - "id": 7734, - "nodeType": "ParameterList", - "parameters": [], - "src": "4598:0:35" - }, - "scope": 7736, - "src": "4529:70:35", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 7737, - "src": "486:4115:35", - "usedErrors": [], - "usedEvents": [ - 7633, - 7646, - 7657 - ] - } - ], - "src": "37:4565:35" - }, - "id": 35 - }, - "contracts/SciRegistry/SciRegistry.sol": { - "ast": { - "absolutePath": "contracts/SciRegistry/SciRegistry.sol", - "exportedSymbols": { - "AccessControlDefaultAdminRules": [ - 2436 - ], - "Context": [ - 3417 - ], - "DomainManager": [ - 7204 - ], - "ISciRegistry": [ - 7736 - ], - "IVerifier": [ - 8101 - ], - "Pausable": [ - 3608 - ], - "SciRegistry": [ - 8085 - ] - }, - "id": 8086, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7738, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:36" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "@openzeppelin/contracts/utils/Context.sol", - "id": 7740, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 3418, - "src": "62:66:36", - "symbolAliases": [ - { - "foreign": { - "id": 7739, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "src": "70:7:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Pausable.sol", - "file": "@openzeppelin/contracts/utils/Pausable.sol", - "id": 7742, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 3609, - "src": "129:68:36", - "symbolAliases": [ - { - "foreign": { - "id": 7741, - "name": "Pausable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3608, - "src": "137:8:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", - "file": "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol", - "id": 7744, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 2437, - "src": "198:124:36", - "symbolAliases": [ - { - "foreign": { - "id": 7743, - "name": "AccessControlDefaultAdminRules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2436, - "src": "206:30:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "../Verifiers/IVerifier.sol", - "id": 7746, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 8102, - "src": "323:53:36", - "symbolAliases": [ - { - "foreign": { - "id": 7745, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "331:9:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/SciRegistry/ISciRegistry.sol", - "file": "./ISciRegistry.sol", - "id": 7748, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 7737, - "src": "377:48:36", - "symbolAliases": [ - { - "foreign": { - "id": 7747, - "name": "ISciRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "385:12:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/DomainMangager/DomainManager.sol", - "file": "../DomainMangager/DomainManager.sol", - "id": 7750, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8086, - "sourceUnit": 7205, - "src": "426:66:36", - "symbolAliases": [ - { - "foreign": { - "id": 7749, - "name": "DomainManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7204, - "src": "434:13:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 7752, - "name": "ISciRegistry", - "nameLocations": [ - "626:12:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7736, - "src": "626:12:36" - }, - "id": 7753, - "nodeType": "InheritanceSpecifier", - "src": "626:12:36" - }, - { - "baseName": { - "id": 7754, - "name": "Context", - "nameLocations": [ - "644:7:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3417, - "src": "644:7:36" - }, - "id": 7755, - "nodeType": "InheritanceSpecifier", - "src": "644:7:36" - }, - { - "baseName": { - "id": 7756, - "name": "AccessControlDefaultAdminRules", - "nameLocations": [ - "657:30:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2436, - "src": "657:30:36" - }, - "id": 7757, - "nodeType": "InheritanceSpecifier", - "src": "657:30:36" - }, - { - "baseName": { - "id": 7758, - "name": "DomainManager", - "nameLocations": [ - "693:13:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7204, - "src": "693:13:36" - }, - "id": 7759, - "nodeType": "InheritanceSpecifier", - "src": "693:13:36" - }, - { - "baseName": { - "id": 7760, - "name": "Pausable", - "nameLocations": [ - "712:8:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3608, - "src": "712:8:36" - }, - "id": 7761, - "nodeType": "InheritanceSpecifier", - "src": "712:8:36" - } - ], - "canonicalName": "SciRegistry", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7751, - "nodeType": "StructuredDocumentation", - "src": "494:103:36", - "text": " @title Registry\n @dev See {ISciRegistry}.\n @custom:security-contact security@sci.domains" - }, - "fullyImplemented": true, - "id": 8085, - "linearizedBaseContracts": [ - 8085, - 3608, - 7204, - 2436, - 1488, - 3756, - 3768, - 2566, - 2535, - 1571, - 3417, - 7736 - ], - "name": "SciRegistry", - "nameLocation": "607:11:36", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "SciRegistry.Record", - "documentation": { - "id": 7762, - "nodeType": "StructuredDocumentation", - "src": "727:343:36", - "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": 7772, - "members": [ - { - "constant": false, - "id": 7764, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1107:5:36", - "nodeType": "VariableDeclaration", - "scope": 7772, - "src": "1099:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7763, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1099:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7767, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "1132:8:36", - "nodeType": "VariableDeclaration", - "scope": 7772, - "src": "1122:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7766, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7765, - "name": "IVerifier", - "nameLocations": [ - "1122:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "1122:9:36" - }, - "referencedDeclaration": 8101, - "src": "1122:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7769, - "mutability": "mutable", - "name": "ownerSetTime", - "nameLocation": "1158:12:36", - "nodeType": "VariableDeclaration", - "scope": 7772, - "src": "1150:20:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7768, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1150:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7771, - "mutability": "mutable", - "name": "verifierSetTime", - "nameLocation": "1188:15:36", - "nodeType": "VariableDeclaration", - "scope": 7772, - "src": "1180:23:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7770, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1180:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Record", - "nameLocation": "1082:6:36", - "nodeType": "StructDefinition", - "scope": 8085, - "src": "1075:135:36", - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "be8cd266", - "id": 7777, - "mutability": "constant", - "name": "REGISTRAR_MANAGER_ROLE", - "nameLocation": "1290:22:36", - "nodeType": "VariableDeclaration", - "scope": 8085, - "src": "1266:84:36", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7773, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1266:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "5245474953545241525f4d414e414745525f524f4c45", - "id": 7775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1325:24:36", - "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": 7774, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1315:9:36", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 7776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1315:35:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "f68e9553", - "id": 7782, - "mutability": "constant", - "name": "REGISTRAR_ROLE", - "nameLocation": "1425:14:36", - "nodeType": "VariableDeclaration", - "scope": 8085, - "src": "1401:68:36", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7778, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1401:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "5245474953545241525f524f4c45", - "id": 7780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1452:16:36", - "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": 7779, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1442:9:36", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 7781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1442:27:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "e63ab1e9", - "id": 7787, - "mutability": "constant", - "name": "PAUSER_ROLE", - "nameLocation": "1546:11:36", - "nodeType": "VariableDeclaration", - "scope": 8085, - "src": "1522:62:36", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7783, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1522:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "5041555345525f524f4c45", - "id": 7785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1570:13:36", - "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": 7784, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1560:9:36", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 7786, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1560:24:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "baseFunctions": [ - 7672 - ], - "constant": false, - "documentation": { - "id": 7788, - "nodeType": "StructuredDocumentation", - "src": "1591:66:36", - "text": " @dev Maps the namehash of a domain to a Record." - }, - "functionSelector": "5b377fa2", - "id": 7793, - "mutability": "mutable", - "name": "domainHashToRecord", - "nameLocation": "1712:18:36", - "nodeType": "VariableDeclaration", - "scope": 8085, - "src": "1662:68:36", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record)" - }, - "typeName": { - "id": 7792, - "keyName": "nameHash", - "keyNameLocation": "1678:8:36", - "keyType": { - "id": 7789, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1670:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1662:42:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record)" - }, - "valueName": "domain", - "valueNameLocation": "1697:6:36", - "valueType": { - "id": 7791, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7790, - "name": "Record", - "nameLocations": [ - "1690:6:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7772, - "src": "1690:6:36" - }, - "referencedDeclaration": 7772, - "src": "1690:6:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage_ptr", - "typeString": "struct SciRegistry.Record" - } - } - }, - "visibility": "public" - }, - { - "body": { - "id": 7815, - "nodeType": "Block", - "src": "2134:70:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7811, - "name": "REGISTRAR_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7782, - "src": "2158:14:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7812, - "name": "REGISTRAR_MANAGER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7777, - "src": "2174:22:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7810, - "name": "_setRoleAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2026 - ], - "referencedDeclaration": 2026, - "src": "2144:13:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (bytes32,bytes32)" - } - }, - "id": 7813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2144:53:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7814, - "nodeType": "ExpressionStatement", - "src": "2144:53:36" - } - ] - }, - "documentation": { - "id": 7794, - "nodeType": "StructuredDocumentation", - "src": "1737:257:36", - "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": 7816, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 7799, - "name": "initialDelay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "2077:12:36", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7800, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2091:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2091:12:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 7802, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 7798, - "name": "AccessControlDefaultAdminRules", - "nameLocations": [ - "2046:30:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2436, - "src": "2046:30:36" - }, - "nodeType": "ModifierInvocation", - "src": "2046:58:36" - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 7806, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "2127:4:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SciRegistry_$8085", - "typeString": "contract SciRegistry" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SciRegistry_$8085", - "typeString": "contract SciRegistry" - } - ], - "id": 7805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2119:7:36", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7804, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2119:7:36", - "typeDescriptions": {} - } - }, - "id": 7807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2119:13:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 7808, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 7803, - "name": "DomainManager", - "nameLocations": [ - "2105:13:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7204, - "src": "2105:13:36" - }, - "nodeType": "ModifierInvocation", - "src": "2105:28:36" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7796, - "mutability": "mutable", - "name": "initialDelay", - "nameLocation": "2027:12:36", - "nodeType": "VariableDeclaration", - "scope": 7816, - "src": "2020:19:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - }, - "typeName": { - "id": 7795, - "name": "uint48", - "nodeType": "ElementaryTypeName", - "src": "2020:6:36", - "typeDescriptions": { - "typeIdentifier": "t_uint48", - "typeString": "uint48" - } - }, - "visibility": "internal" - } - ], - "src": "2010:35:36" - }, - "returnParameters": { - "id": 7809, - "nodeType": "ParameterList", - "parameters": [], - "src": "2134:0:36" - }, - "scope": 8085, - "src": "1999:205:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 7680 - ], - "body": { - "id": 7829, - "nodeType": "Block", - "src": "2341:51:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7825, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7819, - "src": "2367:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7826, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7821, - "src": "2374:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7824, - "name": "_registerDomain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8002, - "src": "2351:15:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32)" - } - }, - "id": 7827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2351:34:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7828, - "nodeType": "ExpressionStatement", - "src": "2351:34:36" - } - ] - }, - "documentation": { - "id": 7817, - "nodeType": "StructuredDocumentation", - "src": "2210:58:36", - "text": " @dev See {ISciRegistry-registerDomain}." - }, - "functionSelector": "a8c00861", - "id": 7830, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "registerDomain", - "nameLocation": "2282:14:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7822, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7819, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2305:5:36", - "nodeType": "VariableDeclaration", - "scope": 7830, - "src": "2297:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7818, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2297:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7821, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2320:10:36", - "nodeType": "VariableDeclaration", - "scope": 7830, - "src": "2312:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7820, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2312:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2296:35:36" - }, - "returnParameters": { - "id": 7823, - "nodeType": "ParameterList", - "parameters": [], - "src": "2341:0:36" - }, - "scope": 8085, - "src": "2273:119:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 7691 - ], - "body": { - "id": 7851, - "nodeType": "Block", - "src": "2603:95:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7842, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7833, - "src": "2629:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7843, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7835, - "src": "2636:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7841, - "name": "_registerDomain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8002, - "src": "2613:15:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32)" - } - }, - "id": 7844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2613:34:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7845, - "nodeType": "ExpressionStatement", - "src": "2613:34:36" - }, - { - "expression": { - "arguments": [ - { - "id": 7847, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7835, - "src": "2670:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7848, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7838, - "src": "2682:8:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "id": 7846, - "name": "_setVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8045, - "src": "2657:12:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IVerifier_$8101_$returns$__$", - "typeString": "function (bytes32,contract IVerifier)" - } - }, - "id": 7849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2657:34:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7850, - "nodeType": "ExpressionStatement", - "src": "2657:34:36" - } - ] - }, - "documentation": { - "id": 7831, - "nodeType": "StructuredDocumentation", - "src": "2398:70:36", - "text": " @dev See {ISciRegistry-registerDomainWithVerifier}." - }, - "functionSelector": "dd738e6c", - "id": 7852, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "registerDomainWithVerifier", - "nameLocation": "2482:26:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7839, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7833, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2526:5:36", - "nodeType": "VariableDeclaration", - "scope": 7852, - "src": "2518:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7832, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2518:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7835, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2549:10:36", - "nodeType": "VariableDeclaration", - "scope": 7852, - "src": "2541:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7834, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2541:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7838, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2579:8:36", - "nodeType": "VariableDeclaration", - "scope": 7852, - "src": "2569:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7837, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7836, - "name": "IVerifier", - "nameLocations": [ - "2569:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "2569:9:36" - }, - "referencedDeclaration": 8101, - "src": "2569:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "2508:85:36" - }, - "returnParameters": { - "id": 7840, - "nodeType": "ParameterList", - "parameters": [], - "src": "2603:0:36" - }, - "scope": 8085, - "src": "2473:225:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7862, - "nodeType": "Block", - "src": "2832:25:36", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7859, - "name": "_pause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "2842:6:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 7860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2842:8:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7861, - "nodeType": "ExpressionStatement", - "src": "2842:8:36" - } - ] - }, - "documentation": { - "id": 7853, - "nodeType": "StructuredDocumentation", - "src": "2704:75:36", - "text": " @dev Pauses registering a domain and setting a verifier." - }, - "functionSelector": "8456cb59", - "id": 7863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7856, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7787, - "src": "2819:11:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7857, - "kind": "modifierInvocation", - "modifierName": { - "id": 7855, - "name": "onlyRole", - "nameLocations": [ - "2810:8:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "2810:8:36" - }, - "nodeType": "ModifierInvocation", - "src": "2810:21:36" - } - ], - "name": "pause", - "nameLocation": "2793:5:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7854, - "nodeType": "ParameterList", - "parameters": [], - "src": "2798:2:36" - }, - "returnParameters": { - "id": 7858, - "nodeType": "ParameterList", - "parameters": [], - "src": "2832:0:36" - }, - "scope": 8085, - "src": "2784:73:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 7873, - "nodeType": "Block", - "src": "2995:27:36", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7870, - "name": "_unpause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3607, - "src": "3005:8:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 7871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3005:10:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7872, - "nodeType": "ExpressionStatement", - "src": "3005:10:36" - } - ] - }, - "documentation": { - "id": 7864, - "nodeType": "StructuredDocumentation", - "src": "2863:77:36", - "text": " @dev Unpauses registering a domain and setting a verifier." - }, - "functionSelector": "3f4ba83a", - "id": 7874, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7867, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7787, - "src": "2982:11:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7868, - "kind": "modifierInvocation", - "modifierName": { - "id": 7866, - "name": "onlyRole", - "nameLocations": [ - "2973:8:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "2973:8:36" - }, - "nodeType": "ModifierInvocation", - "src": "2973:21:36" - } - ], - "name": "unpause", - "nameLocation": "2954:7:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7865, - "nodeType": "ParameterList", - "parameters": [], - "src": "2961:2:36" - }, - "returnParameters": { - "id": 7869, - "nodeType": "ParameterList", - "parameters": [], - "src": "2995:0:36" - }, - "scope": 8085, - "src": "2945:77:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 7701 - ], - "body": { - "id": 7891, - "nodeType": "Block", - "src": "3218:58:36", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7886, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7877, - "src": "3247:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7885, - "name": "domainOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7976, - "src": "3235:11:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 7887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3235:23:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 7888, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7879, - "src": "3262:7:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3235:34:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7884, - "id": 7890, - "nodeType": "Return", - "src": "3228:41:36" - } - ] - }, - "documentation": { - "id": 7875, - "nodeType": "StructuredDocumentation", - "src": "3028:57:36", - "text": " @dev See {ISciRegistry-isDomainOwner}." - }, - "functionSelector": "8023597e", - "id": 7892, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDomainOwner", - "nameLocation": "3099:13:36", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7881, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "3194:8:36" - }, - "parameters": { - "id": 7880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7877, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3130:10:36", - "nodeType": "VariableDeclaration", - "scope": 7892, - "src": "3122:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7876, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3122:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7879, - "mutability": "mutable", - "name": "account", - "nameLocation": "3158:7:36", - "nodeType": "VariableDeclaration", - "scope": 7892, - "src": "3150:15:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7878, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3150:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3112:59:36" - }, - "returnParameters": { - "id": 7884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7883, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7892, - "src": "3212:4:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7882, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3212:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3211:6:36" - }, - "scope": 8085, - "src": "3090:186:36", - "stateMutability": "view", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 7735 - ], - "body": { - "id": 7911, - "nodeType": "Block", - "src": "3476:51:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7907, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7895, - "src": "3499:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7908, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7898, - "src": "3511:8:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "id": 7906, - "name": "_setVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8045, - "src": "3486:12:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IVerifier_$8101_$returns$__$", - "typeString": "function (bytes32,contract IVerifier)" - } - }, - "id": 7909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3486:34:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7910, - "nodeType": "ExpressionStatement", - "src": "3486:34:36" - } - ] - }, - "documentation": { - "id": 7893, - "nodeType": "StructuredDocumentation", - "src": "3282:55:36", - "text": " @dev See {ISciRegistry-setVerifier}." - }, - "functionSelector": "a692b9ef", - "id": 7912, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7901, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "3450:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3450:12:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7903, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7895, - "src": "3464:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7904, - "kind": "modifierInvocation", - "modifierName": { - "id": 7900, - "name": "onlyDomainOwner", - "nameLocations": [ - "3434:15:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7168, - "src": "3434:15:36" - }, - "nodeType": "ModifierInvocation", - "src": "3434:41:36" - } - ], - "name": "setVerifier", - "nameLocation": "3351:11:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7895, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3380:10:36", - "nodeType": "VariableDeclaration", - "scope": 7912, - "src": "3372:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7894, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3372:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7898, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "3410:8:36", - "nodeType": "VariableDeclaration", - "scope": 7912, - "src": "3400:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7897, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7896, - "name": "IVerifier", - "nameLocations": [ - "3400:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "3400:9:36" - }, - "referencedDeclaration": 8101, - "src": "3400:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "3362:62:36" - }, - "returnParameters": { - "id": 7905, - "nodeType": "ParameterList", - "parameters": [], - "src": "3476:0:36" - }, - "scope": 8085, - "src": "3342:185:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 7718 - ], - "body": { - "id": 7926, - "nodeType": "Block", - "src": "3682:63:36", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 7921, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "3699:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 7923, - "indexExpression": { - "id": 7922, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7915, - "src": "3718:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3699:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 7924, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3730:8:36", - "memberName": "verifier", - "nodeType": "MemberAccess", - "referencedDeclaration": 7767, - "src": "3699:39:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "functionReturnParameters": 7920, - "id": 7925, - "nodeType": "Return", - "src": "3692:46:36" - } - ] - }, - "documentation": { - "id": 7913, - "nodeType": "StructuredDocumentation", - "src": "3533:58:36", - "text": " @dev See {ISciRegistry-domainVerifier}." - }, - "functionSelector": "5a75199a", - "id": 7927, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "domainVerifier", - "nameLocation": "3605:14:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7916, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7915, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3628:10:36", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "3620:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7914, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3620:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3619:20:36" - }, - "returnParameters": { - "id": 7920, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7919, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "3671:9:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 7918, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7917, - "name": "IVerifier", - "nameLocations": [ - "3671:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "3671:9:36" - }, - "referencedDeclaration": 8101, - "src": "3671:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "3670:11:36" - }, - "scope": 8085, - "src": "3596:149:36", - "stateMutability": "view", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 7726 - ], - "body": { - "id": 7940, - "nodeType": "Block", - "src": "3912:70:36", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 7935, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "3929:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 7937, - "indexExpression": { - "id": 7936, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7930, - "src": "3948:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3929:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 7938, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3960:15:36", - "memberName": "verifierSetTime", - "nodeType": "MemberAccess", - "referencedDeclaration": 7771, - "src": "3929:46:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7934, - "id": 7939, - "nodeType": "Return", - "src": "3922:53:36" - } - ] - }, - "documentation": { - "id": 7928, - "nodeType": "StructuredDocumentation", - "src": "3751:65:36", - "text": " @dev See {ISciRegistry-domainVerifierSetTime}." - }, - "functionSelector": "a2a6c0eb", - "id": 7941, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "domainVerifierSetTime", - "nameLocation": "3830:21:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7931, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7930, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3860:10:36", - "nodeType": "VariableDeclaration", - "scope": 7941, - "src": "3852:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7929, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3852:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3851:20:36" - }, - "returnParameters": { - "id": 7934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7933, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7941, - "src": "3903:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3903:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3902:9:36" - }, - "scope": 8085, - "src": "3821:161:36", - "stateMutability": "view", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 1843 - ], - "body": { - "id": 7960, - "nodeType": "Block", - "src": "4368:42:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7956, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7944, - "src": "4389:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7957, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7946, - "src": "4395:7:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7955, - "name": "_grantRole", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1970 - ], - "referencedDeclaration": 1970, - "src": "4378:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) returns (bool)" - } - }, - "id": 7958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4378:25:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7959, - "nodeType": "ExpressionStatement", - "src": "4378:25:36" - } - ] - }, - "documentation": { - "id": 7942, - "nodeType": "StructuredDocumentation", - "src": "3988:280:36", - "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": 7961, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 7951, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7944, - "src": "4361:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7950, - "name": "getRoleAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1321, - "src": "4348:12:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - } - }, - "id": 7952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4348:18:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7953, - "kind": "modifierInvocation", - "modifierName": { - "id": 7949, - "name": "onlyRole", - "nameLocations": [ - "4339:8:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "4339:8:36" - }, - "nodeType": "ModifierInvocation", - "src": "4339:28:36" - } - ], - "name": "grantRole", - "nameLocation": "4282:9:36", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7948, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4330:8:36" - }, - "parameters": { - "id": 7947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7944, - "mutability": "mutable", - "name": "role", - "nameLocation": "4300:4:36", - "nodeType": "VariableDeclaration", - "scope": 7961, - "src": "4292:12:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7943, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4292:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7946, - "mutability": "mutable", - "name": "account", - "nameLocation": "4314:7:36", - "nodeType": "VariableDeclaration", - "scope": 7961, - "src": "4306:15:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7945, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4306:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4291:31:36" - }, - "returnParameters": { - "id": 7954, - "nodeType": "ParameterList", - "parameters": [], - "src": "4368:0:36" - }, - "scope": 8085, - "src": "4273:137:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 7709 - ], - "body": { - "id": 7975, - "nodeType": "Block", - "src": "4564:60:36", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 7970, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "4581:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 7972, - "indexExpression": { - "id": 7971, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7964, - "src": "4600:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4581:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 7973, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4612:5:36", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 7764, - "src": "4581:36:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 7969, - "id": 7974, - "nodeType": "Return", - "src": "4574:43:36" - } - ] - }, - "documentation": { - "id": 7962, - "nodeType": "StructuredDocumentation", - "src": "4416:55:36", - "text": " @dev See {ISciRegistry-domainOwner}." - }, - "functionSelector": "d26cdd20", - "id": 7976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "domainOwner", - "nameLocation": "4485:11:36", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7966, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4537:8:36" - }, - "parameters": { - "id": 7965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7964, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "4505:10:36", - "nodeType": "VariableDeclaration", - "scope": 7976, - "src": "4497:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7963, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4497:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4496:20:36" - }, - "returnParameters": { - "id": 7969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7968, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7976, - "src": "4555:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7967, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4555:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4554:9:36" - }, - "scope": 8085, - "src": "4476:148:36", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 8001, - "nodeType": "Block", - "src": "5130:115:36", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 7990, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "5156:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 7991, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7979, - "src": "5168:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7989, - "name": "_setDomainOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8084, - "src": "5140:15:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 7992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5140:34:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7993, - "nodeType": "ExpressionStatement", - "src": "5140:34:36" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7995, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "5206:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 7996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5206:12:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7997, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7979, - "src": "5220:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 7998, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7981, - "src": "5227:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 7994, - "name": "DomainRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7633, - "src": "5189:16:36", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,bytes32)" - } - }, - "id": 7999, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5189:49:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8000, - "nodeType": "EmitStatement", - "src": "5184:54:36" - } - ] - }, - "documentation": { - "id": 7977, - "nodeType": "StructuredDocumentation", - "src": "4630:366:36", - "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": 8002, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 7984, - "name": "REGISTRAR_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7782, - "src": "5100:14:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 7985, - "kind": "modifierInvocation", - "modifierName": { - "id": 7983, - "name": "onlyRole", - "nameLocations": [ - "5091:8:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1233, - "src": "5091:8:36" - }, - "nodeType": "ModifierInvocation", - "src": "5091:24:36" - }, - { - "id": 7987, - "kind": "modifierInvocation", - "modifierName": { - "id": 7986, - "name": "whenNotPaused", - "nameLocations": [ - "5116:13:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3533, - "src": "5116:13:36" - }, - "nodeType": "ModifierInvocation", - "src": "5116:13:36" - } - ], - "name": "_registerDomain", - "nameLocation": "5010:15:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7979, - "mutability": "mutable", - "name": "owner", - "nameLocation": "5043:5:36", - "nodeType": "VariableDeclaration", - "scope": 8002, - "src": "5035:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5035:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7981, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "5066:10:36", - "nodeType": "VariableDeclaration", - "scope": 8002, - "src": "5058:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 7980, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5058:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5025:57:36" - }, - "returnParameters": { - "id": 7988, - "nodeType": "ParameterList", - "parameters": [], - "src": "5130:0:36" - }, - "scope": 8085, - "src": "5001:244:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 8044, - "nodeType": "Block", - "src": "5593:289:36", - "statements": [ - { - "assignments": [ - 8015 - ], - "declarations": [ - { - "constant": false, - "id": 8015, - "mutability": "mutable", - "name": "oldVerifier", - "nameLocation": "5613:11:36", - "nodeType": "VariableDeclaration", - "scope": 8044, - "src": "5603:21:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 8014, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8013, - "name": "IVerifier", - "nameLocations": [ - "5603:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "5603:9:36" - }, - "referencedDeclaration": 8101, - "src": "5603:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "id": 8020, - "initialValue": { - "expression": { - "baseExpression": { - "id": 8016, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "5627:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8018, - "indexExpression": { - "id": 8017, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8005, - "src": "5646:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5627:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8019, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5658:8:36", - "memberName": "verifier", - "nodeType": "MemberAccess", - "referencedDeclaration": 7767, - "src": "5627:39:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5603:63:36" - }, - { - "expression": { - "id": 8026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 8021, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "5676:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8023, - "indexExpression": { - "id": 8022, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8005, - "src": "5695:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5676:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8024, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "5707:8:36", - "memberName": "verifier", - "nodeType": "MemberAccess", - "referencedDeclaration": 7767, - "src": "5676:39:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 8025, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8008, - "src": "5718:8:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "src": "5676:50:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "id": 8027, - "nodeType": "ExpressionStatement", - "src": "5676:50:36" - }, - { - "expression": { - "id": 8034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 8028, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "5736:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8030, - "indexExpression": { - "id": 8029, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8005, - "src": "5755:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5736:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8031, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "5767:15:36", - "memberName": "verifierSetTime", - "nodeType": "MemberAccess", - "referencedDeclaration": 7771, - "src": "5736:46:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 8032, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "5785:5:36", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5791:9:36", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "5785:15:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5736:64:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8035, - "nodeType": "ExpressionStatement", - "src": "5736:64:36" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8037, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "5827:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5827:12:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8039, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8005, - "src": "5841:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 8040, - "name": "oldVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8015, - "src": "5853:11:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - { - "id": 8041, - "name": "verifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8008, - "src": "5866:8:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - ], - "id": 8036, - "name": "VerifierSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "5815:11:36", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8101_$_t_contract$_IVerifier_$8101_$returns$__$", - "typeString": "function (address,bytes32,contract IVerifier,contract IVerifier)" - } - }, - "id": 8042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5815:60:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8043, - "nodeType": "EmitStatement", - "src": "5810:65:36" - } - ] - }, - "documentation": { - "id": 8003, - "nodeType": "StructuredDocumentation", - "src": "5251:253:36", - "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": 8045, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8011, - "kind": "modifierInvocation", - "modifierName": { - "id": 8010, - "name": "whenNotPaused", - "nameLocations": [ - "5579:13:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3533, - "src": "5579:13:36" - }, - "nodeType": "ModifierInvocation", - "src": "5579:13:36" - } - ], - "name": "_setVerifier", - "nameLocation": "5518:12:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8005, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "5539:10:36", - "nodeType": "VariableDeclaration", - "scope": 8045, - "src": "5531:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8004, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5531:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8008, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "5561:8:36", - "nodeType": "VariableDeclaration", - "scope": 8045, - "src": "5551:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - }, - "typeName": { - "id": 8007, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8006, - "name": "IVerifier", - "nameLocations": [ - "5551:9:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "5551:9:36" - }, - "referencedDeclaration": 8101, - "src": "5551:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVerifier_$8101", - "typeString": "contract IVerifier" - } - }, - "visibility": "internal" - } - ], - "src": "5530:40:36" - }, - "returnParameters": { - "id": 8012, - "nodeType": "ParameterList", - "parameters": [], - "src": "5593:0:36" - }, - "scope": 8085, - "src": "5509:373:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 8083, - "nodeType": "Block", - "src": "6076:263:36", - "statements": [ - { - "assignments": [ - 8054 - ], - "declarations": [ - { - "constant": false, - "id": 8054, - "mutability": "mutable", - "name": "oldOwner", - "nameLocation": "6094:8:36", - "nodeType": "VariableDeclaration", - "scope": 8083, - "src": "6086:16:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8053, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6086:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 8059, - "initialValue": { - "expression": { - "baseExpression": { - "id": 8055, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "6105:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8057, - "indexExpression": { - "id": 8056, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "6124:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6105:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8058, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6136:5:36", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 7764, - "src": "6105:36:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6086:55:36" - }, - { - "expression": { - "id": 8065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 8060, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "6151:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8062, - "indexExpression": { - "id": 8061, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "6170:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6151:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8063, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6182:5:36", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 7764, - "src": "6151:36:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 8064, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8050, - "src": "6190:5:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6151:44:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8066, - "nodeType": "ExpressionStatement", - "src": "6151:44:36" - }, - { - "expression": { - "id": 8073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 8067, - "name": "domainHashToRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7793, - "src": "6205:18:36", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$7772_storage_$", - "typeString": "mapping(bytes32 => struct SciRegistry.Record storage ref)" - } - }, - "id": 8069, - "indexExpression": { - "id": 8068, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "6224:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6205:30:36", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$7772_storage", - "typeString": "struct SciRegistry.Record storage ref" - } - }, - "id": 8070, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6236:12:36", - "memberName": "ownerSetTime", - "nodeType": "MemberAccess", - "referencedDeclaration": 7769, - "src": "6205:43:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 8071, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "6251:5:36", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6257:9:36", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "6251:15:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6205:61:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8074, - "nodeType": "ExpressionStatement", - "src": "6205:61:36" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8076, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "6290:10:36", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6290:12:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8078, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8048, - "src": "6304:10:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 8079, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8054, - "src": "6316:8:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8080, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8050, - "src": "6326:5:36", - "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": 8075, - "name": "OwnerSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7657, - "src": "6281:8:36", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,bytes32,address,address)" - } - }, - "id": 8081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6281:51:36", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8082, - "nodeType": "EmitStatement", - "src": "6276:56:36" - } - ] - }, - "documentation": { - "id": 8046, - "nodeType": "StructuredDocumentation", - "src": "5888:115:36", - "text": " @dev Sets the owner of a domain,\n All updates to an owner should be through this function." - }, - "id": 8084, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setDomainOwner", - "nameLocation": "6017:15:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8051, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8048, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "6041:10:36", - "nodeType": "VariableDeclaration", - "scope": 8084, - "src": "6033:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8047, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6033:7:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8050, - "mutability": "mutable", - "name": "owner", - "nameLocation": "6061:5:36", - "nodeType": "VariableDeclaration", - "scope": 8084, - "src": "6053:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8049, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6053:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6032:35:36" - }, - "returnParameters": { - "id": 8052, - "nodeType": "ParameterList", - "parameters": [], - "src": "6076:0:36" - }, - "scope": 8085, - "src": "6008:331:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - } - ], - "scope": 8086, - "src": "598:5743:36", - "usedErrors": [ - 1498, - 1501, - 2448, - 2451, - 2456, - 3513, - 3516, - 5384, - 7154 - ], - "usedEvents": [ - 1510, - 1519, - 1528, - 2463, - 2466, - 2473, - 2476, - 3505, - 3510, - 7633, - 7646, - 7657 - ] - } - ], - "src": "37:6305:36" - }, - "id": 36 - }, - "contracts/Verifiers/IVerifier.sol": { - "ast": { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "exportedSymbols": { - "IVerifier": [ - 8101 - ] - }, - "id": 8102, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8087, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:37" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IVerifier", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 8088, - "nodeType": "StructuredDocumentation", - "src": "62:158:37", - "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": 8101, - "linearizedBaseContracts": [ - 8101 - ], - "name": "IVerifier", - "nameLocation": "231:9:37", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 8089, - "nodeType": "StructuredDocumentation", - "src": "247:685:37", - "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": 8100, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isVerified", - "nameLocation": "946:10:37", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8096, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8091, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "974:10:37", - "nodeType": "VariableDeclaration", - "scope": 8100, - "src": "966:18:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8090, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "966:7:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8093, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "1002:15:37", - "nodeType": "VariableDeclaration", - "scope": 8100, - "src": "994:23:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8092, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "994:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8095, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "1035:7:37", - "nodeType": "VariableDeclaration", - "scope": 8100, - "src": "1027:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8094, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1027:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "956:92:37" - }, - "returnParameters": { - "id": 8099, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8098, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8100, - "src": "1072:7:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8097, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1072:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1071:9:37" - }, - "scope": 8101, - "src": "937:144:37", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 8102, - "src": "221:862:37", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "37:1047:37" - }, - "id": 37 - }, - "contracts/Verifiers/PublicListVerifier.sol": { - "ast": { - "absolutePath": "contracts/Verifiers/PublicListVerifier.sol", - "exportedSymbols": { - "Context": [ - 3417 - ], - "DomainManager": [ - 7204 - ], - "IVerifier": [ - 8101 - ], - "PublicListVerifier": [ - 8370 - ] - }, - "id": 8371, - "license": "AGPL-3.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8103, - "literals": [ - "solidity", - "0.8", - ".28" - ], - "nodeType": "PragmaDirective", - "src": "37:23:38" - }, - { - "absolutePath": "contracts/Verifiers/IVerifier.sol", - "file": "./IVerifier.sol", - "id": 8105, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8371, - "sourceUnit": 8102, - "src": "62:42:38", - "symbolAliases": [ - { - "foreign": { - "id": 8104, - "name": "IVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "70:9:38", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/DomainMangager/DomainManager.sol", - "file": "../DomainMangager/DomainManager.sol", - "id": 8107, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8371, - "sourceUnit": 7205, - "src": "105:66:38", - "symbolAliases": [ - { - "foreign": { - "id": 8106, - "name": "DomainManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7204, - "src": "113:13:38", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "@openzeppelin/contracts/utils/Context.sol", - "id": 8109, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 8371, - "sourceUnit": 3418, - "src": "172:66:38", - "symbolAliases": [ - { - "foreign": { - "id": 8108, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3417, - "src": "180:7:38", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 8111, - "name": "IVerifier", - "nameLocations": [ - "657:9:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8101, - "src": "657:9:38" - }, - "id": 8112, - "nodeType": "InheritanceSpecifier", - "src": "657:9:38" - }, - { - "baseName": { - "id": 8113, - "name": "Context", - "nameLocations": [ - "668:7:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3417, - "src": "668:7:38" - }, - "id": 8114, - "nodeType": "InheritanceSpecifier", - "src": "668:7:38" - }, - { - "baseName": { - "id": 8115, - "name": "DomainManager", - "nameLocations": [ - "677:13:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7204, - "src": "677:13:38" - }, - "id": 8116, - "nodeType": "InheritanceSpecifier", - "src": "677:13:38" - } - ], - "canonicalName": "PublicListVerifier", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 8110, - "nodeType": "StructuredDocumentation", - "src": "240:385:38", - "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": 8370, - "linearizedBaseContracts": [ - 8370, - 7204, - 3417, - 8101 - ], - "name": "PublicListVerifier", - "nameLocation": "635:18:38", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 8123, - "mutability": "constant", - "name": "MAX_INT", - "nameLocation": "722:7:38", - "nodeType": "VariableDeclaration", - "scope": 8370, - "src": "697:47:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "697:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "commonType": { - "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", - "typeString": "int_const 1157...(70 digits omitted)...9935" - }, - "id": 8122, - "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": 8120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 8118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "732:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "323536", - "id": 8119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "737:3:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - }, - "value": "256" - }, - "src": "732:8:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", - "typeString": "int_const 1157...(70 digits omitted)...9936" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 8121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "743:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "732:12:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", - "typeString": "int_const 1157...(70 digits omitted)...9935" - } - }, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "79fb477a", - "id": 8131, - "mutability": "mutable", - "name": "verifiedContracts", - "nameLocation": "953:17:38", - "nodeType": "VariableDeclaration", - "scope": 8370, - "src": "817:153:38", - "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": 8130, - "keyName": "domainHash", - "keyNameLocation": "833:10:38", - "keyType": { - "id": 8124, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "825:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "817:120:38", - "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": 8129, - "keyName": "contractAddress", - "keyNameLocation": "863:15:38", - "keyType": { - "id": 8125, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "855:7:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "847:89:38", - "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": 8128, - "keyName": "chainId", - "keyNameLocation": "898:7:38", - "keyType": { - "id": 8126, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "890:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "882:53:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueName": "registerTimestamp", - "valueNameLocation": "917:17:38", - "valueType": { - "id": 8127, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "909:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - } - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": { - "id": 8132, - "nodeType": "StructuredDocumentation", - "src": "977:107:38", - "text": " @dev Emitted when the `msgSender` removes an address to a `domainHash` for a `chainId`." - }, - "eventSelector": "36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75", - "id": 8142, - "name": "AddressRemoved", - "nameLocation": "1095:14:38", - "nodeType": "EventDefinition", - "parameters": { - "id": 8141, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8134, - "indexed": true, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1135:10:38", - "nodeType": "VariableDeclaration", - "scope": 8142, - "src": "1119:26:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8133, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1119:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8136, - "indexed": true, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "1171:7:38", - "nodeType": "VariableDeclaration", - "scope": 8142, - "src": "1155:23:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1155:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8138, - "indexed": true, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "1204:15:38", - "nodeType": "VariableDeclaration", - "scope": 8142, - "src": "1188:31:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1188:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8140, - "indexed": false, - "mutability": "mutable", - "name": "msgSender", - "nameLocation": "1237:9:38", - "nodeType": "VariableDeclaration", - "scope": 8142, - "src": "1229:17:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1229:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1109:143:38" - }, - "src": "1089:164:38" - }, - { - "anonymous": false, - "documentation": { - "id": 8143, - "nodeType": "StructuredDocumentation", - "src": "1259:104:38", - "text": " @dev Emitted when the `msgSender` adds an address to a `domainHash` for a `chainId`." - }, - "eventSelector": "c177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd0", - "id": 8153, - "name": "AddressAdded", - "nameLocation": "1374:12:38", - "nodeType": "EventDefinition", - "parameters": { - "id": 8152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8145, - "indexed": true, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1412:10:38", - "nodeType": "VariableDeclaration", - "scope": 8153, - "src": "1396:26:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8144, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1396:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8147, - "indexed": true, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "1448:7:38", - "nodeType": "VariableDeclaration", - "scope": 8153, - "src": "1432:23:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1432:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8149, - "indexed": true, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "1481:15:38", - "nodeType": "VariableDeclaration", - "scope": 8153, - "src": "1465:31:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8148, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1465:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8151, - "indexed": false, - "mutability": "mutable", - "name": "msgSender", - "nameLocation": "1514:9:38", - "nodeType": "VariableDeclaration", - "scope": 8153, - "src": "1506:17:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1506:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1386:143:38" - }, - "src": "1368:162:38" - }, - { - "body": { - "id": 8161, - "nodeType": "Block", - "src": "1592:2:38", - "statements": [] - }, - "id": 8162, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 8158, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "1581:9:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 8159, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 8157, - "name": "DomainManager", - "nameLocations": [ - "1567:13:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7204, - "src": "1567:13:38" - }, - "nodeType": "ModifierInvocation", - "src": "1567:24:38" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8155, - "mutability": "mutable", - "name": "_registry", - "nameLocation": "1556:9:38", - "nodeType": "VariableDeclaration", - "scope": 8162, - "src": "1548:17:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8154, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1548:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1547:19:38" - }, - "returnParameters": { - "id": 8160, - "nodeType": "ParameterList", - "parameters": [], - "src": "1592:0:38" - }, - "scope": 8370, - "src": "1536:58:38", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 8239, - "nodeType": "Block", - "src": "1966:498:38", - "statements": [ - { - "body": { - "id": 8237, - "nodeType": "Block", - "src": "2024:434:38", - "statements": [ - { - "body": { - "id": 8231, - "nodeType": "Block", - "src": "2080:309:38", - "statements": [ - { - "expression": { - "id": 8211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 8196, - "name": "verifiedContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8131, - "src": "2098:17:38", - "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": 8206, - "indexExpression": { - "id": 8197, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8165, - "src": "2116:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2098:29:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8207, - "indexExpression": { - "baseExpression": { - "id": 8198, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8168, - "src": "2128:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8200, - "indexExpression": { - "id": 8199, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2146:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2128:20:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2098:51:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8208, - "indexExpression": { - "baseExpression": { - "baseExpression": { - "id": 8201, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8172, - "src": "2150:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8203, - "indexExpression": { - "id": 8202, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2159:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2150:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8205, - "indexExpression": { - "id": 8204, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "2162:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2150:14:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2098:67:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 8209, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "2168:5:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2195:9:38", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "2168:36:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2098:106:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8212, - "nodeType": "ExpressionStatement", - "src": "2098:106:38" - }, - { - "eventCall": { - "arguments": [ - { - "id": 8214, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8165, - "src": "2240:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "baseExpression": { - "baseExpression": { - "id": 8215, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8172, - "src": "2252:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8217, - "indexExpression": { - "id": 8216, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2261:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2252:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8219, - "indexExpression": { - "id": 8218, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "2264:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2252:14:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 8220, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8168, - "src": "2268:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8222, - "indexExpression": { - "id": 8221, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2286:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2268:20:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8223, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2290:10:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2290:12:38", - "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": 8213, - "name": "AddressAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8153, - "src": "2227:12:38", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (bytes32,uint256,address,address)" - } - }, - "id": 8225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2227:76:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8226, - "nodeType": "EmitStatement", - "src": "2222:81:38" - }, - { - "id": 8230, - "nodeType": "UncheckedBlock", - "src": "2321:54:38", - "statements": [ - { - "expression": { - "id": 8228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "2353:3:38", - "subExpression": { - "id": 8227, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "2355:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8229, - "nodeType": "ExpressionStatement", - "src": "2353:3:38" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8190, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "2054:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "baseExpression": { - "id": 8191, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8172, - "src": "2058:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8193, - "indexExpression": { - "id": 8192, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2067:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2058:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2070:6:38", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2058:18:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2054:22:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8232, - "initializationExpression": { - "assignments": [ - 8188 - ], - "declarations": [ - { - "constant": false, - "id": 8188, - "mutability": "mutable", - "name": "j", - "nameLocation": "2051:1:38", - "nodeType": "VariableDeclaration", - "scope": 8232, - "src": "2043:9:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8187, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2043:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8189, - "nodeType": "VariableDeclarationStatement", - "src": "2043:9:38" - }, - "isSimpleCounterLoop": false, - "nodeType": "ForStatement", - "src": "2038:351:38" - }, - { - "id": 8236, - "nodeType": "UncheckedBlock", - "src": "2402:46:38", - "statements": [ - { - "expression": { - "id": 8234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "2430:3:38", - "subExpression": { - "id": 8233, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "2432:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8235, - "nodeType": "ExpressionStatement", - "src": "2430:3:38" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8183, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "1992:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 8184, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8168, - "src": "1996:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2014:6:38", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1996:24:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1992:28:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8238, - "initializationExpression": { - "assignments": [ - 8181 - ], - "declarations": [ - { - "constant": false, - "id": 8181, - "mutability": "mutable", - "name": "i", - "nameLocation": "1989:1:38", - "nodeType": "VariableDeclaration", - "scope": 8238, - "src": "1981:9:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1981:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8182, - "nodeType": "VariableDeclarationStatement", - "src": "1981:9:38" - }, - "isSimpleCounterLoop": false, - "nodeType": "ForStatement", - "src": "1976:482:38" - } - ] - }, - "documentation": { - "id": 8163, - "nodeType": "StructuredDocumentation", - "src": "1600:169:38", - "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": 8240, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8175, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "1940:10:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1940:12:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8177, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8165, - "src": "1954:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 8178, - "kind": "modifierInvocation", - "modifierName": { - "id": 8174, - "name": "onlyDomainOwner", - "nameLocations": [ - "1924:15:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7168, - "src": "1924:15:38" - }, - "nodeType": "ModifierInvocation", - "src": "1924:41:38" - } - ], - "name": "addAddresses", - "nameLocation": "1783:12:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8165, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "1813:10:38", - "nodeType": "VariableDeclaration", - "scope": 8240, - "src": "1805:18:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8164, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1805:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8168, - "mutability": "mutable", - "name": "contractAddresses", - "nameLocation": "1852:17:38", - "nodeType": "VariableDeclaration", - "scope": 8240, - "src": "1833:36:38", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1833:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8167, - "nodeType": "ArrayTypeName", - "src": "1833:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8172, - "mutability": "mutable", - "name": "chainIds", - "nameLocation": "1900:8:38", - "nodeType": "VariableDeclaration", - "scope": 8240, - "src": "1879:29:38", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 8169, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1879:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8170, - "nodeType": "ArrayTypeName", - "src": "1879:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "id": 8171, - "nodeType": "ArrayTypeName", - "src": "1879:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", - "typeString": "uint256[][]" - } - }, - "visibility": "internal" - } - ], - "src": "1795:119:38" - }, - "returnParameters": { - "id": 8179, - "nodeType": "ParameterList", - "parameters": [], - "src": "1966:0:38" - }, - "scope": 8370, - "src": "1774:690:38", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8319, - "nodeType": "Block", - "src": "2842:468:38", - "statements": [ - { - "body": { - "id": 8317, - "nodeType": "Block", - "src": "2900:404:38", - "statements": [ - { - "body": { - "id": 8311, - "nodeType": "Block", - "src": "2959:276:38", - "statements": [ - { - "expression": { - "id": 8291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 8277, - "name": "verifiedContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8131, - "src": "2977:17:38", - "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": 8287, - "indexExpression": { - "id": 8278, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8243, - "src": "2995:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2977:29:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8288, - "indexExpression": { - "baseExpression": { - "id": 8279, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8246, - "src": "3007:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8281, - "indexExpression": { - "id": 8280, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "3025:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3007:20:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2977:51:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8289, - "indexExpression": { - "baseExpression": { - "baseExpression": { - "id": 8282, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8250, - "src": "3029:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8284, - "indexExpression": { - "id": 8283, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "3038:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3029:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8286, - "indexExpression": { - "id": 8285, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "3041:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3029:14:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2977:67:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 8290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3047:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2977:71:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8292, - "nodeType": "ExpressionStatement", - "src": "2977:71:38" - }, - { - "eventCall": { - "arguments": [ - { - "id": 8294, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8243, - "src": "3086:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "baseExpression": { - "baseExpression": { - "id": 8295, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8250, - "src": "3098:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8297, - "indexExpression": { - "id": 8296, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "3107:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3098:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8299, - "indexExpression": { - "id": 8298, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "3110:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3098:14:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 8300, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8246, - "src": "3114:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8302, - "indexExpression": { - "id": 8301, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "3132:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3114:20:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8303, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "3136:10:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3136:12:38", - "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": 8293, - "name": "AddressRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8142, - "src": "3071:14:38", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (bytes32,uint256,address,address)" - } - }, - "id": 8305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3071:78:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8306, - "nodeType": "EmitStatement", - "src": "3066:83:38" - }, - { - "id": 8310, - "nodeType": "UncheckedBlock", - "src": "3167:54:38", - "statements": [ - { - "expression": { - "id": 8308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "3199:3:38", - "subExpression": { - "id": 8307, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "3201:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8309, - "nodeType": "ExpressionStatement", - "src": "3199:3:38" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8268, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "2930:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "baseExpression": { - "id": 8269, - "name": "chainIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8250, - "src": "2934:8:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[] calldata[] calldata" - } - }, - "id": 8271, - "indexExpression": { - "id": 8270, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "2943:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2934:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 8272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2946:6:38", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2934:18:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2930:22:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8312, - "initializationExpression": { - "assignments": [ - 8266 - ], - "declarations": [ - { - "constant": false, - "id": 8266, - "mutability": "mutable", - "name": "j", - "nameLocation": "2927:1:38", - "nodeType": "VariableDeclaration", - "scope": 8312, - "src": "2919:9:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2919:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8267, - "nodeType": "VariableDeclarationStatement", - "src": "2919:9:38" - }, - "isSimpleCounterLoop": false, - "loopExpression": { - "expression": { - "id": 8275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "2954:3:38", - "subExpression": { - "id": 8274, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "2956:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8276, - "nodeType": "ExpressionStatement", - "src": "2954:3:38" - }, - "nodeType": "ForStatement", - "src": "2914:321:38" - }, - { - "id": 8316, - "nodeType": "UncheckedBlock", - "src": "3248:46:38", - "statements": [ - { - "expression": { - "id": 8314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "3276:3:38", - "subExpression": { - "id": 8313, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "3278:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8315, - "nodeType": "ExpressionStatement", - "src": "3276:3:38" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8261, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "2868:1:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 8262, - "name": "contractAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8246, - "src": "2872:17:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 8263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2890:6:38", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2872:24:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2868:28:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8318, - "initializationExpression": { - "assignments": [ - 8259 - ], - "declarations": [ - { - "constant": false, - "id": 8259, - "mutability": "mutable", - "name": "i", - "nameLocation": "2865:1:38", - "nodeType": "VariableDeclaration", - "scope": 8318, - "src": "2857:9:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8258, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2857:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8260, - "nodeType": "VariableDeclarationStatement", - "src": "2857:9:38" - }, - "isSimpleCounterLoop": false, - "nodeType": "ForStatement", - "src": "2852:452:38" - } - ] - }, - "documentation": { - "id": 8241, - "nodeType": "StructuredDocumentation", - "src": "2470:172:38", - "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": 8320, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8253, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2816:10:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 8254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2816:12:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8255, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8243, - "src": "2830:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 8256, - "kind": "modifierInvocation", - "modifierName": { - "id": 8252, - "name": "onlyDomainOwner", - "nameLocations": [ - "2800:15:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 7168, - "src": "2800:15:38" - }, - "nodeType": "ModifierInvocation", - "src": "2800:41:38" - } - ], - "name": "removeAddresses", - "nameLocation": "2656:15:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8251, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8243, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "2689:10:38", - "nodeType": "VariableDeclaration", - "scope": 8320, - "src": "2681:18:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8242, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2681:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8246, - "mutability": "mutable", - "name": "contractAddresses", - "nameLocation": "2728:17:38", - "nodeType": "VariableDeclaration", - "scope": 8320, - "src": "2709:36:38", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2709:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8245, - "nodeType": "ArrayTypeName", - "src": "2709:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8250, - "mutability": "mutable", - "name": "chainIds", - "nameLocation": "2776:8:38", - "nodeType": "VariableDeclaration", - "scope": 8320, - "src": "2755:29:38", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "typeString": "uint256[][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 8247, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2755:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8248, - "nodeType": "ArrayTypeName", - "src": "2755:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "id": 8249, - "nodeType": "ArrayTypeName", - "src": "2755:11:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", - "typeString": "uint256[][]" - } - }, - "visibility": "internal" - } - ], - "src": "2671:119:38" - }, - "returnParameters": { - "id": 8257, - "nodeType": "ParameterList", - "parameters": [], - "src": "2842:0:38" - }, - "scope": 8370, - "src": "2647:663:38", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 8100 - ], - "body": { - "id": 8368, - "nodeType": "Block", - "src": "3516:413:38", - "statements": [ - { - "assignments": [ - 8333 - ], - "declarations": [ - { - "constant": false, - "id": 8333, - "mutability": "mutable", - "name": "verifiedContract", - "nameLocation": "3534:16:38", - "nodeType": "VariableDeclaration", - "scope": 8368, - "src": "3526:24:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8332, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3526:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8341, - "initialValue": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 8334, - "name": "verifiedContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8131, - "src": "3553:17:38", - "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": 8336, - "indexExpression": { - "id": 8335, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8323, - "src": "3571:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3553:29:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8338, - "indexExpression": { - "id": 8337, - "name": "contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8325, - "src": "3583:15:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3553:46:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8340, - "indexExpression": { - "id": 8339, - "name": "chainId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8327, - "src": "3600:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3553:55:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3526:82:38" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8342, - "name": "verifiedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3623:16:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 8343, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3643:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3623:21:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8348, - "nodeType": "IfStatement", - "src": "3619:75:38", - "trueBody": { - "id": 8347, - "nodeType": "Block", - "src": "3646:48:38", - "statements": [ - { - "expression": { - "id": 8345, - "name": "verifiedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3667:16:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8331, - "id": 8346, - "nodeType": "Return", - "src": "3660:23:38" - } - ] - } - }, - { - "expression": { - "id": 8357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 8349, - "name": "verifiedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3704:16:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 8350, - "name": "verifiedContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8131, - "src": "3723:17:38", - "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": 8352, - "indexExpression": { - "id": 8351, - "name": "domainHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8323, - "src": "3741:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3723:29:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 8354, - "indexExpression": { - "id": 8353, - "name": "contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8325, - "src": "3753:15:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3723:46:38", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 8356, - "indexExpression": { - "id": 8355, - "name": "MAX_INT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8123, - "src": "3770:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3723:55:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3704:74:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8358, - "nodeType": "ExpressionStatement", - "src": "3704:74:38" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8359, - "name": "verifiedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3792:16:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 8360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3812:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3792:21:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8365, - "nodeType": "IfStatement", - "src": "3788:75:38", - "trueBody": { - "id": 8364, - "nodeType": "Block", - "src": "3815:48:38", - "statements": [ - { - "expression": { - "id": 8362, - "name": "verifiedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3836:16:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8331, - "id": 8363, - "nodeType": "Return", - "src": "3829:23:38" - } - ] - } - }, - { - "expression": { - "hexValue": "30", - "id": 8366, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3921:1:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 8331, - "id": 8367, - "nodeType": "Return", - "src": "3914:8:38" - } - ] - }, - "documentation": { - "id": 8321, - "nodeType": "StructuredDocumentation", - "src": "3316:51:38", - "text": " @dev See {IVerifier-isVerified}." - }, - "functionSelector": "046852d0", - "id": 8369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isVerified", - "nameLocation": "3381:10:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8323, - "mutability": "mutable", - "name": "domainHash", - "nameLocation": "3409:10:38", - "nodeType": "VariableDeclaration", - "scope": 8369, - "src": "3401:18:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8322, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3401:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8325, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "3437:15:38", - "nodeType": "VariableDeclaration", - "scope": 8369, - "src": "3429:23:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8324, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3429:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8327, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "3470:7:38", - "nodeType": "VariableDeclaration", - "scope": 8369, - "src": "3462:15:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8326, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3462:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3391:92:38" - }, - "returnParameters": { - "id": 8331, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8330, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8369, - "src": "3507:7:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8329, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3507:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3506:9:38" - }, - "scope": 8370, - "src": "3372:557:38", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 8371, - "src": "626:3305:38", - "usedErrors": [ - 7154 - ], - "usedEvents": [ - 8142, - 8153 - ] - } - ], - "src": "37:3895:38" - }, - "id": 38 - } - }, - "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\":\"0x8e208b44d5dbf22552fe72d79b45c640855b84fbc9ee21f4c3bb4bfe81cbe8db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcf03e1a9386d80ff6b8e31870063424454f69d2626c0efb2c8cf55e69151489\",\"dweb:/ipfs/QmVYgfMSc1ve5JWePqiAGSXEfD76emw3oLsCM1krstmJq5\"]}},\"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": "6080604052348015600f57600080fd5b50336000808060001b815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061123d806100766000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146101b15780635ef2c7f0146101cd578063a22cb465146101e9578063cf40882314610205578063e985e9c514610221578063f79fe53814610251576100b4565b80630178b8bf146100b957806302571be3146100e957806306ab59231461011957806314ab90381461014957806316a25cbd146101655780631896f70a14610195575b600080fd5b6100d360048036038101906100ce9190610dda565b610281565b6040516100e09190610e48565b60405180910390f35b61010360048036038101906100fe9190610dda565b6102c0565b6040516101109190610e48565b60405180910390f35b610133600480360381019061012e9190610e8f565b610342565b6040516101409190610ef1565b60405180910390f35b610163600480360381019061015e9190610f4c565b6104c5565b005b61017f600480360381019061017a9190610dda565b610643565b60405161018c9190610f9b565b60405180910390f35b6101af60048036038101906101aa9190610fb6565b610676565b005b6101cb60048036038101906101c69190610fb6565b61080c565b005b6101e760048036038101906101e29190610ff6565b610958565b005b61020360048036038101906101fe91906110a9565b61097a565b005b61021f600480360381019061021a91906110e9565b610a77565b005b61023b60048036038101906102369190611150565b610a92565b604051610248919061119f565b60405180910390f35b61026b60048036038101906102669190610dda565b610b26565b604051610278919061119f565b60405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361033857600091505061033d565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061043f5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61044857600080fd5b6000868660405160200161045d9291906111db565b60405160208183030381529060405280519060200120905061047f8186610b94565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82876040516104b09190610e48565b60405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806105c05750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6105c957600080fd5b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68846040516105f99190610f9b565b60405180910390a28260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806107715750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61077a57600080fd5b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0846040516107aa9190610e48565b60405180910390a28260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806109075750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61091057600080fd5b61091a8484610b94565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2668460405161094a9190610e48565b60405180910390a250505050565b6000610965868686610342565b9050610972818484610bec565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a6b919061119f565b60405180910390a35050565b610a81848461080c565b610a8c848383610bec565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b8060008084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ce1578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051610cd89190610e48565b60405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614610d9a578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051610d919190610f9b565b60405180910390a25b505050565b600080fd5b6000819050919050565b610db781610da4565b8114610dc257600080fd5b50565b600081359050610dd481610dae565b92915050565b600060208284031215610df057610def610d9f565b5b6000610dfe84828501610dc5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e3282610e07565b9050919050565b610e4281610e27565b82525050565b6000602082019050610e5d6000830184610e39565b92915050565b610e6c81610e27565b8114610e7757600080fd5b50565b600081359050610e8981610e63565b92915050565b600080600060608486031215610ea857610ea7610d9f565b5b6000610eb686828701610dc5565b9350506020610ec786828701610dc5565b9250506040610ed886828701610e7a565b9150509250925092565b610eeb81610da4565b82525050565b6000602082019050610f066000830184610ee2565b92915050565b600067ffffffffffffffff82169050919050565b610f2981610f0c565b8114610f3457600080fd5b50565b600081359050610f4681610f20565b92915050565b60008060408385031215610f6357610f62610d9f565b5b6000610f7185828601610dc5565b9250506020610f8285828601610f37565b9150509250929050565b610f9581610f0c565b82525050565b6000602082019050610fb06000830184610f8c565b92915050565b60008060408385031215610fcd57610fcc610d9f565b5b6000610fdb85828601610dc5565b9250506020610fec85828601610e7a565b9150509250929050565b600080600080600060a0868803121561101257611011610d9f565b5b600061102088828901610dc5565b955050602061103188828901610dc5565b945050604061104288828901610e7a565b935050606061105388828901610e7a565b925050608061106488828901610f37565b9150509295509295909350565b60008115159050919050565b61108681611071565b811461109157600080fd5b50565b6000813590506110a38161107d565b92915050565b600080604083850312156110c0576110bf610d9f565b5b60006110ce85828601610e7a565b92505060206110df85828601611094565b9150509250929050565b6000806000806080858703121561110357611102610d9f565b5b600061111187828801610dc5565b945050602061112287828801610e7a565b935050604061113387828801610e7a565b925050606061114487828801610f37565b91505092959194509250565b6000806040838503121561116757611166610d9f565b5b600061117585828601610e7a565b925050602061118685828601610e7a565b9150509250929050565b61119981611071565b82525050565b60006020820190506111b46000830184611190565b92915050565b6000819050919050565b6111d56111d082610da4565b6111ba565b82525050565b60006111e782856111c4565b6020820191506111f782846111c4565b602082019150819050939250505056fea26469706673582212200717631813312b249f96ab75b8093ffda54230dde478068a1618a6d1027d35db64736f6c634300081c0033", - "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 SMOD OR PUSH4 0x1813312B 0x24 SWAP16 SWAP7 0xAB PUSH22 0xB8093FFDA54230DDE478068A1618A6D1027D35DB6473 PUSH16 0x6C634300081C00330000000000000000 ", - "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:39", - "nodeType": "YulBlock", - "src": "0:8514:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:32:39", - "nodeType": "YulBlock", - "src": "379:32:39", - "statements": [ - { - "nativeSrc": "389:16:39", - "nodeType": "YulAssignment", - "src": "389:16:39", - "value": { - "name": "value", - "nativeSrc": "400:5:39", - "nodeType": "YulIdentifier", - "src": "400:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "334:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:77:39" - }, - { - "body": { - "nativeSrc": "460:79:39", - "nodeType": "YulBlock", - "src": "460:79:39", - "statements": [ - { - "body": { - "nativeSrc": "517:16:39", - "nodeType": "YulBlock", - "src": "517:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "526:1:39", - "nodeType": "YulLiteral", - "src": "526:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "529:1:39", - "nodeType": "YulLiteral", - "src": "529:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "519:6:39", - "nodeType": "YulIdentifier", - "src": "519:6:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulFunctionCall", - "src": "519:12:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulExpressionStatement", - "src": "519:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "483:5:39", - "nodeType": "YulIdentifier", - "src": "483:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "508:5:39", - "nodeType": "YulIdentifier", - "src": "508:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "490:17:39", - "nodeType": "YulIdentifier", - "src": "490:17:39" - }, - "nativeSrc": "490:24:39", - "nodeType": "YulFunctionCall", - "src": "490:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "480:2:39", - "nodeType": "YulIdentifier", - "src": "480:2:39" - }, - "nativeSrc": "480:35:39", - "nodeType": "YulFunctionCall", - "src": "480:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "473:6:39", - "nodeType": "YulIdentifier", - "src": "473:6:39" - }, - "nativeSrc": "473:43:39", - "nodeType": "YulFunctionCall", - "src": "473:43:39" - }, - "nativeSrc": "470:63:39", - "nodeType": "YulIf", - "src": "470:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "417:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "453:5:39", - "nodeType": "YulTypedName", - "src": "453:5:39", - "type": "" - } - ], - "src": "417:122:39" - }, - { - "body": { - "nativeSrc": "597:87:39", - "nodeType": "YulBlock", - "src": "597:87:39", - "statements": [ - { - "nativeSrc": "607:29:39", - "nodeType": "YulAssignment", - "src": "607:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "629:6:39", - "nodeType": "YulIdentifier", - "src": "629:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "616:12:39", - "nodeType": "YulIdentifier", - "src": "616:12:39" - }, - "nativeSrc": "616:20:39", - "nodeType": "YulFunctionCall", - "src": "616:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "607:5:39", - "nodeType": "YulIdentifier", - "src": "607:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "672:5:39", - "nodeType": "YulIdentifier", - "src": "672:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "645:26:39", - "nodeType": "YulIdentifier", - "src": "645:26:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulFunctionCall", - "src": "645:33:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulExpressionStatement", - "src": "645:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "545:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "575:6:39", - "nodeType": "YulTypedName", - "src": "575:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "583:3:39", - "nodeType": "YulTypedName", - "src": "583:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "591:5:39", - "nodeType": "YulTypedName", - "src": "591:5:39", - "type": "" - } - ], - "src": "545:139:39" - }, - { - "body": { - "nativeSrc": "756:263:39", - "nodeType": "YulBlock", - "src": "756:263:39", - "statements": [ - { - "body": { - "nativeSrc": "802:83:39", - "nodeType": "YulBlock", - "src": "802:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "804:77:39", - "nodeType": "YulIdentifier", - "src": "804:77:39" - }, - "nativeSrc": "804:79:39", - "nodeType": "YulFunctionCall", - "src": "804:79:39" - }, - "nativeSrc": "804:79:39", - "nodeType": "YulExpressionStatement", - "src": "804:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "777:7:39", - "nodeType": "YulIdentifier", - "src": "777:7:39" - }, - { - "name": "headStart", - "nativeSrc": "786:9:39", - "nodeType": "YulIdentifier", - "src": "786:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "773:3:39", - "nodeType": "YulIdentifier", - "src": "773:3:39" - }, - "nativeSrc": "773:23:39", - "nodeType": "YulFunctionCall", - "src": "773:23:39" - }, - { - "kind": "number", - "nativeSrc": "798:2:39", - "nodeType": "YulLiteral", - "src": "798:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "769:3:39", - "nodeType": "YulIdentifier", - "src": "769:3:39" - }, - "nativeSrc": "769:32:39", - "nodeType": "YulFunctionCall", - "src": "769:32:39" - }, - "nativeSrc": "766:119:39", - "nodeType": "YulIf", - "src": "766:119:39" - }, - { - "nativeSrc": "895:117:39", - "nodeType": "YulBlock", - "src": "895:117:39", - "statements": [ - { - "nativeSrc": "910:15:39", - "nodeType": "YulVariableDeclaration", - "src": "910:15:39", - "value": { - "kind": "number", - "nativeSrc": "924:1:39", - "nodeType": "YulLiteral", - "src": "924:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "914:6:39", - "nodeType": "YulTypedName", - "src": "914:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "939:63:39", - "nodeType": "YulAssignment", - "src": "939:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "974:9:39", - "nodeType": "YulIdentifier", - "src": "974:9:39" - }, - { - "name": "offset", - "nativeSrc": "985:6:39", - "nodeType": "YulIdentifier", - "src": "985:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "970:3:39", - "nodeType": "YulIdentifier", - "src": "970:3:39" - }, - "nativeSrc": "970:22:39", - "nodeType": "YulFunctionCall", - "src": "970:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "994:7:39", - "nodeType": "YulIdentifier", - "src": "994:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "949:20:39", - "nodeType": "YulIdentifier", - "src": "949:20:39" - }, - "nativeSrc": "949:53:39", - "nodeType": "YulFunctionCall", - "src": "949:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "939:6:39", - "nodeType": "YulIdentifier", - "src": "939:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "690:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "726:9:39", - "nodeType": "YulTypedName", - "src": "726:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "737:7:39", - "nodeType": "YulTypedName", - "src": "737:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "749:6:39", - "nodeType": "YulTypedName", - "src": "749:6:39", - "type": "" - } - ], - "src": "690:329:39" - }, - { - "body": { - "nativeSrc": "1070:81:39", - "nodeType": "YulBlock", - "src": "1070:81:39", - "statements": [ - { - "nativeSrc": "1080:65:39", - "nodeType": "YulAssignment", - "src": "1080:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1095:5:39", - "nodeType": "YulIdentifier", - "src": "1095:5:39" - }, - { - "kind": "number", - "nativeSrc": "1102:42:39", - "nodeType": "YulLiteral", - "src": "1102:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1091:3:39", - "nodeType": "YulIdentifier", - "src": "1091:3:39" - }, - "nativeSrc": "1091:54:39", - "nodeType": "YulFunctionCall", - "src": "1091:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1080:7:39", - "nodeType": "YulIdentifier", - "src": "1080:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "1025:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1052:5:39", - "nodeType": "YulTypedName", - "src": "1052:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1062:7:39", - "nodeType": "YulTypedName", - "src": "1062:7:39", - "type": "" - } - ], - "src": "1025:126:39" - }, - { - "body": { - "nativeSrc": "1202:51:39", - "nodeType": "YulBlock", - "src": "1202:51:39", - "statements": [ - { - "nativeSrc": "1212:35:39", - "nodeType": "YulAssignment", - "src": "1212:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1241:5:39", - "nodeType": "YulIdentifier", - "src": "1241:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "1223:17:39", - "nodeType": "YulIdentifier", - "src": "1223:17:39" - }, - "nativeSrc": "1223:24:39", - "nodeType": "YulFunctionCall", - "src": "1223:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1212:7:39", - "nodeType": "YulIdentifier", - "src": "1212:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "1157:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1184:5:39", - "nodeType": "YulTypedName", - "src": "1184:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1194:7:39", - "nodeType": "YulTypedName", - "src": "1194:7:39", - "type": "" - } - ], - "src": "1157:96:39" - }, - { - "body": { - "nativeSrc": "1324:53:39", - "nodeType": "YulBlock", - "src": "1324:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1341:3:39", - "nodeType": "YulIdentifier", - "src": "1341:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1364:5:39", - "nodeType": "YulIdentifier", - "src": "1364:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1346:17:39", - "nodeType": "YulIdentifier", - "src": "1346:17:39" - }, - "nativeSrc": "1346:24:39", - "nodeType": "YulFunctionCall", - "src": "1346:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1334:6:39", - "nodeType": "YulIdentifier", - "src": "1334:6:39" - }, - "nativeSrc": "1334:37:39", - "nodeType": "YulFunctionCall", - "src": "1334:37:39" - }, - "nativeSrc": "1334:37:39", - "nodeType": "YulExpressionStatement", - "src": "1334:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1259:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1312:5:39", - "nodeType": "YulTypedName", - "src": "1312:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1319:3:39", - "nodeType": "YulTypedName", - "src": "1319:3:39", - "type": "" - } - ], - "src": "1259:118:39" - }, - { - "body": { - "nativeSrc": "1481:124:39", - "nodeType": "YulBlock", - "src": "1481:124:39", - "statements": [ - { - "nativeSrc": "1491:26:39", - "nodeType": "YulAssignment", - "src": "1491:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1503:9:39", - "nodeType": "YulIdentifier", - "src": "1503:9:39" - }, - { - "kind": "number", - "nativeSrc": "1514:2:39", - "nodeType": "YulLiteral", - "src": "1514:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1499:3:39", - "nodeType": "YulIdentifier", - "src": "1499:3:39" - }, - "nativeSrc": "1499:18:39", - "nodeType": "YulFunctionCall", - "src": "1499:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1491:4:39", - "nodeType": "YulIdentifier", - "src": "1491:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1571:6:39", - "nodeType": "YulIdentifier", - "src": "1571:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1584:9:39", - "nodeType": "YulIdentifier", - "src": "1584:9:39" - }, - { - "kind": "number", - "nativeSrc": "1595:1:39", - "nodeType": "YulLiteral", - "src": "1595:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1580:3:39", - "nodeType": "YulIdentifier", - "src": "1580:3:39" - }, - "nativeSrc": "1580:17:39", - "nodeType": "YulFunctionCall", - "src": "1580:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1527:43:39", - "nodeType": "YulIdentifier", - "src": "1527:43:39" - }, - "nativeSrc": "1527:71:39", - "nodeType": "YulFunctionCall", - "src": "1527:71:39" - }, - "nativeSrc": "1527:71:39", - "nodeType": "YulExpressionStatement", - "src": "1527:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "1383:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1453:9:39", - "nodeType": "YulTypedName", - "src": "1453:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1465:6:39", - "nodeType": "YulTypedName", - "src": "1465:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1476:4:39", - "nodeType": "YulTypedName", - "src": "1476:4:39", - "type": "" - } - ], - "src": "1383:222:39" - }, - { - "body": { - "nativeSrc": "1654:79:39", - "nodeType": "YulBlock", - "src": "1654:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1711:16:39", - "nodeType": "YulBlock", - "src": "1711:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1720:1:39", - "nodeType": "YulLiteral", - "src": "1720:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1723:1:39", - "nodeType": "YulLiteral", - "src": "1723:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1713:6:39", - "nodeType": "YulIdentifier", - "src": "1713:6:39" - }, - "nativeSrc": "1713:12:39", - "nodeType": "YulFunctionCall", - "src": "1713:12:39" - }, - "nativeSrc": "1713:12:39", - "nodeType": "YulExpressionStatement", - "src": "1713:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1677:5:39", - "nodeType": "YulIdentifier", - "src": "1677:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1702:5:39", - "nodeType": "YulIdentifier", - "src": "1702:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1684:17:39", - "nodeType": "YulIdentifier", - "src": "1684:17:39" - }, - "nativeSrc": "1684:24:39", - "nodeType": "YulFunctionCall", - "src": "1684:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1674:2:39", - "nodeType": "YulIdentifier", - "src": "1674:2:39" - }, - "nativeSrc": "1674:35:39", - "nodeType": "YulFunctionCall", - "src": "1674:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1667:6:39", - "nodeType": "YulIdentifier", - "src": "1667:6:39" - }, - "nativeSrc": "1667:43:39", - "nodeType": "YulFunctionCall", - "src": "1667:43:39" - }, - "nativeSrc": "1664:63:39", - "nodeType": "YulIf", - "src": "1664:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "1611:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1647:5:39", - "nodeType": "YulTypedName", - "src": "1647:5:39", - "type": "" - } - ], - "src": "1611:122:39" - }, - { - "body": { - "nativeSrc": "1791:87:39", - "nodeType": "YulBlock", - "src": "1791:87:39", - "statements": [ - { - "nativeSrc": "1801:29:39", - "nodeType": "YulAssignment", - "src": "1801:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1823:6:39", - "nodeType": "YulIdentifier", - "src": "1823:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1810:12:39", - "nodeType": "YulIdentifier", - "src": "1810:12:39" - }, - "nativeSrc": "1810:20:39", - "nodeType": "YulFunctionCall", - "src": "1810:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1801:5:39", - "nodeType": "YulIdentifier", - "src": "1801:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1866:5:39", - "nodeType": "YulIdentifier", - "src": "1866:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "1839:26:39", - "nodeType": "YulIdentifier", - "src": "1839:26:39" - }, - "nativeSrc": "1839:33:39", - "nodeType": "YulFunctionCall", - "src": "1839:33:39" - }, - "nativeSrc": "1839:33:39", - "nodeType": "YulExpressionStatement", - "src": "1839:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "1739:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1769:6:39", - "nodeType": "YulTypedName", - "src": "1769:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1777:3:39", - "nodeType": "YulTypedName", - "src": "1777:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1785:5:39", - "nodeType": "YulTypedName", - "src": "1785:5:39", - "type": "" - } - ], - "src": "1739:139:39" - }, - { - "body": { - "nativeSrc": "1984:519:39", - "nodeType": "YulBlock", - "src": "1984:519:39", - "statements": [ - { - "body": { - "nativeSrc": "2030:83:39", - "nodeType": "YulBlock", - "src": "2030:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2032:77:39", - "nodeType": "YulIdentifier", - "src": "2032:77:39" - }, - "nativeSrc": "2032:79:39", - "nodeType": "YulFunctionCall", - "src": "2032:79:39" - }, - "nativeSrc": "2032:79:39", - "nodeType": "YulExpressionStatement", - "src": "2032:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2005:7:39", - "nodeType": "YulIdentifier", - "src": "2005:7:39" - }, - { - "name": "headStart", - "nativeSrc": "2014:9:39", - "nodeType": "YulIdentifier", - "src": "2014:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2001:3:39", - "nodeType": "YulIdentifier", - "src": "2001:3:39" - }, - "nativeSrc": "2001:23:39", - "nodeType": "YulFunctionCall", - "src": "2001:23:39" - }, - { - "kind": "number", - "nativeSrc": "2026:2:39", - "nodeType": "YulLiteral", - "src": "2026:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1997:3:39", - "nodeType": "YulIdentifier", - "src": "1997:3:39" - }, - "nativeSrc": "1997:32:39", - "nodeType": "YulFunctionCall", - "src": "1997:32:39" - }, - "nativeSrc": "1994:119:39", - "nodeType": "YulIf", - "src": "1994:119:39" - }, - { - "nativeSrc": "2123:117:39", - "nodeType": "YulBlock", - "src": "2123:117:39", - "statements": [ - { - "nativeSrc": "2138:15:39", - "nodeType": "YulVariableDeclaration", - "src": "2138:15:39", - "value": { - "kind": "number", - "nativeSrc": "2152:1:39", - "nodeType": "YulLiteral", - "src": "2152:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2142:6:39", - "nodeType": "YulTypedName", - "src": "2142:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2167:63:39", - "nodeType": "YulAssignment", - "src": "2167:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2202:9:39", - "nodeType": "YulIdentifier", - "src": "2202:9:39" - }, - { - "name": "offset", - "nativeSrc": "2213:6:39", - "nodeType": "YulIdentifier", - "src": "2213:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2198:3:39", - "nodeType": "YulIdentifier", - "src": "2198:3:39" - }, - "nativeSrc": "2198:22:39", - "nodeType": "YulFunctionCall", - "src": "2198:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2222:7:39", - "nodeType": "YulIdentifier", - "src": "2222:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "2177:20:39", - "nodeType": "YulIdentifier", - "src": "2177:20:39" - }, - "nativeSrc": "2177:53:39", - "nodeType": "YulFunctionCall", - "src": "2177:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2167:6:39", - "nodeType": "YulIdentifier", - "src": "2167:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "2250:118:39", - "nodeType": "YulBlock", - "src": "2250:118:39", - "statements": [ - { - "nativeSrc": "2265:16:39", - "nodeType": "YulVariableDeclaration", - "src": "2265:16:39", - "value": { - "kind": "number", - "nativeSrc": "2279:2:39", - "nodeType": "YulLiteral", - "src": "2279:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2269:6:39", - "nodeType": "YulTypedName", - "src": "2269:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2295:63:39", - "nodeType": "YulAssignment", - "src": "2295:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2330:9:39", - "nodeType": "YulIdentifier", - "src": "2330:9:39" - }, - { - "name": "offset", - "nativeSrc": "2341:6:39", - "nodeType": "YulIdentifier", - "src": "2341:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2326:3:39", - "nodeType": "YulIdentifier", - "src": "2326:3:39" - }, - "nativeSrc": "2326:22:39", - "nodeType": "YulFunctionCall", - "src": "2326:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2350:7:39", - "nodeType": "YulIdentifier", - "src": "2350:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "2305:20:39", - "nodeType": "YulIdentifier", - "src": "2305:20:39" - }, - "nativeSrc": "2305:53:39", - "nodeType": "YulFunctionCall", - "src": "2305:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "2295:6:39", - "nodeType": "YulIdentifier", - "src": "2295:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "2378:118:39", - "nodeType": "YulBlock", - "src": "2378:118:39", - "statements": [ - { - "nativeSrc": "2393:16:39", - "nodeType": "YulVariableDeclaration", - "src": "2393:16:39", - "value": { - "kind": "number", - "nativeSrc": "2407:2:39", - "nodeType": "YulLiteral", - "src": "2407:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2397:6:39", - "nodeType": "YulTypedName", - "src": "2397:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2423:63:39", - "nodeType": "YulAssignment", - "src": "2423:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2458:9:39", - "nodeType": "YulIdentifier", - "src": "2458:9:39" - }, - { - "name": "offset", - "nativeSrc": "2469:6:39", - "nodeType": "YulIdentifier", - "src": "2469:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2454:3:39", - "nodeType": "YulIdentifier", - "src": "2454:3:39" - }, - "nativeSrc": "2454:22:39", - "nodeType": "YulFunctionCall", - "src": "2454:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2478:7:39", - "nodeType": "YulIdentifier", - "src": "2478:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "2433:20:39", - "nodeType": "YulIdentifier", - "src": "2433:20:39" - }, - "nativeSrc": "2433:53:39", - "nodeType": "YulFunctionCall", - "src": "2433:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "2423:6:39", - "nodeType": "YulIdentifier", - "src": "2423:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_bytes32t_address", - "nativeSrc": "1884:619:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1938:9:39", - "nodeType": "YulTypedName", - "src": "1938:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1949:7:39", - "nodeType": "YulTypedName", - "src": "1949:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1961:6:39", - "nodeType": "YulTypedName", - "src": "1961:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1969:6:39", - "nodeType": "YulTypedName", - "src": "1969:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1977:6:39", - "nodeType": "YulTypedName", - "src": "1977:6:39", - "type": "" - } - ], - "src": "1884:619:39" - }, - { - "body": { - "nativeSrc": "2574:53:39", - "nodeType": "YulBlock", - "src": "2574:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2591:3:39", - "nodeType": "YulIdentifier", - "src": "2591:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2614:5:39", - "nodeType": "YulIdentifier", - "src": "2614:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "2596:17:39", - "nodeType": "YulIdentifier", - "src": "2596:17:39" - }, - "nativeSrc": "2596:24:39", - "nodeType": "YulFunctionCall", - "src": "2596:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2584:6:39", - "nodeType": "YulIdentifier", - "src": "2584:6:39" - }, - "nativeSrc": "2584:37:39", - "nodeType": "YulFunctionCall", - "src": "2584:37:39" - }, - "nativeSrc": "2584:37:39", - "nodeType": "YulExpressionStatement", - "src": "2584:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2509:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2562:5:39", - "nodeType": "YulTypedName", - "src": "2562:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2569:3:39", - "nodeType": "YulTypedName", - "src": "2569:3:39", - "type": "" - } - ], - "src": "2509:118:39" - }, - { - "body": { - "nativeSrc": "2731:124:39", - "nodeType": "YulBlock", - "src": "2731:124:39", - "statements": [ - { - "nativeSrc": "2741:26:39", - "nodeType": "YulAssignment", - "src": "2741:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2753:9:39", - "nodeType": "YulIdentifier", - "src": "2753:9:39" - }, - { - "kind": "number", - "nativeSrc": "2764:2:39", - "nodeType": "YulLiteral", - "src": "2764:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2749:3:39", - "nodeType": "YulIdentifier", - "src": "2749:3:39" - }, - "nativeSrc": "2749:18:39", - "nodeType": "YulFunctionCall", - "src": "2749:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2741:4:39", - "nodeType": "YulIdentifier", - "src": "2741:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2821:6:39", - "nodeType": "YulIdentifier", - "src": "2821:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2834:9:39", - "nodeType": "YulIdentifier", - "src": "2834:9:39" - }, - { - "kind": "number", - "nativeSrc": "2845:1:39", - "nodeType": "YulLiteral", - "src": "2845:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2830:3:39", - "nodeType": "YulIdentifier", - "src": "2830:3:39" - }, - "nativeSrc": "2830:17:39", - "nodeType": "YulFunctionCall", - "src": "2830:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2777:43:39", - "nodeType": "YulIdentifier", - "src": "2777:43:39" - }, - "nativeSrc": "2777:71:39", - "nodeType": "YulFunctionCall", - "src": "2777:71:39" - }, - "nativeSrc": "2777:71:39", - "nodeType": "YulExpressionStatement", - "src": "2777:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "2633:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2703:9:39", - "nodeType": "YulTypedName", - "src": "2703:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2715:6:39", - "nodeType": "YulTypedName", - "src": "2715:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2726:4:39", - "nodeType": "YulTypedName", - "src": "2726:4:39", - "type": "" - } - ], - "src": "2633:222:39" - }, - { - "body": { - "nativeSrc": "2905:57:39", - "nodeType": "YulBlock", - "src": "2905:57:39", - "statements": [ - { - "nativeSrc": "2915:41:39", - "nodeType": "YulAssignment", - "src": "2915:41:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2930:5:39", - "nodeType": "YulIdentifier", - "src": "2930:5:39" - }, - { - "kind": "number", - "nativeSrc": "2937:18:39", - "nodeType": "YulLiteral", - "src": "2937:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2926:3:39", - "nodeType": "YulIdentifier", - "src": "2926:3:39" - }, - "nativeSrc": "2926:30:39", - "nodeType": "YulFunctionCall", - "src": "2926:30:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "2915:7:39", - "nodeType": "YulIdentifier", - "src": "2915:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint64", - "nativeSrc": "2861:101:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2887:5:39", - "nodeType": "YulTypedName", - "src": "2887:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "2897:7:39", - "nodeType": "YulTypedName", - "src": "2897:7:39", - "type": "" - } - ], - "src": "2861:101:39" - }, - { - "body": { - "nativeSrc": "3010:78:39", - "nodeType": "YulBlock", - "src": "3010:78:39", - "statements": [ - { - "body": { - "nativeSrc": "3066:16:39", - "nodeType": "YulBlock", - "src": "3066:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3075:1:39", - "nodeType": "YulLiteral", - "src": "3075:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3078:1:39", - "nodeType": "YulLiteral", - "src": "3078:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3068:6:39", - "nodeType": "YulIdentifier", - "src": "3068:6:39" - }, - "nativeSrc": "3068:12:39", - "nodeType": "YulFunctionCall", - "src": "3068:12:39" - }, - "nativeSrc": "3068:12:39", - "nodeType": "YulExpressionStatement", - "src": "3068:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3033:5:39", - "nodeType": "YulIdentifier", - "src": "3033:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3057:5:39", - "nodeType": "YulIdentifier", - "src": "3057:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint64", - "nativeSrc": "3040:16:39", - "nodeType": "YulIdentifier", - "src": "3040:16:39" - }, - "nativeSrc": "3040:23:39", - "nodeType": "YulFunctionCall", - "src": "3040:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3030:2:39", - "nodeType": "YulIdentifier", - "src": "3030:2:39" - }, - "nativeSrc": "3030:34:39", - "nodeType": "YulFunctionCall", - "src": "3030:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3023:6:39", - "nodeType": "YulIdentifier", - "src": "3023:6:39" - }, - "nativeSrc": "3023:42:39", - "nodeType": "YulFunctionCall", - "src": "3023:42:39" - }, - "nativeSrc": "3020:62:39", - "nodeType": "YulIf", - "src": "3020:62:39" - } - ] - }, - "name": "validator_revert_t_uint64", - "nativeSrc": "2968:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3003:5:39", - "nodeType": "YulTypedName", - "src": "3003:5:39", - "type": "" - } - ], - "src": "2968:120:39" - }, - { - "body": { - "nativeSrc": "3145:86:39", - "nodeType": "YulBlock", - "src": "3145:86:39", - "statements": [ - { - "nativeSrc": "3155:29:39", - "nodeType": "YulAssignment", - "src": "3155:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3177:6:39", - "nodeType": "YulIdentifier", - "src": "3177:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3164:12:39", - "nodeType": "YulIdentifier", - "src": "3164:12:39" - }, - "nativeSrc": "3164:20:39", - "nodeType": "YulFunctionCall", - "src": "3164:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "3155:5:39", - "nodeType": "YulIdentifier", - "src": "3155:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3219:5:39", - "nodeType": "YulIdentifier", - "src": "3219:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint64", - "nativeSrc": "3193:25:39", - "nodeType": "YulIdentifier", - "src": "3193:25:39" - }, - "nativeSrc": "3193:32:39", - "nodeType": "YulFunctionCall", - "src": "3193:32:39" - }, - "nativeSrc": "3193:32:39", - "nodeType": "YulExpressionStatement", - "src": "3193:32:39" - } - ] - }, - "name": "abi_decode_t_uint64", - "nativeSrc": "3094:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3123:6:39", - "nodeType": "YulTypedName", - "src": "3123:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3131:3:39", - "nodeType": "YulTypedName", - "src": "3131:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "3139:5:39", - "nodeType": "YulTypedName", - "src": "3139:5:39", - "type": "" - } - ], - "src": "3094:137:39" - }, - { - "body": { - "nativeSrc": "3319:390:39", - "nodeType": "YulBlock", - "src": "3319:390:39", - "statements": [ - { - "body": { - "nativeSrc": "3365:83:39", - "nodeType": "YulBlock", - "src": "3365:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3367:77:39", - "nodeType": "YulIdentifier", - "src": "3367:77:39" - }, - "nativeSrc": "3367:79:39", - "nodeType": "YulFunctionCall", - "src": "3367:79:39" - }, - "nativeSrc": "3367:79:39", - "nodeType": "YulExpressionStatement", - "src": "3367:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3340:7:39", - "nodeType": "YulIdentifier", - "src": "3340:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3349:9:39", - "nodeType": "YulIdentifier", - "src": "3349:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3336:3:39", - "nodeType": "YulIdentifier", - "src": "3336:3:39" - }, - "nativeSrc": "3336:23:39", - "nodeType": "YulFunctionCall", - "src": "3336:23:39" - }, - { - "kind": "number", - "nativeSrc": "3361:2:39", - "nodeType": "YulLiteral", - "src": "3361:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3332:3:39", - "nodeType": "YulIdentifier", - "src": "3332:3:39" - }, - "nativeSrc": "3332:32:39", - "nodeType": "YulFunctionCall", - "src": "3332:32:39" - }, - "nativeSrc": "3329:119:39", - "nodeType": "YulIf", - "src": "3329:119:39" - }, - { - "nativeSrc": "3458:117:39", - "nodeType": "YulBlock", - "src": "3458:117:39", - "statements": [ - { - "nativeSrc": "3473:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3473:15:39", - "value": { - "kind": "number", - "nativeSrc": "3487:1:39", - "nodeType": "YulLiteral", - "src": "3487:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3477:6:39", - "nodeType": "YulTypedName", - "src": "3477:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3502:63:39", - "nodeType": "YulAssignment", - "src": "3502:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3537:9:39", - "nodeType": "YulIdentifier", - "src": "3537:9:39" - }, - { - "name": "offset", - "nativeSrc": "3548:6:39", - "nodeType": "YulIdentifier", - "src": "3548:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3533:3:39", - "nodeType": "YulIdentifier", - "src": "3533:3:39" - }, - "nativeSrc": "3533:22:39", - "nodeType": "YulFunctionCall", - "src": "3533:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3557:7:39", - "nodeType": "YulIdentifier", - "src": "3557:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "3512:20:39", - "nodeType": "YulIdentifier", - "src": "3512:20:39" - }, - "nativeSrc": "3512:53:39", - "nodeType": "YulFunctionCall", - "src": "3512:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3502:6:39", - "nodeType": "YulIdentifier", - "src": "3502:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3585:117:39", - "nodeType": "YulBlock", - "src": "3585:117:39", - "statements": [ - { - "nativeSrc": "3600:16:39", - "nodeType": "YulVariableDeclaration", - "src": "3600:16:39", - "value": { - "kind": "number", - "nativeSrc": "3614:2:39", - "nodeType": "YulLiteral", - "src": "3614:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3604:6:39", - "nodeType": "YulTypedName", - "src": "3604:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3630:62:39", - "nodeType": "YulAssignment", - "src": "3630:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3664:9:39", - "nodeType": "YulIdentifier", - "src": "3664:9:39" - }, - { - "name": "offset", - "nativeSrc": "3675:6:39", - "nodeType": "YulIdentifier", - "src": "3675:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3660:3:39", - "nodeType": "YulIdentifier", - "src": "3660:3:39" - }, - "nativeSrc": "3660:22:39", - "nodeType": "YulFunctionCall", - "src": "3660:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3684:7:39", - "nodeType": "YulIdentifier", - "src": "3684:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint64", - "nativeSrc": "3640:19:39", - "nodeType": "YulIdentifier", - "src": "3640:19:39" - }, - "nativeSrc": "3640:52:39", - "nodeType": "YulFunctionCall", - "src": "3640:52:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3630:6:39", - "nodeType": "YulIdentifier", - "src": "3630:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_uint64", - "nativeSrc": "3237:472:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3281:9:39", - "nodeType": "YulTypedName", - "src": "3281:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3292:7:39", - "nodeType": "YulTypedName", - "src": "3292:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3304:6:39", - "nodeType": "YulTypedName", - "src": "3304:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3312:6:39", - "nodeType": "YulTypedName", - "src": "3312:6:39", - "type": "" - } - ], - "src": "3237:472:39" - }, - { - "body": { - "nativeSrc": "3778:52:39", - "nodeType": "YulBlock", - "src": "3778:52:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3795:3:39", - "nodeType": "YulIdentifier", - "src": "3795:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3817:5:39", - "nodeType": "YulIdentifier", - "src": "3817:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint64", - "nativeSrc": "3800:16:39", - "nodeType": "YulIdentifier", - "src": "3800:16:39" - }, - "nativeSrc": "3800:23:39", - "nodeType": "YulFunctionCall", - "src": "3800:23:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3788:6:39", - "nodeType": "YulIdentifier", - "src": "3788:6:39" - }, - "nativeSrc": "3788:36:39", - "nodeType": "YulFunctionCall", - "src": "3788:36:39" - }, - "nativeSrc": "3788:36:39", - "nodeType": "YulExpressionStatement", - "src": "3788:36:39" - } - ] - }, - "name": "abi_encode_t_uint64_to_t_uint64_fromStack", - "nativeSrc": "3715:115:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3766:5:39", - "nodeType": "YulTypedName", - "src": "3766:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "3773:3:39", - "nodeType": "YulTypedName", - "src": "3773:3:39", - "type": "" - } - ], - "src": "3715:115:39" - }, - { - "body": { - "nativeSrc": "3932:122:39", - "nodeType": "YulBlock", - "src": "3932:122:39", - "statements": [ - { - "nativeSrc": "3942:26:39", - "nodeType": "YulAssignment", - "src": "3942:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3954:9:39", - "nodeType": "YulIdentifier", - "src": "3954:9:39" - }, - { - "kind": "number", - "nativeSrc": "3965:2:39", - "nodeType": "YulLiteral", - "src": "3965:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3950:3:39", - "nodeType": "YulIdentifier", - "src": "3950:3:39" - }, - "nativeSrc": "3950:18:39", - "nodeType": "YulFunctionCall", - "src": "3950:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3942:4:39", - "nodeType": "YulIdentifier", - "src": "3942:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4020:6:39", - "nodeType": "YulIdentifier", - "src": "4020:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4033:9:39", - "nodeType": "YulIdentifier", - "src": "4033:9:39" - }, - { - "kind": "number", - "nativeSrc": "4044:1:39", - "nodeType": "YulLiteral", - "src": "4044:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4029:3:39", - "nodeType": "YulIdentifier", - "src": "4029:3:39" - }, - "nativeSrc": "4029:17:39", - "nodeType": "YulFunctionCall", - "src": "4029:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint64_to_t_uint64_fromStack", - "nativeSrc": "3978:41:39", - "nodeType": "YulIdentifier", - "src": "3978:41:39" - }, - "nativeSrc": "3978:69:39", - "nodeType": "YulFunctionCall", - "src": "3978:69:39" - }, - "nativeSrc": "3978:69:39", - "nodeType": "YulExpressionStatement", - "src": "3978:69:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", - "nativeSrc": "3836:218:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3904:9:39", - "nodeType": "YulTypedName", - "src": "3904:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "3916:6:39", - "nodeType": "YulTypedName", - "src": "3916:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "3927:4:39", - "nodeType": "YulTypedName", - "src": "3927:4:39", - "type": "" - } - ], - "src": "3836:218:39" - }, - { - "body": { - "nativeSrc": "4143:391:39", - "nodeType": "YulBlock", - "src": "4143:391:39", - "statements": [ - { - "body": { - "nativeSrc": "4189:83:39", - "nodeType": "YulBlock", - "src": "4189:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4191:77:39", - "nodeType": "YulIdentifier", - "src": "4191:77:39" - }, - "nativeSrc": "4191:79:39", - "nodeType": "YulFunctionCall", - "src": "4191:79:39" - }, - "nativeSrc": "4191:79:39", - "nodeType": "YulExpressionStatement", - "src": "4191:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4164:7:39", - "nodeType": "YulIdentifier", - "src": "4164:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4173:9:39", - "nodeType": "YulIdentifier", - "src": "4173:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4160:3:39", - "nodeType": "YulIdentifier", - "src": "4160:3:39" - }, - "nativeSrc": "4160:23:39", - "nodeType": "YulFunctionCall", - "src": "4160:23:39" - }, - { - "kind": "number", - "nativeSrc": "4185:2:39", - "nodeType": "YulLiteral", - "src": "4185:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4156:3:39", - "nodeType": "YulIdentifier", - "src": "4156:3:39" - }, - "nativeSrc": "4156:32:39", - "nodeType": "YulFunctionCall", - "src": "4156:32:39" - }, - "nativeSrc": "4153:119:39", - "nodeType": "YulIf", - "src": "4153:119:39" - }, - { - "nativeSrc": "4282:117:39", - "nodeType": "YulBlock", - "src": "4282:117:39", - "statements": [ - { - "nativeSrc": "4297:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4297:15:39", - "value": { - "kind": "number", - "nativeSrc": "4311:1:39", - "nodeType": "YulLiteral", - "src": "4311:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4301:6:39", - "nodeType": "YulTypedName", - "src": "4301:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4326:63:39", - "nodeType": "YulAssignment", - "src": "4326:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4361:9:39", - "nodeType": "YulIdentifier", - "src": "4361:9:39" - }, - { - "name": "offset", - "nativeSrc": "4372:6:39", - "nodeType": "YulIdentifier", - "src": "4372:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4357:3:39", - "nodeType": "YulIdentifier", - "src": "4357:3:39" - }, - "nativeSrc": "4357:22:39", - "nodeType": "YulFunctionCall", - "src": "4357:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4381:7:39", - "nodeType": "YulIdentifier", - "src": "4381:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "4336:20:39", - "nodeType": "YulIdentifier", - "src": "4336:20:39" - }, - "nativeSrc": "4336:53:39", - "nodeType": "YulFunctionCall", - "src": "4336:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4326:6:39", - "nodeType": "YulIdentifier", - "src": "4326:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4409:118:39", - "nodeType": "YulBlock", - "src": "4409:118:39", - "statements": [ - { - "nativeSrc": "4424:16:39", - "nodeType": "YulVariableDeclaration", - "src": "4424:16:39", - "value": { - "kind": "number", - "nativeSrc": "4438:2:39", - "nodeType": "YulLiteral", - "src": "4438:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4428:6:39", - "nodeType": "YulTypedName", - "src": "4428:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4454:63:39", - "nodeType": "YulAssignment", - "src": "4454:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4489:9:39", - "nodeType": "YulIdentifier", - "src": "4489:9:39" - }, - { - "name": "offset", - "nativeSrc": "4500:6:39", - "nodeType": "YulIdentifier", - "src": "4500:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4485:3:39", - "nodeType": "YulIdentifier", - "src": "4485:3:39" - }, - "nativeSrc": "4485:22:39", - "nodeType": "YulFunctionCall", - "src": "4485:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4509:7:39", - "nodeType": "YulIdentifier", - "src": "4509:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "4464:20:39", - "nodeType": "YulIdentifier", - "src": "4464:20:39" - }, - "nativeSrc": "4464:53:39", - "nodeType": "YulFunctionCall", - "src": "4464:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4454:6:39", - "nodeType": "YulIdentifier", - "src": "4454:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_address", - "nativeSrc": "4060:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4105:9:39", - "nodeType": "YulTypedName", - "src": "4105:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4116:7:39", - "nodeType": "YulTypedName", - "src": "4116:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4128:6:39", - "nodeType": "YulTypedName", - "src": "4128:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4136:6:39", - "nodeType": "YulTypedName", - "src": "4136:6:39", - "type": "" - } - ], - "src": "4060:474:39" - }, - { - "body": { - "nativeSrc": "4673:776:39", - "nodeType": "YulBlock", - "src": "4673:776:39", - "statements": [ - { - "body": { - "nativeSrc": "4720:83:39", - "nodeType": "YulBlock", - "src": "4720:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4722:77:39", - "nodeType": "YulIdentifier", - "src": "4722:77:39" - }, - "nativeSrc": "4722:79:39", - "nodeType": "YulFunctionCall", - "src": "4722:79:39" - }, - "nativeSrc": "4722:79:39", - "nodeType": "YulExpressionStatement", - "src": "4722:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4694:7:39", - "nodeType": "YulIdentifier", - "src": "4694:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4703:9:39", - "nodeType": "YulIdentifier", - "src": "4703:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4690:3:39", - "nodeType": "YulIdentifier", - "src": "4690:3:39" - }, - "nativeSrc": "4690:23:39", - "nodeType": "YulFunctionCall", - "src": "4690:23:39" - }, - { - "kind": "number", - "nativeSrc": "4715:3:39", - "nodeType": "YulLiteral", - "src": "4715:3:39", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4686:3:39", - "nodeType": "YulIdentifier", - "src": "4686:3:39" - }, - "nativeSrc": "4686:33:39", - "nodeType": "YulFunctionCall", - "src": "4686:33:39" - }, - "nativeSrc": "4683:120:39", - "nodeType": "YulIf", - "src": "4683:120:39" - }, - { - "nativeSrc": "4813:117:39", - "nodeType": "YulBlock", - "src": "4813:117:39", - "statements": [ - { - "nativeSrc": "4828:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4828:15:39", - "value": { - "kind": "number", - "nativeSrc": "4842:1:39", - "nodeType": "YulLiteral", - "src": "4842:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4832:6:39", - "nodeType": "YulTypedName", - "src": "4832:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4857:63:39", - "nodeType": "YulAssignment", - "src": "4857:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4892:9:39", - "nodeType": "YulIdentifier", - "src": "4892:9:39" - }, - { - "name": "offset", - "nativeSrc": "4903:6:39", - "nodeType": "YulIdentifier", - "src": "4903:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4888:3:39", - "nodeType": "YulIdentifier", - "src": "4888:3:39" - }, - "nativeSrc": "4888:22:39", - "nodeType": "YulFunctionCall", - "src": "4888:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4912:7:39", - "nodeType": "YulIdentifier", - "src": "4912:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "4867:20:39", - "nodeType": "YulIdentifier", - "src": "4867:20:39" - }, - "nativeSrc": "4867:53:39", - "nodeType": "YulFunctionCall", - "src": "4867:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4857:6:39", - "nodeType": "YulIdentifier", - "src": "4857:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4940:118:39", - "nodeType": "YulBlock", - "src": "4940:118:39", - "statements": [ - { - "nativeSrc": "4955:16:39", - "nodeType": "YulVariableDeclaration", - "src": "4955:16:39", - "value": { - "kind": "number", - "nativeSrc": "4969:2:39", - "nodeType": "YulLiteral", - "src": "4969:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4959:6:39", - "nodeType": "YulTypedName", - "src": "4959:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4985:63:39", - "nodeType": "YulAssignment", - "src": "4985:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5020:9:39", - "nodeType": "YulIdentifier", - "src": "5020:9:39" - }, - { - "name": "offset", - "nativeSrc": "5031:6:39", - "nodeType": "YulIdentifier", - "src": "5031:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5016:3:39", - "nodeType": "YulIdentifier", - "src": "5016:3:39" - }, - "nativeSrc": "5016:22:39", - "nodeType": "YulFunctionCall", - "src": "5016:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "5040:7:39", - "nodeType": "YulIdentifier", - "src": "5040:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "4995:20:39", - "nodeType": "YulIdentifier", - "src": "4995:20:39" - }, - "nativeSrc": "4995:53:39", - "nodeType": "YulFunctionCall", - "src": "4995:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4985:6:39", - "nodeType": "YulIdentifier", - "src": "4985:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "5068:118:39", - "nodeType": "YulBlock", - "src": "5068:118:39", - "statements": [ - { - "nativeSrc": "5083:16:39", - "nodeType": "YulVariableDeclaration", - "src": "5083:16:39", - "value": { - "kind": "number", - "nativeSrc": "5097:2:39", - "nodeType": "YulLiteral", - "src": "5097:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "5087:6:39", - "nodeType": "YulTypedName", - "src": "5087:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5113:63:39", - "nodeType": "YulAssignment", - "src": "5113:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5148:9:39", - "nodeType": "YulIdentifier", - "src": "5148:9:39" - }, - { - "name": "offset", - "nativeSrc": "5159:6:39", - "nodeType": "YulIdentifier", - "src": "5159:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5144:3:39", - "nodeType": "YulIdentifier", - "src": "5144:3:39" - }, - "nativeSrc": "5144:22:39", - "nodeType": "YulFunctionCall", - "src": "5144:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "5168:7:39", - "nodeType": "YulIdentifier", - "src": "5168:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "5123:20:39", - "nodeType": "YulIdentifier", - "src": "5123:20:39" - }, - "nativeSrc": "5123:53:39", - "nodeType": "YulFunctionCall", - "src": "5123:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "5113:6:39", - "nodeType": "YulIdentifier", - "src": "5113:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "5196:118:39", - "nodeType": "YulBlock", - "src": "5196:118:39", - "statements": [ - { - "nativeSrc": "5211:16:39", - "nodeType": "YulVariableDeclaration", - "src": "5211:16:39", - "value": { - "kind": "number", - "nativeSrc": "5225:2:39", - "nodeType": "YulLiteral", - "src": "5225:2:39", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "5215:6:39", - "nodeType": "YulTypedName", - "src": "5215:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5241:63:39", - "nodeType": "YulAssignment", - "src": "5241:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5276:9:39", - "nodeType": "YulIdentifier", - "src": "5276:9:39" - }, - { - "name": "offset", - "nativeSrc": "5287:6:39", - "nodeType": "YulIdentifier", - "src": "5287:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5272:3:39", - "nodeType": "YulIdentifier", - "src": "5272:3:39" - }, - "nativeSrc": "5272:22:39", - "nodeType": "YulFunctionCall", - "src": "5272:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "5296:7:39", - "nodeType": "YulIdentifier", - "src": "5296:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "5251:20:39", - "nodeType": "YulIdentifier", - "src": "5251:20:39" - }, - "nativeSrc": "5251:53:39", - "nodeType": "YulFunctionCall", - "src": "5251:53:39" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "5241:6:39", - "nodeType": "YulIdentifier", - "src": "5241:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "5324:118:39", - "nodeType": "YulBlock", - "src": "5324:118:39", - "statements": [ - { - "nativeSrc": "5339:17:39", - "nodeType": "YulVariableDeclaration", - "src": "5339:17:39", - "value": { - "kind": "number", - "nativeSrc": "5353:3:39", - "nodeType": "YulLiteral", - "src": "5353:3:39", - "type": "", - "value": "128" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "5343:6:39", - "nodeType": "YulTypedName", - "src": "5343:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5370:62:39", - "nodeType": "YulAssignment", - "src": "5370:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5404:9:39", - "nodeType": "YulIdentifier", - "src": "5404:9:39" - }, - { - "name": "offset", - "nativeSrc": "5415:6:39", - "nodeType": "YulIdentifier", - "src": "5415:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5400:3:39", - "nodeType": "YulIdentifier", - "src": "5400:3:39" - }, - "nativeSrc": "5400:22:39", - "nodeType": "YulFunctionCall", - "src": "5400:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "5424:7:39", - "nodeType": "YulIdentifier", - "src": "5424:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint64", - "nativeSrc": "5380:19:39", - "nodeType": "YulIdentifier", - "src": "5380:19:39" - }, - "nativeSrc": "5380:52:39", - "nodeType": "YulFunctionCall", - "src": "5380:52:39" - }, - "variableNames": [ - { - "name": "value4", - "nativeSrc": "5370:6:39", - "nodeType": "YulIdentifier", - "src": "5370:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_bytes32t_addresst_addresst_uint64", - "nativeSrc": "4540:909:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4611:9:39", - "nodeType": "YulTypedName", - "src": "4611:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4622:7:39", - "nodeType": "YulTypedName", - "src": "4622:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4634:6:39", - "nodeType": "YulTypedName", - "src": "4634:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4642:6:39", - "nodeType": "YulTypedName", - "src": "4642:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4650:6:39", - "nodeType": "YulTypedName", - "src": "4650:6:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "4658:6:39", - "nodeType": "YulTypedName", - "src": "4658:6:39", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "4666:6:39", - "nodeType": "YulTypedName", - "src": "4666:6:39", - "type": "" - } - ], - "src": "4540:909:39" - }, - { - "body": { - "nativeSrc": "5497:48:39", - "nodeType": "YulBlock", - "src": "5497:48:39", - "statements": [ - { - "nativeSrc": "5507:32:39", - "nodeType": "YulAssignment", - "src": "5507:32:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5532:5:39", - "nodeType": "YulIdentifier", - "src": "5532:5:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "5525:6:39", - "nodeType": "YulIdentifier", - "src": "5525:6:39" - }, - "nativeSrc": "5525:13:39", - "nodeType": "YulFunctionCall", - "src": "5525:13:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "5518:6:39", - "nodeType": "YulIdentifier", - "src": "5518:6:39" - }, - "nativeSrc": "5518:21:39", - "nodeType": "YulFunctionCall", - "src": "5518:21:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "5507:7:39", - "nodeType": "YulIdentifier", - "src": "5507:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bool", - "nativeSrc": "5455:90:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5479:5:39", - "nodeType": "YulTypedName", - "src": "5479:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "5489:7:39", - "nodeType": "YulTypedName", - "src": "5489:7:39", - "type": "" - } - ], - "src": "5455:90:39" - }, - { - "body": { - "nativeSrc": "5591:76:39", - "nodeType": "YulBlock", - "src": "5591:76:39", - "statements": [ - { - "body": { - "nativeSrc": "5645:16:39", - "nodeType": "YulBlock", - "src": "5645:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5654:1:39", - "nodeType": "YulLiteral", - "src": "5654:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5657:1:39", - "nodeType": "YulLiteral", - "src": "5657:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5647:6:39", - "nodeType": "YulIdentifier", - "src": "5647:6:39" - }, - "nativeSrc": "5647:12:39", - "nodeType": "YulFunctionCall", - "src": "5647:12:39" - }, - "nativeSrc": "5647:12:39", - "nodeType": "YulExpressionStatement", - "src": "5647:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5614:5:39", - "nodeType": "YulIdentifier", - "src": "5614:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5636:5:39", - "nodeType": "YulIdentifier", - "src": "5636:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "5621:14:39", - "nodeType": "YulIdentifier", - "src": "5621:14:39" - }, - "nativeSrc": "5621:21:39", - "nodeType": "YulFunctionCall", - "src": "5621:21:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "5611:2:39", - "nodeType": "YulIdentifier", - "src": "5611:2:39" - }, - "nativeSrc": "5611:32:39", - "nodeType": "YulFunctionCall", - "src": "5611:32:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "5604:6:39", - "nodeType": "YulIdentifier", - "src": "5604:6:39" - }, - "nativeSrc": "5604:40:39", - "nodeType": "YulFunctionCall", - "src": "5604:40:39" - }, - "nativeSrc": "5601:60:39", - "nodeType": "YulIf", - "src": "5601:60:39" - } - ] - }, - "name": "validator_revert_t_bool", - "nativeSrc": "5551:116:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5584:5:39", - "nodeType": "YulTypedName", - "src": "5584:5:39", - "type": "" - } - ], - "src": "5551:116:39" - }, - { - "body": { - "nativeSrc": "5722:84:39", - "nodeType": "YulBlock", - "src": "5722:84:39", - "statements": [ - { - "nativeSrc": "5732:29:39", - "nodeType": "YulAssignment", - "src": "5732:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "5754:6:39", - "nodeType": "YulIdentifier", - "src": "5754:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "5741:12:39", - "nodeType": "YulIdentifier", - "src": "5741:12:39" - }, - "nativeSrc": "5741:20:39", - "nodeType": "YulFunctionCall", - "src": "5741:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "5732:5:39", - "nodeType": "YulIdentifier", - "src": "5732:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5794:5:39", - "nodeType": "YulIdentifier", - "src": "5794:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bool", - "nativeSrc": "5770:23:39", - "nodeType": "YulIdentifier", - "src": "5770:23:39" - }, - "nativeSrc": "5770:30:39", - "nodeType": "YulFunctionCall", - "src": "5770:30:39" - }, - "nativeSrc": "5770:30:39", - "nodeType": "YulExpressionStatement", - "src": "5770:30:39" - } - ] - }, - "name": "abi_decode_t_bool", - "nativeSrc": "5673:133:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "5700:6:39", - "nodeType": "YulTypedName", - "src": "5700:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "5708:3:39", - "nodeType": "YulTypedName", - "src": "5708:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "5716:5:39", - "nodeType": "YulTypedName", - "src": "5716:5:39", - "type": "" - } - ], - "src": "5673:133:39" - }, - { - "body": { - "nativeSrc": "5892:388:39", - "nodeType": "YulBlock", - "src": "5892:388:39", - "statements": [ - { - "body": { - "nativeSrc": "5938:83:39", - "nodeType": "YulBlock", - "src": "5938:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "5940:77:39", - "nodeType": "YulIdentifier", - "src": "5940:77:39" - }, - "nativeSrc": "5940:79:39", - "nodeType": "YulFunctionCall", - "src": "5940:79:39" - }, - "nativeSrc": "5940:79:39", - "nodeType": "YulExpressionStatement", - "src": "5940:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "5913:7:39", - "nodeType": "YulIdentifier", - "src": "5913:7:39" - }, - { - "name": "headStart", - "nativeSrc": "5922:9:39", - "nodeType": "YulIdentifier", - "src": "5922:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5909:3:39", - "nodeType": "YulIdentifier", - "src": "5909:3:39" - }, - "nativeSrc": "5909:23:39", - "nodeType": "YulFunctionCall", - "src": "5909:23:39" - }, - { - "kind": "number", - "nativeSrc": "5934:2:39", - "nodeType": "YulLiteral", - "src": "5934:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "5905:3:39", - "nodeType": "YulIdentifier", - "src": "5905:3:39" - }, - "nativeSrc": "5905:32:39", - "nodeType": "YulFunctionCall", - "src": "5905:32:39" - }, - "nativeSrc": "5902:119:39", - "nodeType": "YulIf", - "src": "5902:119:39" - }, - { - "nativeSrc": "6031:117:39", - "nodeType": "YulBlock", - "src": "6031:117:39", - "statements": [ - { - "nativeSrc": "6046:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6046:15:39", - "value": { - "kind": "number", - "nativeSrc": "6060:1:39", - "nodeType": "YulLiteral", - "src": "6060:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6050:6:39", - "nodeType": "YulTypedName", - "src": "6050:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6075:63:39", - "nodeType": "YulAssignment", - "src": "6075:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6110:9:39", - "nodeType": "YulIdentifier", - "src": "6110:9:39" - }, - { - "name": "offset", - "nativeSrc": "6121:6:39", - "nodeType": "YulIdentifier", - "src": "6121:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6106:3:39", - "nodeType": "YulIdentifier", - "src": "6106:3:39" - }, - "nativeSrc": "6106:22:39", - "nodeType": "YulFunctionCall", - "src": "6106:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6130:7:39", - "nodeType": "YulIdentifier", - "src": "6130:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6085:20:39", - "nodeType": "YulIdentifier", - "src": "6085:20:39" - }, - "nativeSrc": "6085:53:39", - "nodeType": "YulFunctionCall", - "src": "6085:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6075:6:39", - "nodeType": "YulIdentifier", - "src": "6075:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "6158:115:39", - "nodeType": "YulBlock", - "src": "6158:115:39", - "statements": [ - { - "nativeSrc": "6173:16:39", - "nodeType": "YulVariableDeclaration", - "src": "6173:16:39", - "value": { - "kind": "number", - "nativeSrc": "6187:2:39", - "nodeType": "YulLiteral", - "src": "6187:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6177:6:39", - "nodeType": "YulTypedName", - "src": "6177:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6203:60:39", - "nodeType": "YulAssignment", - "src": "6203:60:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6235:9:39", - "nodeType": "YulIdentifier", - "src": "6235:9:39" - }, - { - "name": "offset", - "nativeSrc": "6246:6:39", - "nodeType": "YulIdentifier", - "src": "6246:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6231:3:39", - "nodeType": "YulIdentifier", - "src": "6231:3:39" - }, - "nativeSrc": "6231:22:39", - "nodeType": "YulFunctionCall", - "src": "6231:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6255:7:39", - "nodeType": "YulIdentifier", - "src": "6255:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bool", - "nativeSrc": "6213:17:39", - "nodeType": "YulIdentifier", - "src": "6213:17:39" - }, - "nativeSrc": "6213:50:39", - "nodeType": "YulFunctionCall", - "src": "6213:50:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "6203:6:39", - "nodeType": "YulIdentifier", - "src": "6203:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bool", - "nativeSrc": "5812:468:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5854:9:39", - "nodeType": "YulTypedName", - "src": "5854:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "5865:7:39", - "nodeType": "YulTypedName", - "src": "5865:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "5877:6:39", - "nodeType": "YulTypedName", - "src": "5877:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "5885:6:39", - "nodeType": "YulTypedName", - "src": "5885:6:39", - "type": "" - } - ], - "src": "5812:468:39" - }, - { - "body": { - "nativeSrc": "6402:647:39", - "nodeType": "YulBlock", - "src": "6402:647:39", - "statements": [ - { - "body": { - "nativeSrc": "6449:83:39", - "nodeType": "YulBlock", - "src": "6449:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "6451:77:39", - "nodeType": "YulIdentifier", - "src": "6451:77:39" - }, - "nativeSrc": "6451:79:39", - "nodeType": "YulFunctionCall", - "src": "6451:79:39" - }, - "nativeSrc": "6451:79:39", - "nodeType": "YulExpressionStatement", - "src": "6451:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6423:7:39", - "nodeType": "YulIdentifier", - "src": "6423:7:39" - }, - { - "name": "headStart", - "nativeSrc": "6432:9:39", - "nodeType": "YulIdentifier", - "src": "6432:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6419:3:39", - "nodeType": "YulIdentifier", - "src": "6419:3:39" - }, - "nativeSrc": "6419:23:39", - "nodeType": "YulFunctionCall", - "src": "6419:23:39" - }, - { - "kind": "number", - "nativeSrc": "6444:3:39", - "nodeType": "YulLiteral", - "src": "6444:3:39", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6415:3:39", - "nodeType": "YulIdentifier", - "src": "6415:3:39" - }, - "nativeSrc": "6415:33:39", - "nodeType": "YulFunctionCall", - "src": "6415:33:39" - }, - "nativeSrc": "6412:120:39", - "nodeType": "YulIf", - "src": "6412:120:39" - }, - { - "nativeSrc": "6542:117:39", - "nodeType": "YulBlock", - "src": "6542:117:39", - "statements": [ - { - "nativeSrc": "6557:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6557:15:39", - "value": { - "kind": "number", - "nativeSrc": "6571:1:39", - "nodeType": "YulLiteral", - "src": "6571:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6561:6:39", - "nodeType": "YulTypedName", - "src": "6561:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6586:63:39", - "nodeType": "YulAssignment", - "src": "6586:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6621:9:39", - "nodeType": "YulIdentifier", - "src": "6621:9:39" - }, - { - "name": "offset", - "nativeSrc": "6632:6:39", - "nodeType": "YulIdentifier", - "src": "6632:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6617:3:39", - "nodeType": "YulIdentifier", - "src": "6617:3:39" - }, - "nativeSrc": "6617:22:39", - "nodeType": "YulFunctionCall", - "src": "6617:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6641:7:39", - "nodeType": "YulIdentifier", - "src": "6641:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "6596:20:39", - "nodeType": "YulIdentifier", - "src": "6596:20:39" - }, - "nativeSrc": "6596:53:39", - "nodeType": "YulFunctionCall", - "src": "6596:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6586:6:39", - "nodeType": "YulIdentifier", - "src": "6586:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "6669:118:39", - "nodeType": "YulBlock", - "src": "6669:118:39", - "statements": [ - { - "nativeSrc": "6684:16:39", - "nodeType": "YulVariableDeclaration", - "src": "6684:16:39", - "value": { - "kind": "number", - "nativeSrc": "6698:2:39", - "nodeType": "YulLiteral", - "src": "6698:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6688:6:39", - "nodeType": "YulTypedName", - "src": "6688:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6714:63:39", - "nodeType": "YulAssignment", - "src": "6714:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6749:9:39", - "nodeType": "YulIdentifier", - "src": "6749:9:39" - }, - { - "name": "offset", - "nativeSrc": "6760:6:39", - "nodeType": "YulIdentifier", - "src": "6760:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6745:3:39", - "nodeType": "YulIdentifier", - "src": "6745:3:39" - }, - "nativeSrc": "6745:22:39", - "nodeType": "YulFunctionCall", - "src": "6745:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6769:7:39", - "nodeType": "YulIdentifier", - "src": "6769:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6724:20:39", - "nodeType": "YulIdentifier", - "src": "6724:20:39" - }, - "nativeSrc": "6724:53:39", - "nodeType": "YulFunctionCall", - "src": "6724:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "6714:6:39", - "nodeType": "YulIdentifier", - "src": "6714:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "6797:118:39", - "nodeType": "YulBlock", - "src": "6797:118:39", - "statements": [ - { - "nativeSrc": "6812:16:39", - "nodeType": "YulVariableDeclaration", - "src": "6812:16:39", - "value": { - "kind": "number", - "nativeSrc": "6826:2:39", - "nodeType": "YulLiteral", - "src": "6826:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6816:6:39", - "nodeType": "YulTypedName", - "src": "6816:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6842:63:39", - "nodeType": "YulAssignment", - "src": "6842:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6877:9:39", - "nodeType": "YulIdentifier", - "src": "6877:9:39" - }, - { - "name": "offset", - "nativeSrc": "6888:6:39", - "nodeType": "YulIdentifier", - "src": "6888:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6873:3:39", - "nodeType": "YulIdentifier", - "src": "6873:3:39" - }, - "nativeSrc": "6873:22:39", - "nodeType": "YulFunctionCall", - "src": "6873:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6897:7:39", - "nodeType": "YulIdentifier", - "src": "6897:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6852:20:39", - "nodeType": "YulIdentifier", - "src": "6852:20:39" - }, - "nativeSrc": "6852:53:39", - "nodeType": "YulFunctionCall", - "src": "6852:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "6842:6:39", - "nodeType": "YulIdentifier", - "src": "6842:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "6925:117:39", - "nodeType": "YulBlock", - "src": "6925:117:39", - "statements": [ - { - "nativeSrc": "6940:16:39", - "nodeType": "YulVariableDeclaration", - "src": "6940:16:39", - "value": { - "kind": "number", - "nativeSrc": "6954:2:39", - "nodeType": "YulLiteral", - "src": "6954:2:39", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6944:6:39", - "nodeType": "YulTypedName", - "src": "6944:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6970:62:39", - "nodeType": "YulAssignment", - "src": "6970:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7004:9:39", - "nodeType": "YulIdentifier", - "src": "7004:9:39" - }, - { - "name": "offset", - "nativeSrc": "7015:6:39", - "nodeType": "YulIdentifier", - "src": "7015:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7000:3:39", - "nodeType": "YulIdentifier", - "src": "7000:3:39" - }, - "nativeSrc": "7000:22:39", - "nodeType": "YulFunctionCall", - "src": "7000:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "7024:7:39", - "nodeType": "YulIdentifier", - "src": "7024:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint64", - "nativeSrc": "6980:19:39", - "nodeType": "YulIdentifier", - "src": "6980:19:39" - }, - "nativeSrc": "6980:52:39", - "nodeType": "YulFunctionCall", - "src": "6980:52:39" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "6970:6:39", - "nodeType": "YulIdentifier", - "src": "6970:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_addresst_addresst_uint64", - "nativeSrc": "6286:763:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6348:9:39", - "nodeType": "YulTypedName", - "src": "6348:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "6359:7:39", - "nodeType": "YulTypedName", - "src": "6359:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "6371:6:39", - "nodeType": "YulTypedName", - "src": "6371:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "6379:6:39", - "nodeType": "YulTypedName", - "src": "6379:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "6387:6:39", - "nodeType": "YulTypedName", - "src": "6387:6:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "6395:6:39", - "nodeType": "YulTypedName", - "src": "6395:6:39", - "type": "" - } - ], - "src": "6286:763:39" - }, - { - "body": { - "nativeSrc": "7138:391:39", - "nodeType": "YulBlock", - "src": "7138:391:39", - "statements": [ - { - "body": { - "nativeSrc": "7184:83:39", - "nodeType": "YulBlock", - "src": "7184:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "7186:77:39", - "nodeType": "YulIdentifier", - "src": "7186:77:39" - }, - "nativeSrc": "7186:79:39", - "nodeType": "YulFunctionCall", - "src": "7186:79:39" - }, - "nativeSrc": "7186:79:39", - "nodeType": "YulExpressionStatement", - "src": "7186:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "7159:7:39", - "nodeType": "YulIdentifier", - "src": "7159:7:39" - }, - { - "name": "headStart", - "nativeSrc": "7168:9:39", - "nodeType": "YulIdentifier", - "src": "7168:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7155:3:39", - "nodeType": "YulIdentifier", - "src": "7155:3:39" - }, - "nativeSrc": "7155:23:39", - "nodeType": "YulFunctionCall", - "src": "7155:23:39" - }, - { - "kind": "number", - "nativeSrc": "7180:2:39", - "nodeType": "YulLiteral", - "src": "7180:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "7151:3:39", - "nodeType": "YulIdentifier", - "src": "7151:3:39" - }, - "nativeSrc": "7151:32:39", - "nodeType": "YulFunctionCall", - "src": "7151:32:39" - }, - "nativeSrc": "7148:119:39", - "nodeType": "YulIf", - "src": "7148:119:39" - }, - { - "nativeSrc": "7277:117:39", - "nodeType": "YulBlock", - "src": "7277:117:39", - "statements": [ - { - "nativeSrc": "7292:15:39", - "nodeType": "YulVariableDeclaration", - "src": "7292:15:39", - "value": { - "kind": "number", - "nativeSrc": "7306:1:39", - "nodeType": "YulLiteral", - "src": "7306:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "7296:6:39", - "nodeType": "YulTypedName", - "src": "7296:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "7321:63:39", - "nodeType": "YulAssignment", - "src": "7321:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7356:9:39", - "nodeType": "YulIdentifier", - "src": "7356:9:39" - }, - { - "name": "offset", - "nativeSrc": "7367:6:39", - "nodeType": "YulIdentifier", - "src": "7367:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7352:3:39", - "nodeType": "YulIdentifier", - "src": "7352:3:39" - }, - "nativeSrc": "7352:22:39", - "nodeType": "YulFunctionCall", - "src": "7352:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "7376:7:39", - "nodeType": "YulIdentifier", - "src": "7376:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "7331:20:39", - "nodeType": "YulIdentifier", - "src": "7331:20:39" - }, - "nativeSrc": "7331:53:39", - "nodeType": "YulFunctionCall", - "src": "7331:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "7321:6:39", - "nodeType": "YulIdentifier", - "src": "7321:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "7404:118:39", - "nodeType": "YulBlock", - "src": "7404:118:39", - "statements": [ - { - "nativeSrc": "7419:16:39", - "nodeType": "YulVariableDeclaration", - "src": "7419:16:39", - "value": { - "kind": "number", - "nativeSrc": "7433:2:39", - "nodeType": "YulLiteral", - "src": "7433:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "7423:6:39", - "nodeType": "YulTypedName", - "src": "7423:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "7449:63:39", - "nodeType": "YulAssignment", - "src": "7449:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7484:9:39", - "nodeType": "YulIdentifier", - "src": "7484:9:39" - }, - { - "name": "offset", - "nativeSrc": "7495:6:39", - "nodeType": "YulIdentifier", - "src": "7495:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7480:3:39", - "nodeType": "YulIdentifier", - "src": "7480:3:39" - }, - "nativeSrc": "7480:22:39", - "nodeType": "YulFunctionCall", - "src": "7480:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "7504:7:39", - "nodeType": "YulIdentifier", - "src": "7504:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "7459:20:39", - "nodeType": "YulIdentifier", - "src": "7459:20:39" - }, - "nativeSrc": "7459:53:39", - "nodeType": "YulFunctionCall", - "src": "7459:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "7449:6:39", - "nodeType": "YulIdentifier", - "src": "7449:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_address", - "nativeSrc": "7055:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7100:9:39", - "nodeType": "YulTypedName", - "src": "7100:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "7111:7:39", - "nodeType": "YulTypedName", - "src": "7111:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "7123:6:39", - "nodeType": "YulTypedName", - "src": "7123:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7131:6:39", - "nodeType": "YulTypedName", - "src": "7131:6:39", - "type": "" - } - ], - "src": "7055:474:39" - }, - { - "body": { - "nativeSrc": "7594:50:39", - "nodeType": "YulBlock", - "src": "7594:50:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7611:3:39", - "nodeType": "YulIdentifier", - "src": "7611:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "7631:5:39", - "nodeType": "YulIdentifier", - "src": "7631:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "7616:14:39", - "nodeType": "YulIdentifier", - "src": "7616:14:39" - }, - "nativeSrc": "7616:21:39", - "nodeType": "YulFunctionCall", - "src": "7616:21:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7604:6:39", - "nodeType": "YulIdentifier", - "src": "7604:6:39" - }, - "nativeSrc": "7604:34:39", - "nodeType": "YulFunctionCall", - "src": "7604:34:39" - }, - "nativeSrc": "7604:34:39", - "nodeType": "YulExpressionStatement", - "src": "7604:34:39" - } - ] - }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "7535:109:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7582:5:39", - "nodeType": "YulTypedName", - "src": "7582:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "7589:3:39", - "nodeType": "YulTypedName", - "src": "7589:3:39", - "type": "" - } - ], - "src": "7535:109:39" - }, - { - "body": { - "nativeSrc": "7742:118:39", - "nodeType": "YulBlock", - "src": "7742:118:39", - "statements": [ - { - "nativeSrc": "7752:26:39", - "nodeType": "YulAssignment", - "src": "7752:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7764:9:39", - "nodeType": "YulIdentifier", - "src": "7764:9:39" - }, - { - "kind": "number", - "nativeSrc": "7775:2:39", - "nodeType": "YulLiteral", - "src": "7775:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7760:3:39", - "nodeType": "YulIdentifier", - "src": "7760:3:39" - }, - "nativeSrc": "7760:18:39", - "nodeType": "YulFunctionCall", - "src": "7760:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7752:4:39", - "nodeType": "YulIdentifier", - "src": "7752:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7826:6:39", - "nodeType": "YulIdentifier", - "src": "7826:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7839:9:39", - "nodeType": "YulIdentifier", - "src": "7839:9:39" - }, - { - "kind": "number", - "nativeSrc": "7850:1:39", - "nodeType": "YulLiteral", - "src": "7850:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7835:3:39", - "nodeType": "YulIdentifier", - "src": "7835:3:39" - }, - "nativeSrc": "7835:17:39", - "nodeType": "YulFunctionCall", - "src": "7835:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "7788:37:39", - "nodeType": "YulIdentifier", - "src": "7788:37:39" - }, - "nativeSrc": "7788:65:39", - "nodeType": "YulFunctionCall", - "src": "7788:65:39" - }, - "nativeSrc": "7788:65:39", - "nodeType": "YulExpressionStatement", - "src": "7788:65:39" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "7650:210:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7714:9:39", - "nodeType": "YulTypedName", - "src": "7714:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7726:6:39", - "nodeType": "YulTypedName", - "src": "7726:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7737:4:39", - "nodeType": "YulTypedName", - "src": "7737:4:39", - "type": "" - } - ], - "src": "7650:210:39" - }, - { - "body": { - "nativeSrc": "7913:32:39", - "nodeType": "YulBlock", - "src": "7913:32:39", - "statements": [ - { - "nativeSrc": "7923:16:39", - "nodeType": "YulAssignment", - "src": "7923:16:39", - "value": { - "name": "value", - "nativeSrc": "7934:5:39", - "nodeType": "YulIdentifier", - "src": "7934:5:39" - }, - "variableNames": [ - { - "name": "aligned", - "nativeSrc": "7923:7:39", - "nodeType": "YulIdentifier", - "src": "7923:7:39" - } - ] - } - ] - }, - "name": "leftAlign_t_bytes32", - "nativeSrc": "7866:79:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7895:5:39", - "nodeType": "YulTypedName", - "src": "7895:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "aligned", - "nativeSrc": "7905:7:39", - "nodeType": "YulTypedName", - "src": "7905:7:39", - "type": "" - } - ], - "src": "7866:79:39" - }, - { - "body": { - "nativeSrc": "8034:74:39", - "nodeType": "YulBlock", - "src": "8034:74:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8051:3:39", - "nodeType": "YulIdentifier", - "src": "8051:3:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "8094:5:39", - "nodeType": "YulIdentifier", - "src": "8094:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "8076:17:39", - "nodeType": "YulIdentifier", - "src": "8076:17:39" - }, - "nativeSrc": "8076:24:39", - "nodeType": "YulFunctionCall", - "src": "8076:24:39" - } - ], - "functionName": { - "name": "leftAlign_t_bytes32", - "nativeSrc": "8056:19:39", - "nodeType": "YulIdentifier", - "src": "8056:19:39" - }, - "nativeSrc": "8056:45:39", - "nodeType": "YulFunctionCall", - "src": "8056:45:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8044:6:39", - "nodeType": "YulIdentifier", - "src": "8044:6:39" - }, - "nativeSrc": "8044:58:39", - "nodeType": "YulFunctionCall", - "src": "8044:58:39" - }, - "nativeSrc": "8044:58:39", - "nodeType": "YulExpressionStatement", - "src": "8044:58:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nativeSrc": "7951:157:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8022:5:39", - "nodeType": "YulTypedName", - "src": "8022:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "8029:3:39", - "nodeType": "YulTypedName", - "src": "8029:3:39", - "type": "" - } - ], - "src": "7951:157:39" - }, - { - "body": { - "nativeSrc": "8258:253:39", - "nodeType": "YulBlock", - "src": "8258:253:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8331:6:39", - "nodeType": "YulIdentifier", - "src": "8331:6:39" - }, - { - "name": "pos", - "nativeSrc": "8340:3:39", - "nodeType": "YulIdentifier", - "src": "8340:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nativeSrc": "8269:61:39", - "nodeType": "YulIdentifier", - "src": "8269:61:39" - }, - "nativeSrc": "8269:75:39", - "nodeType": "YulFunctionCall", - "src": "8269:75:39" - }, - "nativeSrc": "8269:75:39", - "nodeType": "YulExpressionStatement", - "src": "8269:75:39" - }, - { - "nativeSrc": "8353:19:39", - "nodeType": "YulAssignment", - "src": "8353:19:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8364:3:39", - "nodeType": "YulIdentifier", - "src": "8364:3:39" - }, - { - "kind": "number", - "nativeSrc": "8369:2:39", - "nodeType": "YulLiteral", - "src": "8369:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8360:3:39", - "nodeType": "YulIdentifier", - "src": "8360:3:39" - }, - "nativeSrc": "8360:12:39", - "nodeType": "YulFunctionCall", - "src": "8360:12:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "8353:3:39", - "nodeType": "YulIdentifier", - "src": "8353:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "8444:6:39", - "nodeType": "YulIdentifier", - "src": "8444:6:39" - }, - { - "name": "pos", - "nativeSrc": "8453:3:39", - "nodeType": "YulIdentifier", - "src": "8453:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nativeSrc": "8382:61:39", - "nodeType": "YulIdentifier", - "src": "8382:61:39" - }, - "nativeSrc": "8382:75:39", - "nodeType": "YulFunctionCall", - "src": "8382:75:39" - }, - "nativeSrc": "8382:75:39", - "nodeType": "YulExpressionStatement", - "src": "8382:75:39" - }, - { - "nativeSrc": "8466:19:39", - "nodeType": "YulAssignment", - "src": "8466:19:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8477:3:39", - "nodeType": "YulIdentifier", - "src": "8477:3:39" - }, - { - "kind": "number", - "nativeSrc": "8482:2:39", - "nodeType": "YulLiteral", - "src": "8482:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8473:3:39", - "nodeType": "YulIdentifier", - "src": "8473:3:39" - }, - "nativeSrc": "8473:12:39", - "nodeType": "YulFunctionCall", - "src": "8473:12:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "8466:3:39", - "nodeType": "YulIdentifier", - "src": "8466:3:39" - } - ] - }, - { - "nativeSrc": "8495:10:39", - "nodeType": "YulAssignment", - "src": "8495:10:39", - "value": { - "name": "pos", - "nativeSrc": "8502:3:39", - "nodeType": "YulIdentifier", - "src": "8502:3:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "8495:3:39", - "nodeType": "YulIdentifier", - "src": "8495:3:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "8114:397:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "8229:3:39", - "nodeType": "YulTypedName", - "src": "8229:3:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8235:6:39", - "nodeType": "YulTypedName", - "src": "8235:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8243:6:39", - "nodeType": "YulTypedName", - "src": "8243:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "8254:3:39", - "nodeType": "YulTypedName", - "src": "8254:3:39", - "type": "" - } - ], - "src": "8114:397:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146101b15780635ef2c7f0146101cd578063a22cb465146101e9578063cf40882314610205578063e985e9c514610221578063f79fe53814610251576100b4565b80630178b8bf146100b957806302571be3146100e957806306ab59231461011957806314ab90381461014957806316a25cbd146101655780631896f70a14610195575b600080fd5b6100d360048036038101906100ce9190610dda565b610281565b6040516100e09190610e48565b60405180910390f35b61010360048036038101906100fe9190610dda565b6102c0565b6040516101109190610e48565b60405180910390f35b610133600480360381019061012e9190610e8f565b610342565b6040516101409190610ef1565b60405180910390f35b610163600480360381019061015e9190610f4c565b6104c5565b005b61017f600480360381019061017a9190610dda565b610643565b60405161018c9190610f9b565b60405180910390f35b6101af60048036038101906101aa9190610fb6565b610676565b005b6101cb60048036038101906101c69190610fb6565b61080c565b005b6101e760048036038101906101e29190610ff6565b610958565b005b61020360048036038101906101fe91906110a9565b61097a565b005b61021f600480360381019061021a91906110e9565b610a77565b005b61023b60048036038101906102369190611150565b610a92565b604051610248919061119f565b60405180910390f35b61026b60048036038101906102669190610dda565b610b26565b604051610278919061119f565b60405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361033857600091505061033d565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061043f5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61044857600080fd5b6000868660405160200161045d9291906111db565b60405160208183030381529060405280519060200120905061047f8186610b94565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82876040516104b09190610e48565b60405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806105c05750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6105c957600080fd5b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68846040516105f99190610f9b565b60405180910390a28260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806107715750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61077a57600080fd5b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0846040516107aa9190610e48565b60405180910390a28260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806109075750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61091057600080fd5b61091a8484610b94565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2668460405161094a9190610e48565b60405180910390a250505050565b6000610965868686610342565b9050610972818484610bec565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a6b919061119f565b60405180910390a35050565b610a81848461080c565b610a8c848383610bec565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b8060008084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ce1578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051610cd89190610e48565b60405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614610d9a578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051610d919190610f9b565b60405180910390a25b505050565b600080fd5b6000819050919050565b610db781610da4565b8114610dc257600080fd5b50565b600081359050610dd481610dae565b92915050565b600060208284031215610df057610def610d9f565b5b6000610dfe84828501610dc5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e3282610e07565b9050919050565b610e4281610e27565b82525050565b6000602082019050610e5d6000830184610e39565b92915050565b610e6c81610e27565b8114610e7757600080fd5b50565b600081359050610e8981610e63565b92915050565b600080600060608486031215610ea857610ea7610d9f565b5b6000610eb686828701610dc5565b9350506020610ec786828701610dc5565b9250506040610ed886828701610e7a565b9150509250925092565b610eeb81610da4565b82525050565b6000602082019050610f066000830184610ee2565b92915050565b600067ffffffffffffffff82169050919050565b610f2981610f0c565b8114610f3457600080fd5b50565b600081359050610f4681610f20565b92915050565b60008060408385031215610f6357610f62610d9f565b5b6000610f7185828601610dc5565b9250506020610f8285828601610f37565b9150509250929050565b610f9581610f0c565b82525050565b6000602082019050610fb06000830184610f8c565b92915050565b60008060408385031215610fcd57610fcc610d9f565b5b6000610fdb85828601610dc5565b9250506020610fec85828601610e7a565b9150509250929050565b600080600080600060a0868803121561101257611011610d9f565b5b600061102088828901610dc5565b955050602061103188828901610dc5565b945050604061104288828901610e7a565b935050606061105388828901610e7a565b925050608061106488828901610f37565b9150509295509295909350565b60008115159050919050565b61108681611071565b811461109157600080fd5b50565b6000813590506110a38161107d565b92915050565b600080604083850312156110c0576110bf610d9f565b5b60006110ce85828601610e7a565b92505060206110df85828601611094565b9150509250929050565b6000806000806080858703121561110357611102610d9f565b5b600061111187828801610dc5565b945050602061112287828801610e7a565b935050604061113387828801610e7a565b925050606061114487828801610f37565b91505092959194509250565b6000806040838503121561116757611166610d9f565b5b600061117585828601610e7a565b925050602061118685828601610e7a565b9150509250929050565b61119981611071565b82525050565b60006020820190506111b46000830184611190565b92915050565b6000819050919050565b6111d56111d082610da4565b6111ba565b82525050565b60006111e782856111c4565b6020820191506111f782846111c4565b602082019150819050939250505056fea26469706673582212200717631813312b249f96ab75b8093ffda54230dde478068a1618a6d1027d35db64736f6c634300081c0033", - "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 SMOD OR PUSH4 0x1813312B 0x24 SWAP16 SWAP7 0xAB PUSH22 0xB8093FFDA54230DDE478068A1618A6D1027D35DB6473 PUSH16 0x6C634300081C00330000000000000000 ", - "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:39:-;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\":\"0x8e208b44d5dbf22552fe72d79b45c640855b84fbc9ee21f4c3bb4bfe81cbe8db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcf03e1a9386d80ff6b8e31870063424454f69d2626c0efb2c8cf55e69151489\",\"dweb:/ipfs/QmVYgfMSc1ve5JWePqiAGSXEfD76emw3oLsCM1krstmJq5\"]},\"@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. This extension of the {Ownable} contract includes a two-step mechanism to transfer ownership, where the new owner must call {acceptOwnership} in order to replace the old one. This can help prevent common mistakes, such as transfers of ownership to incorrect accounts, or to contracts that are unable to interact with the permission system. 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. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"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\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"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 ERC-165 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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]}},\"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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@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/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"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 ERC-165 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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]}},\"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": "FailedCall", - "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_2897": { - "entryPoint": 542, - "id": 2897, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_revert_3386": { - "entryPoint": 762, - "id": 3386, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setImplementation_2677": { - "entryPoint": 193, - "id": 2677, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@functionDelegateCall_3304": { - "entryPoint": 404, - "id": 3304, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@getAddressSlot_3643": { - "entryPoint": 603, - "id": 3643, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@upgradeToAndCall_2713": { - "entryPoint": 60, - "id": 2713, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@verifyCallResultFromTarget_3344": { - "entryPoint": 613, - "id": 3344, - "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:39", - "nodeType": "YulBlock", - "src": "0:5143:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "934:28:39", - "nodeType": "YulBlock", - "src": "934:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "951:1:39", - "nodeType": "YulLiteral", - "src": "951:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "954:1:39", - "nodeType": "YulLiteral", - "src": "954:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "944:6:39", - "nodeType": "YulIdentifier", - "src": "944:6:39" - }, - "nativeSrc": "944:12:39", - "nodeType": "YulFunctionCall", - "src": "944:12:39" - }, - "nativeSrc": "944:12:39", - "nodeType": "YulExpressionStatement", - "src": "944:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "845:117:39", - "nodeType": "YulFunctionDefinition", - "src": "845:117:39" - }, - { - "body": { - "nativeSrc": "1057:28:39", - "nodeType": "YulBlock", - "src": "1057:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1074:1:39", - "nodeType": "YulLiteral", - "src": "1074:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1077:1:39", - "nodeType": "YulLiteral", - "src": "1077:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1067:6:39", - "nodeType": "YulIdentifier", - "src": "1067:6:39" - }, - "nativeSrc": "1067:12:39", - "nodeType": "YulFunctionCall", - "src": "1067:12:39" - }, - "nativeSrc": "1067:12:39", - "nodeType": "YulExpressionStatement", - "src": "1067:12:39" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "968:117:39", - "nodeType": "YulFunctionDefinition", - "src": "968:117:39" - }, - { - "body": { - "nativeSrc": "1139:54:39", - "nodeType": "YulBlock", - "src": "1139:54:39", - "statements": [ - { - "nativeSrc": "1149:38:39", - "nodeType": "YulAssignment", - "src": "1149:38:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1167:5:39", - "nodeType": "YulIdentifier", - "src": "1167:5:39" - }, - { - "kind": "number", - "nativeSrc": "1174:2:39", - "nodeType": "YulLiteral", - "src": "1174:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1163:3:39", - "nodeType": "YulIdentifier", - "src": "1163:3:39" - }, - "nativeSrc": "1163:14:39", - "nodeType": "YulFunctionCall", - "src": "1163:14:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1183:2:39", - "nodeType": "YulLiteral", - "src": "1183:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "1179:3:39", - "nodeType": "YulIdentifier", - "src": "1179:3:39" - }, - "nativeSrc": "1179:7:39", - "nodeType": "YulFunctionCall", - "src": "1179:7:39" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1159:3:39", - "nodeType": "YulIdentifier", - "src": "1159:3:39" - }, - "nativeSrc": "1159:28:39", - "nodeType": "YulFunctionCall", - "src": "1159:28:39" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "1149:6:39", - "nodeType": "YulIdentifier", - "src": "1149:6:39" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "1091:102:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1122:5:39", - "nodeType": "YulTypedName", - "src": "1122:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "1132:6:39", - "nodeType": "YulTypedName", - "src": "1132:6:39", - "type": "" - } - ], - "src": "1091:102:39" - }, - { - "body": { - "nativeSrc": "1227:152:39", - "nodeType": "YulBlock", - "src": "1227:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1244:1:39", - "nodeType": "YulLiteral", - "src": "1244:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1247:77:39", - "nodeType": "YulLiteral", - "src": "1247:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1237:6:39", - "nodeType": "YulIdentifier", - "src": "1237:6:39" - }, - "nativeSrc": "1237:88:39", - "nodeType": "YulFunctionCall", - "src": "1237:88:39" - }, - "nativeSrc": "1237:88:39", - "nodeType": "YulExpressionStatement", - "src": "1237:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1341:1:39", - "nodeType": "YulLiteral", - "src": "1341:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "1344:4:39", - "nodeType": "YulLiteral", - "src": "1344:4:39", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1334:6:39", - "nodeType": "YulIdentifier", - "src": "1334:6:39" - }, - "nativeSrc": "1334:15:39", - "nodeType": "YulFunctionCall", - "src": "1334:15:39" - }, - "nativeSrc": "1334:15:39", - "nodeType": "YulExpressionStatement", - "src": "1334:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1365:1:39", - "nodeType": "YulLiteral", - "src": "1365:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1368:4:39", - "nodeType": "YulLiteral", - "src": "1368:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1358:6:39", - "nodeType": "YulIdentifier", - "src": "1358:6:39" - }, - "nativeSrc": "1358:15:39", - "nodeType": "YulFunctionCall", - "src": "1358:15:39" - }, - "nativeSrc": "1358:15:39", - "nodeType": "YulExpressionStatement", - "src": "1358:15:39" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "1199:180:39", - "nodeType": "YulFunctionDefinition", - "src": "1199:180:39" - }, - { - "body": { - "nativeSrc": "1428:238:39", - "nodeType": "YulBlock", - "src": "1428:238:39", - "statements": [ - { - "nativeSrc": "1438:58:39", - "nodeType": "YulVariableDeclaration", - "src": "1438:58:39", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1460:6:39", - "nodeType": "YulIdentifier", - "src": "1460:6:39" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "1490:4:39", - "nodeType": "YulIdentifier", - "src": "1490:4:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "1468:21:39", - "nodeType": "YulIdentifier", - "src": "1468:21:39" - }, - "nativeSrc": "1468:27:39", - "nodeType": "YulFunctionCall", - "src": "1468:27:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1456:3:39", - "nodeType": "YulIdentifier", - "src": "1456:3:39" - }, - "nativeSrc": "1456:40:39", - "nodeType": "YulFunctionCall", - "src": "1456:40:39" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "1442:10:39", - "nodeType": "YulTypedName", - "src": "1442:10:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "1607:22:39", - "nodeType": "YulBlock", - "src": "1607:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "1609:16:39", - "nodeType": "YulIdentifier", - "src": "1609:16:39" - }, - "nativeSrc": "1609:18:39", - "nodeType": "YulFunctionCall", - "src": "1609:18:39" - }, - "nativeSrc": "1609:18:39", - "nodeType": "YulExpressionStatement", - "src": "1609:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "1550:10:39", - "nodeType": "YulIdentifier", - "src": "1550:10:39" - }, - { - "kind": "number", - "nativeSrc": "1562:18:39", - "nodeType": "YulLiteral", - "src": "1562:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "1547:2:39", - "nodeType": "YulIdentifier", - "src": "1547:2:39" - }, - "nativeSrc": "1547:34:39", - "nodeType": "YulFunctionCall", - "src": "1547:34:39" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "1586:10:39", - "nodeType": "YulIdentifier", - "src": "1586:10:39" - }, - { - "name": "memPtr", - "nativeSrc": "1598:6:39", - "nodeType": "YulIdentifier", - "src": "1598:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "1583:2:39", - "nodeType": "YulIdentifier", - "src": "1583:2:39" - }, - "nativeSrc": "1583:22:39", - "nodeType": "YulFunctionCall", - "src": "1583:22:39" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "1544:2:39", - "nodeType": "YulIdentifier", - "src": "1544:2:39" - }, - "nativeSrc": "1544:62:39", - "nodeType": "YulFunctionCall", - "src": "1544:62:39" - }, - "nativeSrc": "1541:88:39", - "nodeType": "YulIf", - "src": "1541:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1645:2:39", - "nodeType": "YulLiteral", - "src": "1645:2:39", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "1649:10:39", - "nodeType": "YulIdentifier", - "src": "1649:10:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1638:6:39", - "nodeType": "YulIdentifier", - "src": "1638:6:39" - }, - "nativeSrc": "1638:22:39", - "nodeType": "YulFunctionCall", - "src": "1638:22:39" - }, - "nativeSrc": "1638:22:39", - "nodeType": "YulExpressionStatement", - "src": "1638:22:39" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "1385:281:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "1414:6:39", - "nodeType": "YulTypedName", - "src": "1414:6:39", - "type": "" - }, - { - "name": "size", - "nativeSrc": "1422:4:39", - "nodeType": "YulTypedName", - "src": "1422:4:39", - "type": "" - } - ], - "src": "1385:281:39" - }, - { - "body": { - "nativeSrc": "1713:88:39", - "nodeType": "YulBlock", - "src": "1713:88:39", - "statements": [ - { - "nativeSrc": "1723:30:39", - "nodeType": "YulAssignment", - "src": "1723:30:39", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "1733:18:39", - "nodeType": "YulIdentifier", - "src": "1733:18:39" - }, - "nativeSrc": "1733:20:39", - "nodeType": "YulFunctionCall", - "src": "1733:20:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "1723:6:39", - "nodeType": "YulIdentifier", - "src": "1723:6:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1782:6:39", - "nodeType": "YulIdentifier", - "src": "1782:6:39" - }, - { - "name": "size", - "nativeSrc": "1790:4:39", - "nodeType": "YulIdentifier", - "src": "1790:4:39" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "1762:19:39", - "nodeType": "YulIdentifier", - "src": "1762:19:39" - }, - "nativeSrc": "1762:33:39", - "nodeType": "YulFunctionCall", - "src": "1762:33:39" - }, - "nativeSrc": "1762:33:39", - "nodeType": "YulExpressionStatement", - "src": "1762:33:39" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "1672:129:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "1697:4:39", - "nodeType": "YulTypedName", - "src": "1697:4:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "1706:6:39", - "nodeType": "YulTypedName", - "src": "1706:6:39", - "type": "" - } - ], - "src": "1672:129:39" - }, - { - "body": { - "nativeSrc": "1873:241:39", - "nodeType": "YulBlock", - "src": "1873:241:39", - "statements": [ - { - "body": { - "nativeSrc": "1978:22:39", - "nodeType": "YulBlock", - "src": "1978:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "1980:16:39", - "nodeType": "YulIdentifier", - "src": "1980:16:39" - }, - "nativeSrc": "1980:18:39", - "nodeType": "YulFunctionCall", - "src": "1980:18:39" - }, - "nativeSrc": "1980:18:39", - "nodeType": "YulExpressionStatement", - "src": "1980:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "1950:6:39", - "nodeType": "YulIdentifier", - "src": "1950:6:39" - }, - { - "kind": "number", - "nativeSrc": "1958:18:39", - "nodeType": "YulLiteral", - "src": "1958:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "1947:2:39", - "nodeType": "YulIdentifier", - "src": "1947:2:39" - }, - "nativeSrc": "1947:30:39", - "nodeType": "YulFunctionCall", - "src": "1947:30:39" - }, - "nativeSrc": "1944:56:39", - "nodeType": "YulIf", - "src": "1944:56:39" - }, - { - "nativeSrc": "2010:37:39", - "nodeType": "YulAssignment", - "src": "2010:37:39", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2040:6:39", - "nodeType": "YulIdentifier", - "src": "2040:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2018:21:39", - "nodeType": "YulIdentifier", - "src": "2018:21:39" - }, - "nativeSrc": "2018:29:39", - "nodeType": "YulFunctionCall", - "src": "2018:29:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2010:4:39", - "nodeType": "YulIdentifier", - "src": "2010:4:39" - } - ] - }, - { - "nativeSrc": "2084:23:39", - "nodeType": "YulAssignment", - "src": "2084:23:39", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "2096:4:39", - "nodeType": "YulIdentifier", - "src": "2096:4:39" - }, - { - "kind": "number", - "nativeSrc": "2102:4:39", - "nodeType": "YulLiteral", - "src": "2102:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2092:3:39", - "nodeType": "YulIdentifier", - "src": "2092:3:39" - }, - "nativeSrc": "2092:15:39", - "nodeType": "YulFunctionCall", - "src": "2092:15:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2084:4:39", - "nodeType": "YulIdentifier", - "src": "2084:4:39" - } - ] - } - ] - }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "1807:307:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "1857:6:39", - "nodeType": "YulTypedName", - "src": "1857:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "1868:4:39", - "nodeType": "YulTypedName", - "src": "1868:4:39", - "type": "" - } - ], - "src": "1807:307:39" - }, - { - "body": { - "nativeSrc": "2182:186:39", - "nodeType": "YulBlock", - "src": "2182:186:39", - "statements": [ - { - "nativeSrc": "2193:10:39", - "nodeType": "YulVariableDeclaration", - "src": "2193:10:39", - "value": { - "kind": "number", - "nativeSrc": "2202:1:39", - "nodeType": "YulLiteral", - "src": "2202:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "2197:1:39", - "nodeType": "YulTypedName", - "src": "2197:1:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2262:63:39", - "nodeType": "YulBlock", - "src": "2262:63:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2287:3:39", - "nodeType": "YulIdentifier", - "src": "2287:3:39" - }, - { - "name": "i", - "nativeSrc": "2292:1:39", - "nodeType": "YulIdentifier", - "src": "2292:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2283:3:39", - "nodeType": "YulIdentifier", - "src": "2283:3:39" - }, - "nativeSrc": "2283:11:39", - "nodeType": "YulFunctionCall", - "src": "2283:11:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "2306:3:39", - "nodeType": "YulIdentifier", - "src": "2306:3:39" - }, - { - "name": "i", - "nativeSrc": "2311:1:39", - "nodeType": "YulIdentifier", - "src": "2311:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2302:3:39", - "nodeType": "YulIdentifier", - "src": "2302:3:39" - }, - "nativeSrc": "2302:11:39", - "nodeType": "YulFunctionCall", - "src": "2302:11:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "2296:5:39", - "nodeType": "YulIdentifier", - "src": "2296:5:39" - }, - "nativeSrc": "2296:18:39", - "nodeType": "YulFunctionCall", - "src": "2296:18:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2276:6:39", - "nodeType": "YulIdentifier", - "src": "2276:6:39" - }, - "nativeSrc": "2276:39:39", - "nodeType": "YulFunctionCall", - "src": "2276:39:39" - }, - "nativeSrc": "2276:39:39", - "nodeType": "YulExpressionStatement", - "src": "2276:39:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "2223:1:39", - "nodeType": "YulIdentifier", - "src": "2223:1:39" - }, - { - "name": "length", - "nativeSrc": "2226:6:39", - "nodeType": "YulIdentifier", - "src": "2226:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "2220:2:39", - "nodeType": "YulIdentifier", - "src": "2220:2:39" - }, - "nativeSrc": "2220:13:39", - "nodeType": "YulFunctionCall", - "src": "2220:13:39" - }, - "nativeSrc": "2212:113:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "2234:19:39", - "nodeType": "YulBlock", - "src": "2234:19:39", - "statements": [ - { - "nativeSrc": "2236:15:39", - "nodeType": "YulAssignment", - "src": "2236:15:39", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "2245:1:39", - "nodeType": "YulIdentifier", - "src": "2245:1:39" - }, - { - "kind": "number", - "nativeSrc": "2248:2:39", - "nodeType": "YulLiteral", - "src": "2248:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2241:3:39", - "nodeType": "YulIdentifier", - "src": "2241:3:39" - }, - "nativeSrc": "2241:10:39", - "nodeType": "YulFunctionCall", - "src": "2241:10:39" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "2236:1:39", - "nodeType": "YulIdentifier", - "src": "2236:1:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "2216:3:39", - "nodeType": "YulBlock", - "src": "2216:3:39", - "statements": [] - }, - "src": "2212:113:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2345:3:39", - "nodeType": "YulIdentifier", - "src": "2345:3:39" - }, - { - "name": "length", - "nativeSrc": "2350:6:39", - "nodeType": "YulIdentifier", - "src": "2350:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2341:3:39", - "nodeType": "YulIdentifier", - "src": "2341:3:39" - }, - "nativeSrc": "2341:16:39", - "nodeType": "YulFunctionCall", - "src": "2341:16:39" - }, - { - "kind": "number", - "nativeSrc": "2359:1:39", - "nodeType": "YulLiteral", - "src": "2359:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2334:6:39", - "nodeType": "YulIdentifier", - "src": "2334:6:39" - }, - "nativeSrc": "2334:27:39", - "nodeType": "YulFunctionCall", - "src": "2334:27:39" - }, - "nativeSrc": "2334:27:39", - "nodeType": "YulExpressionStatement", - "src": "2334:27:39" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "2120:248:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "2164:3:39", - "nodeType": "YulTypedName", - "src": "2164:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "2169:3:39", - "nodeType": "YulTypedName", - "src": "2169:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2174:6:39", - "nodeType": "YulTypedName", - "src": "2174:6:39", - "type": "" - } - ], - "src": "2120:248:39" - }, - { - "body": { - "nativeSrc": "2468:338:39", - "nodeType": "YulBlock", - "src": "2468:338:39", - "statements": [ - { - "nativeSrc": "2478:74:39", - "nodeType": "YulAssignment", - "src": "2478:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "2544:6:39", - "nodeType": "YulIdentifier", - "src": "2544:6:39" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "2503:40:39", - "nodeType": "YulIdentifier", - "src": "2503:40:39" - }, - "nativeSrc": "2503:48:39", - "nodeType": "YulFunctionCall", - "src": "2503:48:39" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "2487:15:39", - "nodeType": "YulIdentifier", - "src": "2487:15:39" - }, - "nativeSrc": "2487:65:39", - "nodeType": "YulFunctionCall", - "src": "2487:65:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "2478:5:39", - "nodeType": "YulIdentifier", - "src": "2478:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2568:5:39", - "nodeType": "YulIdentifier", - "src": "2568:5:39" - }, - { - "name": "length", - "nativeSrc": "2575:6:39", - "nodeType": "YulIdentifier", - "src": "2575:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2561:6:39", - "nodeType": "YulIdentifier", - "src": "2561:6:39" - }, - "nativeSrc": "2561:21:39", - "nodeType": "YulFunctionCall", - "src": "2561:21:39" - }, - "nativeSrc": "2561:21:39", - "nodeType": "YulExpressionStatement", - "src": "2561:21:39" - }, - { - "nativeSrc": "2591:27:39", - "nodeType": "YulVariableDeclaration", - "src": "2591:27:39", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2606:5:39", - "nodeType": "YulIdentifier", - "src": "2606:5:39" - }, - { - "kind": "number", - "nativeSrc": "2613:4:39", - "nodeType": "YulLiteral", - "src": "2613:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2602:3:39", - "nodeType": "YulIdentifier", - "src": "2602:3:39" - }, - "nativeSrc": "2602:16:39", - "nodeType": "YulFunctionCall", - "src": "2602:16:39" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "2595:3:39", - "nodeType": "YulTypedName", - "src": "2595:3:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2656:83:39", - "nodeType": "YulBlock", - "src": "2656:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "2658:77:39", - "nodeType": "YulIdentifier", - "src": "2658:77:39" - }, - "nativeSrc": "2658:79:39", - "nodeType": "YulFunctionCall", - "src": "2658:79:39" - }, - "nativeSrc": "2658:79:39", - "nodeType": "YulExpressionStatement", - "src": "2658:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "2637:3:39", - "nodeType": "YulIdentifier", - "src": "2637:3:39" - }, - { - "name": "length", - "nativeSrc": "2642:6:39", - "nodeType": "YulIdentifier", - "src": "2642:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2633:3:39", - "nodeType": "YulIdentifier", - "src": "2633:3:39" - }, - "nativeSrc": "2633:16:39", - "nodeType": "YulFunctionCall", - "src": "2633:16:39" - }, - { - "name": "end", - "nativeSrc": "2651:3:39", - "nodeType": "YulIdentifier", - "src": "2651:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2630:2:39", - "nodeType": "YulIdentifier", - "src": "2630:2:39" - }, - "nativeSrc": "2630:25:39", - "nodeType": "YulFunctionCall", - "src": "2630:25:39" - }, - "nativeSrc": "2627:112:39", - "nodeType": "YulIf", - "src": "2627:112:39" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "2783:3:39", - "nodeType": "YulIdentifier", - "src": "2783:3:39" - }, - { - "name": "dst", - "nativeSrc": "2788:3:39", - "nodeType": "YulIdentifier", - "src": "2788:3:39" - }, - { - "name": "length", - "nativeSrc": "2793:6:39", - "nodeType": "YulIdentifier", - "src": "2793:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "2748:34:39", - "nodeType": "YulIdentifier", - "src": "2748:34:39" - }, - "nativeSrc": "2748:52:39", - "nodeType": "YulFunctionCall", - "src": "2748:52:39" - }, - "nativeSrc": "2748:52:39", - "nodeType": "YulExpressionStatement", - "src": "2748:52:39" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "2374:432:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "2441:3:39", - "nodeType": "YulTypedName", - "src": "2441:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2446:6:39", - "nodeType": "YulTypedName", - "src": "2446:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2454:3:39", - "nodeType": "YulTypedName", - "src": "2454:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "2462:5:39", - "nodeType": "YulTypedName", - "src": "2462:5:39", - "type": "" - } - ], - "src": "2374:432:39" - }, - { - "body": { - "nativeSrc": "2897:281:39", - "nodeType": "YulBlock", - "src": "2897:281:39", - "statements": [ - { - "body": { - "nativeSrc": "2946:83:39", - "nodeType": "YulBlock", - "src": "2946:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "2948:77:39", - "nodeType": "YulIdentifier", - "src": "2948:77:39" - }, - "nativeSrc": "2948:79:39", - "nodeType": "YulFunctionCall", - "src": "2948:79:39" - }, - "nativeSrc": "2948:79:39", - "nodeType": "YulExpressionStatement", - "src": "2948:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2925:6:39", - "nodeType": "YulIdentifier", - "src": "2925:6:39" - }, - { - "kind": "number", - "nativeSrc": "2933:4:39", - "nodeType": "YulLiteral", - "src": "2933:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2921:3:39", - "nodeType": "YulIdentifier", - "src": "2921:3:39" - }, - "nativeSrc": "2921:17:39", - "nodeType": "YulFunctionCall", - "src": "2921:17:39" - }, - { - "name": "end", - "nativeSrc": "2940:3:39", - "nodeType": "YulIdentifier", - "src": "2940:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2917:3:39", - "nodeType": "YulIdentifier", - "src": "2917:3:39" - }, - "nativeSrc": "2917:27:39", - "nodeType": "YulFunctionCall", - "src": "2917:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2910:6:39", - "nodeType": "YulIdentifier", - "src": "2910:6:39" - }, - "nativeSrc": "2910:35:39", - "nodeType": "YulFunctionCall", - "src": "2910:35:39" - }, - "nativeSrc": "2907:122:39", - "nodeType": "YulIf", - "src": "2907:122:39" - }, - { - "nativeSrc": "3038:27:39", - "nodeType": "YulVariableDeclaration", - "src": "3038:27:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3058:6:39", - "nodeType": "YulIdentifier", - "src": "3058:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3052:5:39", - "nodeType": "YulIdentifier", - "src": "3052:5:39" - }, - "nativeSrc": "3052:13:39", - "nodeType": "YulFunctionCall", - "src": "3052:13:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "3042:6:39", - "nodeType": "YulTypedName", - "src": "3042:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3074:98:39", - "nodeType": "YulAssignment", - "src": "3074:98:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3145:6:39", - "nodeType": "YulIdentifier", - "src": "3145:6:39" - }, - { - "kind": "number", - "nativeSrc": "3153:4:39", - "nodeType": "YulLiteral", - "src": "3153:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3141:3:39", - "nodeType": "YulIdentifier", - "src": "3141:3:39" - }, - "nativeSrc": "3141:17:39", - "nodeType": "YulFunctionCall", - "src": "3141:17:39" - }, - { - "name": "length", - "nativeSrc": "3160:6:39", - "nodeType": "YulIdentifier", - "src": "3160:6:39" - }, - { - "name": "end", - "nativeSrc": "3168:3:39", - "nodeType": "YulIdentifier", - "src": "3168:3:39" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "3083:57:39", - "nodeType": "YulIdentifier", - "src": "3083:57:39" - }, - "nativeSrc": "3083:89:39", - "nodeType": "YulFunctionCall", - "src": "3083:89:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3074:5:39", - "nodeType": "YulIdentifier", - "src": "3074:5:39" - } - ] - } - ] - }, - "name": "abi_decode_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "2825:353:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2875:6:39", - "nodeType": "YulTypedName", - "src": "2875:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2883:3:39", - "nodeType": "YulTypedName", - "src": "2883:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "2891:5:39", - "nodeType": "YulTypedName", - "src": "2891:5:39", - "type": "" - } - ], - "src": "2825:353:39" - }, - { - "body": { - "nativeSrc": "3287:575:39", - "nodeType": "YulBlock", - "src": "3287:575:39", - "statements": [ - { - "body": { - "nativeSrc": "3333:83:39", - "nodeType": "YulBlock", - "src": "3333:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3335:77:39", - "nodeType": "YulIdentifier", - "src": "3335:77:39" - }, - "nativeSrc": "3335:79:39", - "nodeType": "YulFunctionCall", - "src": "3335:79:39" - }, - "nativeSrc": "3335:79:39", - "nodeType": "YulExpressionStatement", - "src": "3335:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3308:7:39", - "nodeType": "YulIdentifier", - "src": "3308:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3317:9:39", - "nodeType": "YulIdentifier", - "src": "3317:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3304:3:39", - "nodeType": "YulIdentifier", - "src": "3304:3:39" - }, - "nativeSrc": "3304:23:39", - "nodeType": "YulFunctionCall", - "src": "3304:23:39" - }, - { - "kind": "number", - "nativeSrc": "3329:2:39", - "nodeType": "YulLiteral", - "src": "3329:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3300:3:39", - "nodeType": "YulIdentifier", - "src": "3300:3:39" - }, - "nativeSrc": "3300:32:39", - "nodeType": "YulFunctionCall", - "src": "3300:32:39" - }, - "nativeSrc": "3297:119:39", - "nodeType": "YulIf", - "src": "3297:119:39" - }, - { - "nativeSrc": "3426:128:39", - "nodeType": "YulBlock", - "src": "3426:128:39", - "statements": [ - { - "nativeSrc": "3441:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3441:15:39", - "value": { - "kind": "number", - "nativeSrc": "3455:1:39", - "nodeType": "YulLiteral", - "src": "3455:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3445:6:39", - "nodeType": "YulTypedName", - "src": "3445:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3470:74:39", - "nodeType": "YulAssignment", - "src": "3470:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3516:9:39", - "nodeType": "YulIdentifier", - "src": "3516:9:39" - }, - { - "name": "offset", - "nativeSrc": "3527:6:39", - "nodeType": "YulIdentifier", - "src": "3527:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3512:3:39", - "nodeType": "YulIdentifier", - "src": "3512:3:39" - }, - "nativeSrc": "3512:22:39", - "nodeType": "YulFunctionCall", - "src": "3512:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3536:7:39", - "nodeType": "YulIdentifier", - "src": "3536:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "3480:31:39", - "nodeType": "YulIdentifier", - "src": "3480:31:39" - }, - "nativeSrc": "3480:64:39", - "nodeType": "YulFunctionCall", - "src": "3480:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3470:6:39", - "nodeType": "YulIdentifier", - "src": "3470:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3564:291:39", - "nodeType": "YulBlock", - "src": "3564:291:39", - "statements": [ - { - "nativeSrc": "3579:39:39", - "nodeType": "YulVariableDeclaration", - "src": "3579:39:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3603:9:39", - "nodeType": "YulIdentifier", - "src": "3603:9:39" - }, - { - "kind": "number", - "nativeSrc": "3614:2:39", - "nodeType": "YulLiteral", - "src": "3614:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3599:3:39", - "nodeType": "YulIdentifier", - "src": "3599:3:39" - }, - "nativeSrc": "3599:18:39", - "nodeType": "YulFunctionCall", - "src": "3599:18:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3593:5:39", - "nodeType": "YulIdentifier", - "src": "3593:5:39" - }, - "nativeSrc": "3593:25:39", - "nodeType": "YulFunctionCall", - "src": "3593:25:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3583:6:39", - "nodeType": "YulTypedName", - "src": "3583:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3665:83:39", - "nodeType": "YulBlock", - "src": "3665:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "3667:77:39", - "nodeType": "YulIdentifier", - "src": "3667:77:39" - }, - "nativeSrc": "3667:79:39", - "nodeType": "YulFunctionCall", - "src": "3667:79:39" - }, - "nativeSrc": "3667:79:39", - "nodeType": "YulExpressionStatement", - "src": "3667:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3637:6:39", - "nodeType": "YulIdentifier", - "src": "3637:6:39" - }, - { - "kind": "number", - "nativeSrc": "3645:18:39", - "nodeType": "YulLiteral", - "src": "3645:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3634:2:39", - "nodeType": "YulIdentifier", - "src": "3634:2:39" - }, - "nativeSrc": "3634:30:39", - "nodeType": "YulFunctionCall", - "src": "3634:30:39" - }, - "nativeSrc": "3631:117:39", - "nodeType": "YulIf", - "src": "3631:117:39" - }, - { - "nativeSrc": "3762:83:39", - "nodeType": "YulAssignment", - "src": "3762:83:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3817:9:39", - "nodeType": "YulIdentifier", - "src": "3817:9:39" - }, - { - "name": "offset", - "nativeSrc": "3828:6:39", - "nodeType": "YulIdentifier", - "src": "3828:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3813:3:39", - "nodeType": "YulIdentifier", - "src": "3813:3:39" - }, - "nativeSrc": "3813:22:39", - "nodeType": "YulFunctionCall", - "src": "3813:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3837:7:39", - "nodeType": "YulIdentifier", - "src": "3837:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "3772:40:39", - "nodeType": "YulIdentifier", - "src": "3772:40:39" - }, - "nativeSrc": "3772:73:39", - "nodeType": "YulFunctionCall", - "src": "3772:73:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3762:6:39", - "nodeType": "YulIdentifier", - "src": "3762:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory", - "nativeSrc": "3184:678:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3249:9:39", - "nodeType": "YulTypedName", - "src": "3249:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3260:7:39", - "nodeType": "YulTypedName", - "src": "3260:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3272:6:39", - "nodeType": "YulTypedName", - "src": "3272:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3280:6:39", - "nodeType": "YulTypedName", - "src": "3280:6:39", - "type": "" - } - ], - "src": "3184:678:39" - }, - { - "body": { - "nativeSrc": "3933:53:39", - "nodeType": "YulBlock", - "src": "3933:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3950:3:39", - "nodeType": "YulIdentifier", - "src": "3950:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3973:5:39", - "nodeType": "YulIdentifier", - "src": "3973:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "3955:17:39", - "nodeType": "YulIdentifier", - "src": "3955:17:39" - }, - "nativeSrc": "3955:24:39", - "nodeType": "YulFunctionCall", - "src": "3955:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3943:6:39", - "nodeType": "YulIdentifier", - "src": "3943:6:39" - }, - "nativeSrc": "3943:37:39", - "nodeType": "YulFunctionCall", - "src": "3943:37:39" - }, - "nativeSrc": "3943:37:39", - "nodeType": "YulExpressionStatement", - "src": "3943:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "3868:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3921:5:39", - "nodeType": "YulTypedName", - "src": "3921:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "3928:3:39", - "nodeType": "YulTypedName", - "src": "3928:3:39", - "type": "" - } - ], - "src": "3868:118:39" - }, - { - "body": { - "nativeSrc": "4090:124:39", - "nodeType": "YulBlock", - "src": "4090:124:39", - "statements": [ - { - "nativeSrc": "4100:26:39", - "nodeType": "YulAssignment", - "src": "4100:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4112:9:39", - "nodeType": "YulIdentifier", - "src": "4112:9:39" - }, - { - "kind": "number", - "nativeSrc": "4123:2:39", - "nodeType": "YulLiteral", - "src": "4123:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4108:3:39", - "nodeType": "YulIdentifier", - "src": "4108:3:39" - }, - "nativeSrc": "4108:18:39", - "nodeType": "YulFunctionCall", - "src": "4108:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4100:4:39", - "nodeType": "YulIdentifier", - "src": "4100:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4180:6:39", - "nodeType": "YulIdentifier", - "src": "4180:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4193:9:39", - "nodeType": "YulIdentifier", - "src": "4193:9:39" - }, - { - "kind": "number", - "nativeSrc": "4204:1:39", - "nodeType": "YulLiteral", - "src": "4204:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4189:3:39", - "nodeType": "YulIdentifier", - "src": "4189:3:39" - }, - "nativeSrc": "4189:17:39", - "nodeType": "YulFunctionCall", - "src": "4189:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4136:43:39", - "nodeType": "YulIdentifier", - "src": "4136:43:39" - }, - "nativeSrc": "4136:71:39", - "nodeType": "YulFunctionCall", - "src": "4136:71:39" - }, - "nativeSrc": "4136:71:39", - "nodeType": "YulExpressionStatement", - "src": "4136:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "3992:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4062:9:39", - "nodeType": "YulTypedName", - "src": "4062:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4074:6:39", - "nodeType": "YulTypedName", - "src": "4074:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4085:4:39", - "nodeType": "YulTypedName", - "src": "4085:4:39", - "type": "" - } - ], - "src": "3992:222:39" - }, - { - "body": { - "nativeSrc": "4278:40:39", - "nodeType": "YulBlock", - "src": "4278:40:39", - "statements": [ - { - "nativeSrc": "4289:22:39", - "nodeType": "YulAssignment", - "src": "4289:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4305:5:39", - "nodeType": "YulIdentifier", - "src": "4305:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4299:5:39", - "nodeType": "YulIdentifier", - "src": "4299:5:39" - }, - "nativeSrc": "4299:12:39", - "nodeType": "YulFunctionCall", - "src": "4299:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "4289:6:39", - "nodeType": "YulIdentifier", - "src": "4289:6:39" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "4220:98:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4261:5:39", - "nodeType": "YulTypedName", - "src": "4261:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "4271:6:39", - "nodeType": "YulTypedName", - "src": "4271:6:39", - "type": "" - } - ], - "src": "4220:98:39" - }, - { - "body": { - "nativeSrc": "4437:34:39", - "nodeType": "YulBlock", - "src": "4437:34:39", - "statements": [ - { - "nativeSrc": "4447:18:39", - "nodeType": "YulAssignment", - "src": "4447:18:39", - "value": { - "name": "pos", - "nativeSrc": "4462:3:39", - "nodeType": "YulIdentifier", - "src": "4462:3:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "4447:11:39", - "nodeType": "YulIdentifier", - "src": "4447:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "4324:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "4409:3:39", - "nodeType": "YulTypedName", - "src": "4409:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "4414:6:39", - "nodeType": "YulTypedName", - "src": "4414:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "4425:11:39", - "nodeType": "YulTypedName", - "src": "4425:11:39", - "type": "" - } - ], - "src": "4324:147:39" - }, - { - "body": { - "nativeSrc": "4585:278:39", - "nodeType": "YulBlock", - "src": "4585:278:39", - "statements": [ - { - "nativeSrc": "4595:52:39", - "nodeType": "YulVariableDeclaration", - "src": "4595:52:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4641:5:39", - "nodeType": "YulIdentifier", - "src": "4641:5:39" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "4609:31:39", - "nodeType": "YulIdentifier", - "src": "4609:31:39" - }, - "nativeSrc": "4609:38:39", - "nodeType": "YulFunctionCall", - "src": "4609:38:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "4599:6:39", - "nodeType": "YulTypedName", - "src": "4599:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4656:95:39", - "nodeType": "YulAssignment", - "src": "4656:95:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4739:3:39", - "nodeType": "YulIdentifier", - "src": "4739:3:39" - }, - { - "name": "length", - "nativeSrc": "4744:6:39", - "nodeType": "YulIdentifier", - "src": "4744:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "4663:75:39", - "nodeType": "YulIdentifier", - "src": "4663:75:39" - }, - "nativeSrc": "4663:88:39", - "nodeType": "YulFunctionCall", - "src": "4663:88:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "4656:3:39", - "nodeType": "YulIdentifier", - "src": "4656:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4799:5:39", - "nodeType": "YulIdentifier", - "src": "4799:5:39" - }, - { - "kind": "number", - "nativeSrc": "4806:4:39", - "nodeType": "YulLiteral", - "src": "4806:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4795:3:39", - "nodeType": "YulIdentifier", - "src": "4795:3:39" - }, - "nativeSrc": "4795:16:39", - "nodeType": "YulFunctionCall", - "src": "4795:16:39" - }, - { - "name": "pos", - "nativeSrc": "4813:3:39", - "nodeType": "YulIdentifier", - "src": "4813:3:39" - }, - { - "name": "length", - "nativeSrc": "4818:6:39", - "nodeType": "YulIdentifier", - "src": "4818:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "4760:34:39", - "nodeType": "YulIdentifier", - "src": "4760:34:39" - }, - "nativeSrc": "4760:65:39", - "nodeType": "YulFunctionCall", - "src": "4760:65:39" - }, - "nativeSrc": "4760:65:39", - "nodeType": "YulExpressionStatement", - "src": "4760:65:39" - }, - { - "nativeSrc": "4834:23:39", - "nodeType": "YulAssignment", - "src": "4834:23:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4845:3:39", - "nodeType": "YulIdentifier", - "src": "4845:3:39" - }, - { - "name": "length", - "nativeSrc": "4850:6:39", - "nodeType": "YulIdentifier", - "src": "4850:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4841:3:39", - "nodeType": "YulIdentifier", - "src": "4841:3:39" - }, - "nativeSrc": "4841:16:39", - "nodeType": "YulFunctionCall", - "src": "4841:16:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "4834:3:39", - "nodeType": "YulIdentifier", - "src": "4834:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "4477:386:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4566:5:39", - "nodeType": "YulTypedName", - "src": "4566:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4573:3:39", - "nodeType": "YulTypedName", - "src": "4573:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "4581:3:39", - "nodeType": "YulTypedName", - "src": "4581:3:39", - "type": "" - } - ], - "src": "4477:386:39" - }, - { - "body": { - "nativeSrc": "5003:137:39", - "nodeType": "YulBlock", - "src": "5003:137:39", - "statements": [ - { - "nativeSrc": "5014:100:39", - "nodeType": "YulAssignment", - "src": "5014:100:39", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5101:6:39", - "nodeType": "YulIdentifier", - "src": "5101:6:39" - }, - { - "name": "pos", - "nativeSrc": "5110:3:39", - "nodeType": "YulIdentifier", - "src": "5110:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5021:79:39", - "nodeType": "YulIdentifier", - "src": "5021:79:39" - }, - "nativeSrc": "5021:93:39", - "nodeType": "YulFunctionCall", - "src": "5021:93:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5014:3:39", - "nodeType": "YulIdentifier", - "src": "5014:3:39" - } - ] - }, - { - "nativeSrc": "5124:10:39", - "nodeType": "YulAssignment", - "src": "5124:10:39", - "value": { - "name": "pos", - "nativeSrc": "5131:3:39", - "nodeType": "YulIdentifier", - "src": "5131:3:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5124:3:39", - "nodeType": "YulIdentifier", - "src": "5124:3:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "4869:271:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "4982:3:39", - "nodeType": "YulTypedName", - "src": "4982:3:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4988:6:39", - "nodeType": "YulTypedName", - "src": "4988:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "4999:3:39", - "nodeType": "YulTypedName", - "src": "4999:3:39", - "type": "" - } - ], - "src": "4869:271:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60806040526040516106e53803806106e583398181016040528101906100259190610512565b610035828261003c60201b60201c565b50506105f6565b61004b826100c160201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156100ae576100a8828261019460201b60201c565b506100bd565b6100bc61021e60201b60201c565b5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361011d57806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610114919061057d565b60405180910390fd5b806101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61025b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516101be91906105df565b600060405180830381855af49150503d80600081146101f9576040519150601f19603f3d011682016040523d82523d6000602084013e6101fe565b606091505b509150915061021485838361026560201b60201c565b9250505092915050565b6000341115610259576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000819050919050565b6060826102805761027b826102fa60201b60201c565b6102f2565b600082511480156102a8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b156102ea57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016102e1919061057d565b60405180910390fd5b8190506102f3565b5b9392505050565b60008151111561030d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061037e82610353565b9050919050565b61038e81610373565b811461039957600080fd5b50565b6000815190506103ab81610385565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610404826103bb565b810181811067ffffffffffffffff82111715610423576104226103cc565b5b80604052505050565b600061043661033f565b905061044282826103fb565b919050565b600067ffffffffffffffff821115610462576104616103cc565b5b61046b826103bb565b9050602081019050919050565b60005b8381101561049657808201518184015260208101905061047b565b60008484015250505050565b60006104b56104b084610447565b61042c565b9050828152602081018484840111156104d1576104d06103b6565b5b6104dc848285610478565b509392505050565b600082601f8301126104f9576104f86103b1565b5b81516105098482602086016104a2565b91505092915050565b6000806040838503121561052957610528610349565b5b60006105378582860161039c565b925050602083015167ffffffffffffffff8111156105585761055761034e565b5b610564858286016104e4565b9150509250929050565b61057781610373565b82525050565b6000602082019050610592600083018461056e565b92915050565b600081519050919050565b600081905092915050565b60006105b982610598565b6105c381856105a3565b93506105d3818560208601610478565b80840191505092915050565b60006105eb82846105ae565b915081905092915050565b60e1806106046000396000f3fe6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220b4170c194e9d988c0e9644ddcd851116489bae39bfda2a51cd5b4761efc5b54564736f6c634300081c0033", - "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 0xD6BDA27500000000000000000000000000000000000000000000000000000000 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 0xB4 OR 0xC NOT 0x4E SWAP14 SWAP9 DUP13 0xE SWAP7 PREVRANDAO 0xDD 0xCD DUP6 GT AND BASEFEE SWAP12 0xAE CODECOPY 0xBF 0xDA 0x2A MLOAD 0xCD JUMPDEST SELFBALANCE PUSH2 0xEFC5 0xB5 GASLIMIT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "600:1117:13:-:0;;;1081:133;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1155:52;1185:14;1201:5;1155:29;;;:52;;:::i;:::-;1081:133;;600:1117;;2264:344:14;2355:37;2374:17;2355:18;;;:37;;:::i;:::-;2425:17;2407:36;;;;;;;;;;;;2472:1;2458:4;:11;:15;2454:148;;;2489:53;2518:17;2537:4;2489:28;;;:53;;:::i;:::-;;2454:148;;;2573:18;:16;;;:18;;:::i;:::-;2454:148;2264:344;;:::o;1671:281::-;1781:1;1748:17;:29;;;:34;1744:119;;1834:17;1805:47;;;;;;;;;;;:::i;:::-;;;;;;;;1744:119;1928:17;1872:47;811:66;1899:19;;1872:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;1671:281;:::o;3900:253:19:-;3983:12;4008;4022:23;4049:6;:19;;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;;;:55;;:::i;:::-;4084:62;;;;3900:253;;;;:::o;6113:122:14:-;6175:1;6163:9;:13;6159:70;;;6199:19;;;;;;;;;;;;;;6159:70;6113:122::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::o;4421:582:19:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;;;:19;;:::i;:::-;4589:408;;;4862:1;4841:10;:17;:22;:49;;;;;4889:1;4867:6;:18;;;:23;4841:49;4837:119;;;4934:6;4917:24;;;;;;;;;;;:::i;:::-;;;;;;;;4837:119;4976:10;4969:17;;;;4589:408;4421:582;;;;;;:::o;5543:487::-;5694:1;5674:10;:17;:21;5670:354;;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;;;;;;;;;;;;;7:75:39;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;600:1117:13:-;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_2933": { - "entryPoint": null, - "id": 2933, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_delegate_2909": { - "entryPoint": 39, - "id": 2909, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_fallback_2925": { - "entryPoint": 12, - "id": 2925, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_implementation_2603": { - "entryPoint": 26, - "id": 2603, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@getAddressSlot_3643": { - "entryPoint": 161, - "id": 3643, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getImplementation_2650": { - "entryPoint": 76, - "id": 2650, - "parameterSlots": 0, - "returnSlots": 1 - } - }, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220b4170c194e9d988c0e9644ddcd851116489bae39bfda2a51cd5b4761efc5b54564736f6c634300081c0033", - "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 0xB4 OR 0xC NOT 0x4E SWAP14 SWAP9 DUP13 0xE SWAP7 PREVRANDAO 0xDD 0xCD DUP6 GT AND BASEFEE SWAP12 0xAE CODECOPY 0xBF 0xDA 0x2A MLOAD 0xCD JUMPDEST SELFBALANCE PUSH2 0xEFC5 0xB5 GASLIMIT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "600:1117:13:-:0;;;2649:11:15;:9;:11::i;:::-;600:1117:13;2323:83:15;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;1583:132:13:-;1650:7;1676:32;:30;:32::i;:::-;1669:39;;1583: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;1441:138:14;1493:7;1519:47;811:66;1546:19;;1519:26;:47::i;:::-;:53;;;;;;;;;;;;1512:60;;1441:138;:::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::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\":\"FailedCall\",\"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[ERC-1967], 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.\"}],\"FailedCall()\":[{\"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/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@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\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"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" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122072012c67f02e4b595b28b6db1568ddc9806e945d2449c170c3d7ced5c3e8762464736f6c634300081c0033", - "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 PUSH19 0x12C67F02E4B595B28B6DB1568DDC9806E945D 0x24 BLOBHASH 0xC1 PUSH17 0xC3D7CED5C3E8762464736F6C634300081C STOP CALLER ", - "sourceMap": "496:5741:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122072012c67f02e4b595b28b6db1568ddc9806e945d2449c170c3d7ced5c3e8762464736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH19 0x12C67F02E4B595B28B6DB1568DDC9806E945D 0x24 BLOBHASH 0xC1 PUSH17 0xC3D7CED5C3E8762464736F6C634300081C STOP CALLER ", - "sourceMap": "496:5741: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\"}],\"devdoc\":{\"details\":\"This library provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] 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.\"}]},\"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/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"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 - }, - "@_2967": { - "entryPoint": null, - "id": 2967, - "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:39", - "nodeType": "YulBlock", - "src": "0:1551:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "922:274:39", - "nodeType": "YulBlock", - "src": "922:274:39", - "statements": [ - { - "body": { - "nativeSrc": "968:83:39", - "nodeType": "YulBlock", - "src": "968:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "970:77:39", - "nodeType": "YulIdentifier", - "src": "970:77:39" - }, - "nativeSrc": "970:79:39", - "nodeType": "YulFunctionCall", - "src": "970:79:39" - }, - "nativeSrc": "970:79:39", - "nodeType": "YulExpressionStatement", - "src": "970:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "943:7:39", - "nodeType": "YulIdentifier", - "src": "943:7:39" - }, - { - "name": "headStart", - "nativeSrc": "952:9:39", - "nodeType": "YulIdentifier", - "src": "952:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "939:3:39", - "nodeType": "YulIdentifier", - "src": "939:3:39" - }, - "nativeSrc": "939:23:39", - "nodeType": "YulFunctionCall", - "src": "939:23:39" - }, - { - "kind": "number", - "nativeSrc": "964:2:39", - "nodeType": "YulLiteral", - "src": "964:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "935:3:39", - "nodeType": "YulIdentifier", - "src": "935:3:39" - }, - "nativeSrc": "935:32:39", - "nodeType": "YulFunctionCall", - "src": "935:32:39" - }, - "nativeSrc": "932:119:39", - "nodeType": "YulIf", - "src": "932:119:39" - }, - { - "nativeSrc": "1061:128:39", - "nodeType": "YulBlock", - "src": "1061:128:39", - "statements": [ - { - "nativeSrc": "1076:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1076:15:39", - "value": { - "kind": "number", - "nativeSrc": "1090:1:39", - "nodeType": "YulLiteral", - "src": "1090:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1080:6:39", - "nodeType": "YulTypedName", - "src": "1080:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1105:74:39", - "nodeType": "YulAssignment", - "src": "1105:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1151:9:39", - "nodeType": "YulIdentifier", - "src": "1151:9:39" - }, - { - "name": "offset", - "nativeSrc": "1162:6:39", - "nodeType": "YulIdentifier", - "src": "1162:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1147:3:39", - "nodeType": "YulIdentifier", - "src": "1147:3:39" - }, - "nativeSrc": "1147:22:39", - "nodeType": "YulFunctionCall", - "src": "1147:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1171:7:39", - "nodeType": "YulIdentifier", - "src": "1171:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1115:31:39", - "nodeType": "YulIdentifier", - "src": "1115:31:39" - }, - "nativeSrc": "1115:64:39", - "nodeType": "YulFunctionCall", - "src": "1115:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1105:6:39", - "nodeType": "YulIdentifier", - "src": "1105:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "845:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "892:9:39", - "nodeType": "YulTypedName", - "src": "892:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "903:7:39", - "nodeType": "YulTypedName", - "src": "903:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "915:6:39", - "nodeType": "YulTypedName", - "src": "915:6:39", - "type": "" - } - ], - "src": "845:351:39" - }, - { - "body": { - "nativeSrc": "1267:53:39", - "nodeType": "YulBlock", - "src": "1267:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1284:3:39", - "nodeType": "YulIdentifier", - "src": "1284:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1307:5:39", - "nodeType": "YulIdentifier", - "src": "1307:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1289:17:39", - "nodeType": "YulIdentifier", - "src": "1289:17:39" - }, - "nativeSrc": "1289:24:39", - "nodeType": "YulFunctionCall", - "src": "1289:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1277:6:39", - "nodeType": "YulIdentifier", - "src": "1277:6:39" - }, - "nativeSrc": "1277:37:39", - "nodeType": "YulFunctionCall", - "src": "1277:37:39" - }, - "nativeSrc": "1277:37:39", - "nodeType": "YulExpressionStatement", - "src": "1277:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1202:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1255:5:39", - "nodeType": "YulTypedName", - "src": "1255:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1262:3:39", - "nodeType": "YulTypedName", - "src": "1262:3:39", - "type": "" - } - ], - "src": "1202:118:39" - }, - { - "body": { - "nativeSrc": "1424:124:39", - "nodeType": "YulBlock", - "src": "1424:124:39", - "statements": [ - { - "nativeSrc": "1434:26:39", - "nodeType": "YulAssignment", - "src": "1434:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1446:9:39", - "nodeType": "YulIdentifier", - "src": "1446:9:39" - }, - { - "kind": "number", - "nativeSrc": "1457:2:39", - "nodeType": "YulLiteral", - "src": "1457:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1442:3:39", - "nodeType": "YulIdentifier", - "src": "1442:3:39" - }, - "nativeSrc": "1442:18:39", - "nodeType": "YulFunctionCall", - "src": "1442:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1434:4:39", - "nodeType": "YulIdentifier", - "src": "1434:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1514:6:39", - "nodeType": "YulIdentifier", - "src": "1514:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1527:9:39", - "nodeType": "YulIdentifier", - "src": "1527:9:39" - }, - { - "kind": "number", - "nativeSrc": "1538:1:39", - "nodeType": "YulLiteral", - "src": "1538:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1523:3:39", - "nodeType": "YulIdentifier", - "src": "1523:3:39" - }, - "nativeSrc": "1523:17:39", - "nodeType": "YulFunctionCall", - "src": "1523:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1470:43:39", - "nodeType": "YulIdentifier", - "src": "1470:43:39" - }, - "nativeSrc": "1470:71:39", - "nodeType": "YulFunctionCall", - "src": "1470:71:39" - }, - "nativeSrc": "1470:71:39", - "nodeType": "YulExpressionStatement", - "src": "1470:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "1326:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1396:9:39", - "nodeType": "YulTypedName", - "src": "1396:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1408:6:39", - "nodeType": "YulTypedName", - "src": "1408:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1419:4:39", - "nodeType": "YulTypedName", - "src": "1419:4:39", - "type": "" - } - ], - "src": "1326:222:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "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 0x27 0xB5 PC 0xE0 0xEF JUMPDEST DUP7 0x21 BLOCKHASH PUSH15 0x87E0A379C68E322FC4690410766900 SWAP2 0xB2 PUSH25 0x3BCA57C964736F6C634300081C003300000000000000000000 ", - "sourceMap": "502:1462:17:-:0;;;1329:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1371: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;1329:58:17;502:1462;;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:39:-;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:1462:17:-;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@UPGRADE_INTERFACE_VERSION_2957": { - "entryPoint": 441, - "id": 2957, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_checkOwner_1656": { - "entryPoint": 632, - "id": 1656, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_msgSender_3399": { - "entryPoint": 963, - "id": 3399, - "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_2991": { - "entryPoint": 318, - "id": 2991, - "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_$3014": { - "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_$3014t_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_$3014": { - "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_$3014": { - "entryPoint": 1101, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:7495:39", - "nodeType": "YulBlock", - "src": "0:7495:39", - "statements": [ - { - "body": { - "nativeSrc": "52:81:39", - "nodeType": "YulBlock", - "src": "52:81:39", - "statements": [ - { - "nativeSrc": "62:65:39", - "nodeType": "YulAssignment", - "src": "62:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "77:5:39", - "nodeType": "YulIdentifier", - "src": "77:5:39" - }, - { - "kind": "number", - "nativeSrc": "84:42:39", - "nodeType": "YulLiteral", - "src": "84:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "73:3:39", - "nodeType": "YulIdentifier", - "src": "73:3:39" - }, - "nativeSrc": "73:54:39", - "nodeType": "YulFunctionCall", - "src": "73:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "62:7:39", - "nodeType": "YulIdentifier", - "src": "62:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "7:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "34:5:39", - "nodeType": "YulTypedName", - "src": "34:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "44:7:39", - "nodeType": "YulTypedName", - "src": "44:7:39", - "type": "" - } - ], - "src": "7:126:39" - }, - { - "body": { - "nativeSrc": "184:51:39", - "nodeType": "YulBlock", - "src": "184:51:39", - "statements": [ - { - "nativeSrc": "194:35:39", - "nodeType": "YulAssignment", - "src": "194:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "223:5:39", - "nodeType": "YulIdentifier", - "src": "223:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "205:17:39", - "nodeType": "YulIdentifier", - "src": "205:17:39" - }, - "nativeSrc": "205:24:39", - "nodeType": "YulFunctionCall", - "src": "205:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "194:7:39", - "nodeType": "YulIdentifier", - "src": "194:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "139:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "166:5:39", - "nodeType": "YulTypedName", - "src": "166:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "176:7:39", - "nodeType": "YulTypedName", - "src": "176:7:39", - "type": "" - } - ], - "src": "139:96:39" - }, - { - "body": { - "nativeSrc": "306:53:39", - "nodeType": "YulBlock", - "src": "306:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "323:3:39", - "nodeType": "YulIdentifier", - "src": "323:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "346:5:39", - "nodeType": "YulIdentifier", - "src": "346:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "328:17:39", - "nodeType": "YulIdentifier", - "src": "328:17:39" - }, - "nativeSrc": "328:24:39", - "nodeType": "YulFunctionCall", - "src": "328:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "316:6:39", - "nodeType": "YulIdentifier", - "src": "316:6:39" - }, - "nativeSrc": "316:37:39", - "nodeType": "YulFunctionCall", - "src": "316:37:39" - }, - "nativeSrc": "316:37:39", - "nodeType": "YulExpressionStatement", - "src": "316:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "241:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "294:5:39", - "nodeType": "YulTypedName", - "src": "294:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "301:3:39", - "nodeType": "YulTypedName", - "src": "301:3:39", - "type": "" - } - ], - "src": "241:118:39" - }, - { - "body": { - "nativeSrc": "463:124:39", - "nodeType": "YulBlock", - "src": "463:124:39", - "statements": [ - { - "nativeSrc": "473:26:39", - "nodeType": "YulAssignment", - "src": "473:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "485:9:39", - "nodeType": "YulIdentifier", - "src": "485:9:39" - }, - { - "kind": "number", - "nativeSrc": "496:2:39", - "nodeType": "YulLiteral", - "src": "496:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "481:3:39", - "nodeType": "YulIdentifier", - "src": "481:3:39" - }, - "nativeSrc": "481:18:39", - "nodeType": "YulFunctionCall", - "src": "481:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "473:4:39", - "nodeType": "YulIdentifier", - "src": "473:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "553:6:39", - "nodeType": "YulIdentifier", - "src": "553:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "566:9:39", - "nodeType": "YulIdentifier", - "src": "566:9:39" - }, - { - "kind": "number", - "nativeSrc": "577:1:39", - "nodeType": "YulLiteral", - "src": "577:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "562:3:39", - "nodeType": "YulIdentifier", - "src": "562:3:39" - }, - "nativeSrc": "562:17:39", - "nodeType": "YulFunctionCall", - "src": "562:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "509:43:39", - "nodeType": "YulIdentifier", - "src": "509:43:39" - }, - "nativeSrc": "509:71:39", - "nodeType": "YulFunctionCall", - "src": "509:71:39" - }, - "nativeSrc": "509:71:39", - "nodeType": "YulExpressionStatement", - "src": "509:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "365:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "435:9:39", - "nodeType": "YulTypedName", - "src": "435:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "447:6:39", - "nodeType": "YulTypedName", - "src": "447:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "458:4:39", - "nodeType": "YulTypedName", - "src": "458:4:39", - "type": "" - } - ], - "src": "365:222:39" - }, - { - "body": { - "nativeSrc": "633:35:39", - "nodeType": "YulBlock", - "src": "633:35:39", - "statements": [ - { - "nativeSrc": "643:19:39", - "nodeType": "YulAssignment", - "src": "643:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "659:2:39", - "nodeType": "YulLiteral", - "src": "659:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "653:5:39", - "nodeType": "YulIdentifier", - "src": "653:5:39" - }, - "nativeSrc": "653:9:39", - "nodeType": "YulFunctionCall", - "src": "653:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "643:6:39", - "nodeType": "YulIdentifier", - "src": "643:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "593:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "626:6:39", - "nodeType": "YulTypedName", - "src": "626:6:39", - "type": "" - } - ], - "src": "593:75:39" - }, - { - "body": { - "nativeSrc": "763:28:39", - "nodeType": "YulBlock", - "src": "763:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "780:1:39", - "nodeType": "YulLiteral", - "src": "780:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "783:1:39", - "nodeType": "YulLiteral", - "src": "783:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "773:6:39", - "nodeType": "YulIdentifier", - "src": "773:6:39" - }, - "nativeSrc": "773:12:39", - "nodeType": "YulFunctionCall", - "src": "773:12:39" - }, - "nativeSrc": "773:12:39", - "nodeType": "YulExpressionStatement", - "src": "773:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "674:117:39", - "nodeType": "YulFunctionDefinition", - "src": "674:117:39" - }, - { - "body": { - "nativeSrc": "886:28:39", - "nodeType": "YulBlock", - "src": "886:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "903:1:39", - "nodeType": "YulLiteral", - "src": "903:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "906:1:39", - "nodeType": "YulLiteral", - "src": "906:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "896:6:39", - "nodeType": "YulIdentifier", - "src": "896:6:39" - }, - "nativeSrc": "896:12:39", - "nodeType": "YulFunctionCall", - "src": "896:12:39" - }, - "nativeSrc": "896:12:39", - "nodeType": "YulExpressionStatement", - "src": "896:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "797:117:39", - "nodeType": "YulFunctionDefinition", - "src": "797:117:39" - }, - { - "body": { - "nativeSrc": "1002:51:39", - "nodeType": "YulBlock", - "src": "1002:51:39", - "statements": [ - { - "nativeSrc": "1012:35:39", - "nodeType": "YulAssignment", - "src": "1012:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1041:5:39", - "nodeType": "YulIdentifier", - "src": "1041:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1023:17:39", - "nodeType": "YulIdentifier", - "src": "1023:17:39" - }, - "nativeSrc": "1023:24:39", - "nodeType": "YulFunctionCall", - "src": "1023:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1012:7:39", - "nodeType": "YulIdentifier", - "src": "1012:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "920:133:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "984:5:39", - "nodeType": "YulTypedName", - "src": "984:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "994:7:39", - "nodeType": "YulTypedName", - "src": "994:7:39", - "type": "" - } - ], - "src": "920:133:39" - }, - { - "body": { - "nativeSrc": "1139:116:39", - "nodeType": "YulBlock", - "src": "1139:116:39", - "statements": [ - { - "body": { - "nativeSrc": "1233:16:39", - "nodeType": "YulBlock", - "src": "1233:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1242:1:39", - "nodeType": "YulLiteral", - "src": "1242:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1245:1:39", - "nodeType": "YulLiteral", - "src": "1245:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1235:6:39", - "nodeType": "YulIdentifier", - "src": "1235:6:39" - }, - "nativeSrc": "1235:12:39", - "nodeType": "YulFunctionCall", - "src": "1235:12:39" - }, - "nativeSrc": "1235:12:39", - "nodeType": "YulExpressionStatement", - "src": "1235:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1162:5:39", - "nodeType": "YulIdentifier", - "src": "1162:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1224:5:39", - "nodeType": "YulIdentifier", - "src": "1224:5:39" - } - ], - "functionName": { - "name": "cleanup_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "1169:54:39", - "nodeType": "YulIdentifier", - "src": "1169:54:39" - }, - "nativeSrc": "1169:61:39", - "nodeType": "YulFunctionCall", - "src": "1169:61:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1159:2:39", - "nodeType": "YulIdentifier", - "src": "1159:2:39" - }, - "nativeSrc": "1159:72:39", - "nodeType": "YulFunctionCall", - "src": "1159:72:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1152:6:39", - "nodeType": "YulIdentifier", - "src": "1152:6:39" - }, - "nativeSrc": "1152:80:39", - "nodeType": "YulFunctionCall", - "src": "1152:80:39" - }, - "nativeSrc": "1149:100:39", - "nodeType": "YulIf", - "src": "1149:100:39" - } - ] - }, - "name": "validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "1059:196:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1132:5:39", - "nodeType": "YulTypedName", - "src": "1132:5:39", - "type": "" - } - ], - "src": "1059:196:39" - }, - { - "body": { - "nativeSrc": "1350:124:39", - "nodeType": "YulBlock", - "src": "1350:124:39", - "statements": [ - { - "nativeSrc": "1360:29:39", - "nodeType": "YulAssignment", - "src": "1360:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1382:6:39", - "nodeType": "YulIdentifier", - "src": "1382:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1369:12:39", - "nodeType": "YulIdentifier", - "src": "1369:12:39" - }, - "nativeSrc": "1369:20:39", - "nodeType": "YulFunctionCall", - "src": "1369:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1360:5:39", - "nodeType": "YulIdentifier", - "src": "1360:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1462:5:39", - "nodeType": "YulIdentifier", - "src": "1462:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "1398:63:39", - "nodeType": "YulIdentifier", - "src": "1398:63:39" - }, - "nativeSrc": "1398:70:39", - "nodeType": "YulFunctionCall", - "src": "1398:70:39" - }, - "nativeSrc": "1398:70:39", - "nodeType": "YulExpressionStatement", - "src": "1398:70:39" - } - ] - }, - "name": "abi_decode_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "1261:213:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1328:6:39", - "nodeType": "YulTypedName", - "src": "1328:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1336:3:39", - "nodeType": "YulTypedName", - "src": "1336:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1344:5:39", - "nodeType": "YulTypedName", - "src": "1344:5:39", - "type": "" - } - ], - "src": "1261:213:39" - }, - { - "body": { - "nativeSrc": "1523:79:39", - "nodeType": "YulBlock", - "src": "1523:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1580:16:39", - "nodeType": "YulBlock", - "src": "1580:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1589:1:39", - "nodeType": "YulLiteral", - "src": "1589:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1592:1:39", - "nodeType": "YulLiteral", - "src": "1592:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1582:6:39", - "nodeType": "YulIdentifier", - "src": "1582:6:39" - }, - "nativeSrc": "1582:12:39", - "nodeType": "YulFunctionCall", - "src": "1582:12:39" - }, - "nativeSrc": "1582:12:39", - "nodeType": "YulExpressionStatement", - "src": "1582:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1546:5:39", - "nodeType": "YulIdentifier", - "src": "1546:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1571:5:39", - "nodeType": "YulIdentifier", - "src": "1571:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1553:17:39", - "nodeType": "YulIdentifier", - "src": "1553:17:39" - }, - "nativeSrc": "1553:24:39", - "nodeType": "YulFunctionCall", - "src": "1553:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1543:2:39", - "nodeType": "YulIdentifier", - "src": "1543:2:39" - }, - "nativeSrc": "1543:35:39", - "nodeType": "YulFunctionCall", - "src": "1543:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1536:6:39", - "nodeType": "YulIdentifier", - "src": "1536:6:39" - }, - "nativeSrc": "1536:43:39", - "nodeType": "YulFunctionCall", - "src": "1536:43:39" - }, - "nativeSrc": "1533:63:39", - "nodeType": "YulIf", - "src": "1533:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "1480:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1516:5:39", - "nodeType": "YulTypedName", - "src": "1516:5:39", - "type": "" - } - ], - "src": "1480:122:39" - }, - { - "body": { - "nativeSrc": "1660:87:39", - "nodeType": "YulBlock", - "src": "1660:87:39", - "statements": [ - { - "nativeSrc": "1670:29:39", - "nodeType": "YulAssignment", - "src": "1670:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1692:6:39", - "nodeType": "YulIdentifier", - "src": "1692:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1679:12:39", - "nodeType": "YulIdentifier", - "src": "1679:12:39" - }, - "nativeSrc": "1679:20:39", - "nodeType": "YulFunctionCall", - "src": "1679:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1670:5:39", - "nodeType": "YulIdentifier", - "src": "1670:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1735:5:39", - "nodeType": "YulIdentifier", - "src": "1735:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "1708:26:39", - "nodeType": "YulIdentifier", - "src": "1708:26:39" - }, - "nativeSrc": "1708:33:39", - "nodeType": "YulFunctionCall", - "src": "1708:33:39" - }, - "nativeSrc": "1708:33:39", - "nodeType": "YulExpressionStatement", - "src": "1708:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "1608:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1638:6:39", - "nodeType": "YulTypedName", - "src": "1638:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1646:3:39", - "nodeType": "YulTypedName", - "src": "1646:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1654:5:39", - "nodeType": "YulTypedName", - "src": "1654:5:39", - "type": "" - } - ], - "src": "1608:139:39" - }, - { - "body": { - "nativeSrc": "1842:28:39", - "nodeType": "YulBlock", - "src": "1842:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1859:1:39", - "nodeType": "YulLiteral", - "src": "1859:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1862:1:39", - "nodeType": "YulLiteral", - "src": "1862:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1852:6:39", - "nodeType": "YulIdentifier", - "src": "1852:6:39" - }, - "nativeSrc": "1852:12:39", - "nodeType": "YulFunctionCall", - "src": "1852:12:39" - }, - "nativeSrc": "1852:12:39", - "nodeType": "YulExpressionStatement", - "src": "1852:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "1753:117:39", - "nodeType": "YulFunctionDefinition", - "src": "1753:117:39" - }, - { - "body": { - "nativeSrc": "1965:28:39", - "nodeType": "YulBlock", - "src": "1965:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1982:1:39", - "nodeType": "YulLiteral", - "src": "1982:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1985:1:39", - "nodeType": "YulLiteral", - "src": "1985:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1975:6:39", - "nodeType": "YulIdentifier", - "src": "1975:6:39" - }, - "nativeSrc": "1975:12:39", - "nodeType": "YulFunctionCall", - "src": "1975:12:39" - }, - "nativeSrc": "1975:12:39", - "nodeType": "YulExpressionStatement", - "src": "1975:12:39" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "1876:117:39", - "nodeType": "YulFunctionDefinition", - "src": "1876:117:39" - }, - { - "body": { - "nativeSrc": "2047:54:39", - "nodeType": "YulBlock", - "src": "2047:54:39", - "statements": [ - { - "nativeSrc": "2057:38:39", - "nodeType": "YulAssignment", - "src": "2057:38:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2075:5:39", - "nodeType": "YulIdentifier", - "src": "2075:5:39" - }, - { - "kind": "number", - "nativeSrc": "2082:2:39", - "nodeType": "YulLiteral", - "src": "2082:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2071:3:39", - "nodeType": "YulIdentifier", - "src": "2071:3:39" - }, - "nativeSrc": "2071:14:39", - "nodeType": "YulFunctionCall", - "src": "2071:14:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2091:2:39", - "nodeType": "YulLiteral", - "src": "2091:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "2087:3:39", - "nodeType": "YulIdentifier", - "src": "2087:3:39" - }, - "nativeSrc": "2087:7:39", - "nodeType": "YulFunctionCall", - "src": "2087:7:39" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2067:3:39", - "nodeType": "YulIdentifier", - "src": "2067:3:39" - }, - "nativeSrc": "2067:28:39", - "nodeType": "YulFunctionCall", - "src": "2067:28:39" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "2057:6:39", - "nodeType": "YulIdentifier", - "src": "2057:6:39" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "1999:102:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2030:5:39", - "nodeType": "YulTypedName", - "src": "2030:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "2040:6:39", - "nodeType": "YulTypedName", - "src": "2040:6:39", - "type": "" - } - ], - "src": "1999:102:39" - }, - { - "body": { - "nativeSrc": "2135:152:39", - "nodeType": "YulBlock", - "src": "2135:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2152:1:39", - "nodeType": "YulLiteral", - "src": "2152:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2155:77:39", - "nodeType": "YulLiteral", - "src": "2155:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2145:6:39", - "nodeType": "YulIdentifier", - "src": "2145:6:39" - }, - "nativeSrc": "2145:88:39", - "nodeType": "YulFunctionCall", - "src": "2145:88:39" - }, - "nativeSrc": "2145:88:39", - "nodeType": "YulExpressionStatement", - "src": "2145:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2249:1:39", - "nodeType": "YulLiteral", - "src": "2249:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "2252:4:39", - "nodeType": "YulLiteral", - "src": "2252:4:39", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2242:6:39", - "nodeType": "YulIdentifier", - "src": "2242:6:39" - }, - "nativeSrc": "2242:15:39", - "nodeType": "YulFunctionCall", - "src": "2242:15:39" - }, - "nativeSrc": "2242:15:39", - "nodeType": "YulExpressionStatement", - "src": "2242:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2273:1:39", - "nodeType": "YulLiteral", - "src": "2273:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2276:4:39", - "nodeType": "YulLiteral", - "src": "2276:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2266:6:39", - "nodeType": "YulIdentifier", - "src": "2266:6:39" - }, - "nativeSrc": "2266:15:39", - "nodeType": "YulFunctionCall", - "src": "2266:15:39" - }, - "nativeSrc": "2266:15:39", - "nodeType": "YulExpressionStatement", - "src": "2266:15:39" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "2107:180:39", - "nodeType": "YulFunctionDefinition", - "src": "2107:180:39" - }, - { - "body": { - "nativeSrc": "2336:238:39", - "nodeType": "YulBlock", - "src": "2336:238:39", - "statements": [ - { - "nativeSrc": "2346:58:39", - "nodeType": "YulVariableDeclaration", - "src": "2346:58:39", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "2368:6:39", - "nodeType": "YulIdentifier", - "src": "2368:6:39" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "2398:4:39", - "nodeType": "YulIdentifier", - "src": "2398:4:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2376:21:39", - "nodeType": "YulIdentifier", - "src": "2376:21:39" - }, - "nativeSrc": "2376:27:39", - "nodeType": "YulFunctionCall", - "src": "2376:27:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2364:3:39", - "nodeType": "YulIdentifier", - "src": "2364:3:39" - }, - "nativeSrc": "2364:40:39", - "nodeType": "YulFunctionCall", - "src": "2364:40:39" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "2350:10:39", - "nodeType": "YulTypedName", - "src": "2350:10:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2515:22:39", - "nodeType": "YulBlock", - "src": "2515:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "2517:16:39", - "nodeType": "YulIdentifier", - "src": "2517:16:39" - }, - "nativeSrc": "2517:18:39", - "nodeType": "YulFunctionCall", - "src": "2517:18:39" - }, - "nativeSrc": "2517:18:39", - "nodeType": "YulExpressionStatement", - "src": "2517:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "2458:10:39", - "nodeType": "YulIdentifier", - "src": "2458:10:39" - }, - { - "kind": "number", - "nativeSrc": "2470:18:39", - "nodeType": "YulLiteral", - "src": "2470:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2455:2:39", - "nodeType": "YulIdentifier", - "src": "2455:2:39" - }, - "nativeSrc": "2455:34:39", - "nodeType": "YulFunctionCall", - "src": "2455:34:39" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "2494:10:39", - "nodeType": "YulIdentifier", - "src": "2494:10:39" - }, - { - "name": "memPtr", - "nativeSrc": "2506:6:39", - "nodeType": "YulIdentifier", - "src": "2506:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "2491:2:39", - "nodeType": "YulIdentifier", - "src": "2491:2:39" - }, - "nativeSrc": "2491:22:39", - "nodeType": "YulFunctionCall", - "src": "2491:22:39" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "2452:2:39", - "nodeType": "YulIdentifier", - "src": "2452:2:39" - }, - "nativeSrc": "2452:62:39", - "nodeType": "YulFunctionCall", - "src": "2452:62:39" - }, - "nativeSrc": "2449:88:39", - "nodeType": "YulIf", - "src": "2449:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2553:2:39", - "nodeType": "YulLiteral", - "src": "2553:2:39", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "2557:10:39", - "nodeType": "YulIdentifier", - "src": "2557:10:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2546:6:39", - "nodeType": "YulIdentifier", - "src": "2546:6:39" - }, - "nativeSrc": "2546:22:39", - "nodeType": "YulFunctionCall", - "src": "2546:22:39" - }, - "nativeSrc": "2546:22:39", - "nodeType": "YulExpressionStatement", - "src": "2546:22:39" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "2293:281:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "2322:6:39", - "nodeType": "YulTypedName", - "src": "2322:6:39", - "type": "" - }, - { - "name": "size", - "nativeSrc": "2330:4:39", - "nodeType": "YulTypedName", - "src": "2330:4:39", - "type": "" - } - ], - "src": "2293:281:39" - }, - { - "body": { - "nativeSrc": "2621:88:39", - "nodeType": "YulBlock", - "src": "2621:88:39", - "statements": [ - { - "nativeSrc": "2631:30:39", - "nodeType": "YulAssignment", - "src": "2631:30:39", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "2641:18:39", - "nodeType": "YulIdentifier", - "src": "2641:18:39" - }, - "nativeSrc": "2641:20:39", - "nodeType": "YulFunctionCall", - "src": "2641:20:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "2631:6:39", - "nodeType": "YulIdentifier", - "src": "2631:6:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "2690:6:39", - "nodeType": "YulIdentifier", - "src": "2690:6:39" - }, - { - "name": "size", - "nativeSrc": "2698:4:39", - "nodeType": "YulIdentifier", - "src": "2698:4:39" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "2670:19:39", - "nodeType": "YulIdentifier", - "src": "2670:19:39" - }, - "nativeSrc": "2670:33:39", - "nodeType": "YulFunctionCall", - "src": "2670:33:39" - }, - "nativeSrc": "2670:33:39", - "nodeType": "YulExpressionStatement", - "src": "2670:33:39" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "2580:129:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "2605:4:39", - "nodeType": "YulTypedName", - "src": "2605:4:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "2614:6:39", - "nodeType": "YulTypedName", - "src": "2614:6:39", - "type": "" - } - ], - "src": "2580:129:39" - }, - { - "body": { - "nativeSrc": "2781:241:39", - "nodeType": "YulBlock", - "src": "2781:241:39", - "statements": [ - { - "body": { - "nativeSrc": "2886:22:39", - "nodeType": "YulBlock", - "src": "2886:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "2888:16:39", - "nodeType": "YulIdentifier", - "src": "2888:16:39" - }, - "nativeSrc": "2888:18:39", - "nodeType": "YulFunctionCall", - "src": "2888:18:39" - }, - "nativeSrc": "2888:18:39", - "nodeType": "YulExpressionStatement", - "src": "2888:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2858:6:39", - "nodeType": "YulIdentifier", - "src": "2858:6:39" - }, - { - "kind": "number", - "nativeSrc": "2866:18:39", - "nodeType": "YulLiteral", - "src": "2866:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2855:2:39", - "nodeType": "YulIdentifier", - "src": "2855:2:39" - }, - "nativeSrc": "2855:30:39", - "nodeType": "YulFunctionCall", - "src": "2855:30:39" - }, - "nativeSrc": "2852:56:39", - "nodeType": "YulIf", - "src": "2852:56:39" - }, - { - "nativeSrc": "2918:37:39", - "nodeType": "YulAssignment", - "src": "2918:37:39", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2948:6:39", - "nodeType": "YulIdentifier", - "src": "2948:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2926:21:39", - "nodeType": "YulIdentifier", - "src": "2926:21:39" - }, - "nativeSrc": "2926:29:39", - "nodeType": "YulFunctionCall", - "src": "2926:29:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2918:4:39", - "nodeType": "YulIdentifier", - "src": "2918:4:39" - } - ] - }, - { - "nativeSrc": "2992:23:39", - "nodeType": "YulAssignment", - "src": "2992:23:39", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "3004:4:39", - "nodeType": "YulIdentifier", - "src": "3004:4:39" - }, - { - "kind": "number", - "nativeSrc": "3010:4:39", - "nodeType": "YulLiteral", - "src": "3010:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3000:3:39", - "nodeType": "YulIdentifier", - "src": "3000:3:39" - }, - "nativeSrc": "3000:15:39", - "nodeType": "YulFunctionCall", - "src": "3000:15:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2992:4:39", - "nodeType": "YulIdentifier", - "src": "2992:4:39" - } - ] - } - ] - }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "2715:307:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "2765:6:39", - "nodeType": "YulTypedName", - "src": "2765:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "2776:4:39", - "nodeType": "YulTypedName", - "src": "2776:4:39", - "type": "" - } - ], - "src": "2715:307:39" - }, - { - "body": { - "nativeSrc": "3092:84:39", - "nodeType": "YulBlock", - "src": "3092:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "3116:3:39", - "nodeType": "YulIdentifier", - "src": "3116:3:39" - }, - { - "name": "src", - "nativeSrc": "3121:3:39", - "nodeType": "YulIdentifier", - "src": "3121:3:39" - }, - { - "name": "length", - "nativeSrc": "3126:6:39", - "nodeType": "YulIdentifier", - "src": "3126:6:39" - } - ], - "functionName": { - "name": "calldatacopy", - "nativeSrc": "3103:12:39", - "nodeType": "YulIdentifier", - "src": "3103:12:39" - }, - "nativeSrc": "3103:30:39", - "nodeType": "YulFunctionCall", - "src": "3103:30:39" - }, - "nativeSrc": "3103:30:39", - "nodeType": "YulExpressionStatement", - "src": "3103:30:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "3153:3:39", - "nodeType": "YulIdentifier", - "src": "3153:3:39" - }, - { - "name": "length", - "nativeSrc": "3158:6:39", - "nodeType": "YulIdentifier", - "src": "3158:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3149:3:39", - "nodeType": "YulIdentifier", - "src": "3149:3:39" - }, - "nativeSrc": "3149:16:39", - "nodeType": "YulFunctionCall", - "src": "3149:16:39" - }, - { - "kind": "number", - "nativeSrc": "3167:1:39", - "nodeType": "YulLiteral", - "src": "3167:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3142:6:39", - "nodeType": "YulIdentifier", - "src": "3142:6:39" - }, - "nativeSrc": "3142:27:39", - "nodeType": "YulFunctionCall", - "src": "3142:27:39" - }, - "nativeSrc": "3142:27:39", - "nodeType": "YulExpressionStatement", - "src": "3142:27:39" - } - ] - }, - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "3028:148:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "3074:3:39", - "nodeType": "YulTypedName", - "src": "3074:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "3079:3:39", - "nodeType": "YulTypedName", - "src": "3079:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3084:6:39", - "nodeType": "YulTypedName", - "src": "3084:6:39", - "type": "" - } - ], - "src": "3028:148:39" - }, - { - "body": { - "nativeSrc": "3265:340:39", - "nodeType": "YulBlock", - "src": "3265:340:39", - "statements": [ - { - "nativeSrc": "3275:74:39", - "nodeType": "YulAssignment", - "src": "3275:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "3341:6:39", - "nodeType": "YulIdentifier", - "src": "3341:6:39" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "3300:40:39", - "nodeType": "YulIdentifier", - "src": "3300:40:39" - }, - "nativeSrc": "3300:48:39", - "nodeType": "YulFunctionCall", - "src": "3300:48:39" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "3284:15:39", - "nodeType": "YulIdentifier", - "src": "3284:15:39" - }, - "nativeSrc": "3284:65:39", - "nodeType": "YulFunctionCall", - "src": "3284:65:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3275:5:39", - "nodeType": "YulIdentifier", - "src": "3275:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "3365:5:39", - "nodeType": "YulIdentifier", - "src": "3365:5:39" - }, - { - "name": "length", - "nativeSrc": "3372:6:39", - "nodeType": "YulIdentifier", - "src": "3372:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3358:6:39", - "nodeType": "YulIdentifier", - "src": "3358:6:39" - }, - "nativeSrc": "3358:21:39", - "nodeType": "YulFunctionCall", - "src": "3358:21:39" - }, - "nativeSrc": "3358:21:39", - "nodeType": "YulExpressionStatement", - "src": "3358:21:39" - }, - { - "nativeSrc": "3388:27:39", - "nodeType": "YulVariableDeclaration", - "src": "3388:27:39", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "3403:5:39", - "nodeType": "YulIdentifier", - "src": "3403:5:39" - }, - { - "kind": "number", - "nativeSrc": "3410:4:39", - "nodeType": "YulLiteral", - "src": "3410:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3399:3:39", - "nodeType": "YulIdentifier", - "src": "3399:3:39" - }, - "nativeSrc": "3399:16:39", - "nodeType": "YulFunctionCall", - "src": "3399:16:39" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "3392:3:39", - "nodeType": "YulTypedName", - "src": "3392:3:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3453:83:39", - "nodeType": "YulBlock", - "src": "3453:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "3455:77:39", - "nodeType": "YulIdentifier", - "src": "3455:77:39" - }, - "nativeSrc": "3455:79:39", - "nodeType": "YulFunctionCall", - "src": "3455:79:39" - }, - "nativeSrc": "3455:79:39", - "nodeType": "YulExpressionStatement", - "src": "3455:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "3434:3:39", - "nodeType": "YulIdentifier", - "src": "3434:3:39" - }, - { - "name": "length", - "nativeSrc": "3439:6:39", - "nodeType": "YulIdentifier", - "src": "3439:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3430:3:39", - "nodeType": "YulIdentifier", - "src": "3430:3:39" - }, - "nativeSrc": "3430:16:39", - "nodeType": "YulFunctionCall", - "src": "3430:16:39" - }, - { - "name": "end", - "nativeSrc": "3448:3:39", - "nodeType": "YulIdentifier", - "src": "3448:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3427:2:39", - "nodeType": "YulIdentifier", - "src": "3427:2:39" - }, - "nativeSrc": "3427:25:39", - "nodeType": "YulFunctionCall", - "src": "3427:25:39" - }, - "nativeSrc": "3424:112:39", - "nodeType": "YulIf", - "src": "3424:112:39" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "3582:3:39", - "nodeType": "YulIdentifier", - "src": "3582:3:39" - }, - { - "name": "dst", - "nativeSrc": "3587:3:39", - "nodeType": "YulIdentifier", - "src": "3587:3:39" - }, - { - "name": "length", - "nativeSrc": "3592:6:39", - "nodeType": "YulIdentifier", - "src": "3592:6:39" - } - ], - "functionName": { - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "3545:36:39", - "nodeType": "YulIdentifier", - "src": "3545:36:39" - }, - "nativeSrc": "3545:54:39", - "nodeType": "YulFunctionCall", - "src": "3545:54:39" - }, - "nativeSrc": "3545:54:39", - "nodeType": "YulExpressionStatement", - "src": "3545:54:39" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "3182:423:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "3238:3:39", - "nodeType": "YulTypedName", - "src": "3238:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3243:6:39", - "nodeType": "YulTypedName", - "src": "3243:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3251:3:39", - "nodeType": "YulTypedName", - "src": "3251:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "3259:5:39", - "nodeType": "YulTypedName", - "src": "3259:5:39", - "type": "" - } - ], - "src": "3182:423:39" - }, - { - "body": { - "nativeSrc": "3685:277:39", - "nodeType": "YulBlock", - "src": "3685:277:39", - "statements": [ - { - "body": { - "nativeSrc": "3734:83:39", - "nodeType": "YulBlock", - "src": "3734:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "3736:77:39", - "nodeType": "YulIdentifier", - "src": "3736:77:39" - }, - "nativeSrc": "3736:79:39", - "nodeType": "YulFunctionCall", - "src": "3736:79:39" - }, - "nativeSrc": "3736:79:39", - "nodeType": "YulExpressionStatement", - "src": "3736:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3713:6:39", - "nodeType": "YulIdentifier", - "src": "3713:6:39" - }, - { - "kind": "number", - "nativeSrc": "3721:4:39", - "nodeType": "YulLiteral", - "src": "3721:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3709:3:39", - "nodeType": "YulIdentifier", - "src": "3709:3:39" - }, - "nativeSrc": "3709:17:39", - "nodeType": "YulFunctionCall", - "src": "3709:17:39" - }, - { - "name": "end", - "nativeSrc": "3728:3:39", - "nodeType": "YulIdentifier", - "src": "3728:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3705:3:39", - "nodeType": "YulIdentifier", - "src": "3705:3:39" - }, - "nativeSrc": "3705:27:39", - "nodeType": "YulFunctionCall", - "src": "3705:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3698:6:39", - "nodeType": "YulIdentifier", - "src": "3698:6:39" - }, - "nativeSrc": "3698:35:39", - "nodeType": "YulFunctionCall", - "src": "3698:35:39" - }, - "nativeSrc": "3695:122:39", - "nodeType": "YulIf", - "src": "3695:122:39" - }, - { - "nativeSrc": "3826:34:39", - "nodeType": "YulVariableDeclaration", - "src": "3826:34:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3853:6:39", - "nodeType": "YulIdentifier", - "src": "3853:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3840:12:39", - "nodeType": "YulIdentifier", - "src": "3840:12:39" - }, - "nativeSrc": "3840:20:39", - "nodeType": "YulFunctionCall", - "src": "3840:20:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "3830:6:39", - "nodeType": "YulTypedName", - "src": "3830:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3869:87:39", - "nodeType": "YulAssignment", - "src": "3869:87:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3929:6:39", - "nodeType": "YulIdentifier", - "src": "3929:6:39" - }, - { - "kind": "number", - "nativeSrc": "3937:4:39", - "nodeType": "YulLiteral", - "src": "3937:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3925:3:39", - "nodeType": "YulIdentifier", - "src": "3925:3:39" - }, - "nativeSrc": "3925:17:39", - "nodeType": "YulFunctionCall", - "src": "3925:17:39" - }, - { - "name": "length", - "nativeSrc": "3944:6:39", - "nodeType": "YulIdentifier", - "src": "3944:6:39" - }, - { - "name": "end", - "nativeSrc": "3952:3:39", - "nodeType": "YulIdentifier", - "src": "3952:3:39" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "3878:46:39", - "nodeType": "YulIdentifier", - "src": "3878:46:39" - }, - "nativeSrc": "3878:78:39", - "nodeType": "YulFunctionCall", - "src": "3878:78:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3869:5:39", - "nodeType": "YulIdentifier", - "src": "3869:5:39" - } - ] - } - ] - }, - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "3624:338:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3663:6:39", - "nodeType": "YulTypedName", - "src": "3663:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3671:3:39", - "nodeType": "YulTypedName", - "src": "3671:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "3679:5:39", - "nodeType": "YulTypedName", - "src": "3679:5:39", - "type": "" - } - ], - "src": "3624:338:39" - }, - { - "body": { - "nativeSrc": "4114:725:39", - "nodeType": "YulBlock", - "src": "4114:725:39", - "statements": [ - { - "body": { - "nativeSrc": "4160:83:39", - "nodeType": "YulBlock", - "src": "4160:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4162:77:39", - "nodeType": "YulIdentifier", - "src": "4162:77:39" - }, - "nativeSrc": "4162:79:39", - "nodeType": "YulFunctionCall", - "src": "4162:79:39" - }, - "nativeSrc": "4162:79:39", - "nodeType": "YulExpressionStatement", - "src": "4162:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4135:7:39", - "nodeType": "YulIdentifier", - "src": "4135:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4144:9:39", - "nodeType": "YulIdentifier", - "src": "4144:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4131:3:39", - "nodeType": "YulIdentifier", - "src": "4131:3:39" - }, - "nativeSrc": "4131:23:39", - "nodeType": "YulFunctionCall", - "src": "4131:23:39" - }, - { - "kind": "number", - "nativeSrc": "4156:2:39", - "nodeType": "YulLiteral", - "src": "4156:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4127:3:39", - "nodeType": "YulIdentifier", - "src": "4127:3:39" - }, - "nativeSrc": "4127:32:39", - "nodeType": "YulFunctionCall", - "src": "4127:32:39" - }, - "nativeSrc": "4124:119:39", - "nodeType": "YulIf", - "src": "4124:119:39" - }, - { - "nativeSrc": "4253:154:39", - "nodeType": "YulBlock", - "src": "4253:154:39", - "statements": [ - { - "nativeSrc": "4268:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4268:15:39", - "value": { - "kind": "number", - "nativeSrc": "4282:1:39", - "nodeType": "YulLiteral", - "src": "4282:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4272:6:39", - "nodeType": "YulTypedName", - "src": "4272:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4297:100:39", - "nodeType": "YulAssignment", - "src": "4297:100:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4369:9:39", - "nodeType": "YulIdentifier", - "src": "4369:9:39" - }, - { - "name": "offset", - "nativeSrc": "4380:6:39", - "nodeType": "YulIdentifier", - "src": "4380:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4365:3:39", - "nodeType": "YulIdentifier", - "src": "4365:3:39" - }, - "nativeSrc": "4365:22:39", - "nodeType": "YulFunctionCall", - "src": "4365:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4389:7:39", - "nodeType": "YulIdentifier", - "src": "4389:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_ITransparentUpgradeableProxy_$3014", - "nativeSrc": "4307:57:39", - "nodeType": "YulIdentifier", - "src": "4307:57:39" - }, - "nativeSrc": "4307:90:39", - "nodeType": "YulFunctionCall", - "src": "4307:90:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4297:6:39", - "nodeType": "YulIdentifier", - "src": "4297:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4417:118:39", - "nodeType": "YulBlock", - "src": "4417:118:39", - "statements": [ - { - "nativeSrc": "4432:16:39", - "nodeType": "YulVariableDeclaration", - "src": "4432:16:39", - "value": { - "kind": "number", - "nativeSrc": "4446:2:39", - "nodeType": "YulLiteral", - "src": "4446:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4436:6:39", - "nodeType": "YulTypedName", - "src": "4436:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4462:63:39", - "nodeType": "YulAssignment", - "src": "4462:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4497:9:39", - "nodeType": "YulIdentifier", - "src": "4497:9:39" - }, - { - "name": "offset", - "nativeSrc": "4508:6:39", - "nodeType": "YulIdentifier", - "src": "4508:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4493:3:39", - "nodeType": "YulIdentifier", - "src": "4493:3:39" - }, - "nativeSrc": "4493:22:39", - "nodeType": "YulFunctionCall", - "src": "4493:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4517:7:39", - "nodeType": "YulIdentifier", - "src": "4517:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "4472:20:39", - "nodeType": "YulIdentifier", - "src": "4472:20:39" - }, - "nativeSrc": "4472:53:39", - "nodeType": "YulFunctionCall", - "src": "4472:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4462:6:39", - "nodeType": "YulIdentifier", - "src": "4462:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4545:287:39", - "nodeType": "YulBlock", - "src": "4545:287:39", - "statements": [ - { - "nativeSrc": "4560:46:39", - "nodeType": "YulVariableDeclaration", - "src": "4560:46:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4591:9:39", - "nodeType": "YulIdentifier", - "src": "4591:9:39" - }, - { - "kind": "number", - "nativeSrc": "4602:2:39", - "nodeType": "YulLiteral", - "src": "4602:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4587:3:39", - "nodeType": "YulIdentifier", - "src": "4587:3:39" - }, - "nativeSrc": "4587:18:39", - "nodeType": "YulFunctionCall", - "src": "4587:18:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4574:12:39", - "nodeType": "YulIdentifier", - "src": "4574:12:39" - }, - "nativeSrc": "4574:32:39", - "nodeType": "YulFunctionCall", - "src": "4574:32:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4564:6:39", - "nodeType": "YulTypedName", - "src": "4564:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "4653:83:39", - "nodeType": "YulBlock", - "src": "4653:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "4655:77:39", - "nodeType": "YulIdentifier", - "src": "4655:77:39" - }, - "nativeSrc": "4655:79:39", - "nodeType": "YulFunctionCall", - "src": "4655:79:39" - }, - "nativeSrc": "4655:79:39", - "nodeType": "YulExpressionStatement", - "src": "4655:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "4625:6:39", - "nodeType": "YulIdentifier", - "src": "4625:6:39" - }, - { - "kind": "number", - "nativeSrc": "4633:18:39", - "nodeType": "YulLiteral", - "src": "4633:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "4622:2:39", - "nodeType": "YulIdentifier", - "src": "4622:2:39" - }, - "nativeSrc": "4622:30:39", - "nodeType": "YulFunctionCall", - "src": "4622:30:39" - }, - "nativeSrc": "4619:117:39", - "nodeType": "YulIf", - "src": "4619:117:39" - }, - { - "nativeSrc": "4750:72:39", - "nodeType": "YulAssignment", - "src": "4750:72:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4794:9:39", - "nodeType": "YulIdentifier", - "src": "4794:9:39" - }, - { - "name": "offset", - "nativeSrc": "4805:6:39", - "nodeType": "YulIdentifier", - "src": "4805:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4790:3:39", - "nodeType": "YulIdentifier", - "src": "4790:3:39" - }, - "nativeSrc": "4790:22:39", - "nodeType": "YulFunctionCall", - "src": "4790:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4814:7:39", - "nodeType": "YulIdentifier", - "src": "4814:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "4760:29:39", - "nodeType": "YulIdentifier", - "src": "4760:29:39" - }, - "nativeSrc": "4760:62:39", - "nodeType": "YulFunctionCall", - "src": "4760:62:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "4750:6:39", - "nodeType": "YulIdentifier", - "src": "4750:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$3014t_addresst_bytes_memory_ptr", - "nativeSrc": "3968:871:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4068:9:39", - "nodeType": "YulTypedName", - "src": "4068:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4079:7:39", - "nodeType": "YulTypedName", - "src": "4079:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4091:6:39", - "nodeType": "YulTypedName", - "src": "4091:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4099:6:39", - "nodeType": "YulTypedName", - "src": "4099:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4107:6:39", - "nodeType": "YulTypedName", - "src": "4107:6:39", - "type": "" - } - ], - "src": "3968:871:39" - }, - { - "body": { - "nativeSrc": "4904:40:39", - "nodeType": "YulBlock", - "src": "4904:40:39", - "statements": [ - { - "nativeSrc": "4915:22:39", - "nodeType": "YulAssignment", - "src": "4915:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4931:5:39", - "nodeType": "YulIdentifier", - "src": "4931:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4925:5:39", - "nodeType": "YulIdentifier", - "src": "4925:5:39" - }, - "nativeSrc": "4925:12:39", - "nodeType": "YulFunctionCall", - "src": "4925:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "4915:6:39", - "nodeType": "YulIdentifier", - "src": "4915:6:39" - } - ] - } - ] - }, - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "4845:99:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4887:5:39", - "nodeType": "YulTypedName", - "src": "4887:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "4897:6:39", - "nodeType": "YulTypedName", - "src": "4897:6:39", - "type": "" - } - ], - "src": "4845:99:39" - }, - { - "body": { - "nativeSrc": "5046:73:39", - "nodeType": "YulBlock", - "src": "5046:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5063:3:39", - "nodeType": "YulIdentifier", - "src": "5063:3:39" - }, - { - "name": "length", - "nativeSrc": "5068:6:39", - "nodeType": "YulIdentifier", - "src": "5068:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5056:6:39", - "nodeType": "YulIdentifier", - "src": "5056:6:39" - }, - "nativeSrc": "5056:19:39", - "nodeType": "YulFunctionCall", - "src": "5056:19:39" - }, - "nativeSrc": "5056:19:39", - "nodeType": "YulExpressionStatement", - "src": "5056:19:39" - }, - { - "nativeSrc": "5084:29:39", - "nodeType": "YulAssignment", - "src": "5084:29:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5103:3:39", - "nodeType": "YulIdentifier", - "src": "5103:3:39" - }, - { - "kind": "number", - "nativeSrc": "5108:4:39", - "nodeType": "YulLiteral", - "src": "5108:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5099:3:39", - "nodeType": "YulIdentifier", - "src": "5099:3:39" - }, - "nativeSrc": "5099:14:39", - "nodeType": "YulFunctionCall", - "src": "5099:14:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "5084:11:39", - "nodeType": "YulIdentifier", - "src": "5084:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "4950:169:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "5018:3:39", - "nodeType": "YulTypedName", - "src": "5018:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "5023:6:39", - "nodeType": "YulTypedName", - "src": "5023:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "5034:11:39", - "nodeType": "YulTypedName", - "src": "5034:11:39", - "type": "" - } - ], - "src": "4950:169:39" - }, - { - "body": { - "nativeSrc": "5187:186:39", - "nodeType": "YulBlock", - "src": "5187:186:39", - "statements": [ - { - "nativeSrc": "5198:10:39", - "nodeType": "YulVariableDeclaration", - "src": "5198:10:39", - "value": { - "kind": "number", - "nativeSrc": "5207:1:39", - "nodeType": "YulLiteral", - "src": "5207:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "5202:1:39", - "nodeType": "YulTypedName", - "src": "5202:1:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5267:63:39", - "nodeType": "YulBlock", - "src": "5267:63:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "5292:3:39", - "nodeType": "YulIdentifier", - "src": "5292:3:39" - }, - { - "name": "i", - "nativeSrc": "5297:1:39", - "nodeType": "YulIdentifier", - "src": "5297:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5288:3:39", - "nodeType": "YulIdentifier", - "src": "5288:3:39" - }, - "nativeSrc": "5288:11:39", - "nodeType": "YulFunctionCall", - "src": "5288:11:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "5311:3:39", - "nodeType": "YulIdentifier", - "src": "5311:3:39" - }, - { - "name": "i", - "nativeSrc": "5316:1:39", - "nodeType": "YulIdentifier", - "src": "5316:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5307:3:39", - "nodeType": "YulIdentifier", - "src": "5307:3:39" - }, - "nativeSrc": "5307:11:39", - "nodeType": "YulFunctionCall", - "src": "5307:11:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5301:5:39", - "nodeType": "YulIdentifier", - "src": "5301:5:39" - }, - "nativeSrc": "5301:18:39", - "nodeType": "YulFunctionCall", - "src": "5301:18:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5281:6:39", - "nodeType": "YulIdentifier", - "src": "5281:6:39" - }, - "nativeSrc": "5281:39:39", - "nodeType": "YulFunctionCall", - "src": "5281:39:39" - }, - "nativeSrc": "5281:39:39", - "nodeType": "YulExpressionStatement", - "src": "5281:39:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "5228:1:39", - "nodeType": "YulIdentifier", - "src": "5228:1:39" - }, - { - "name": "length", - "nativeSrc": "5231:6:39", - "nodeType": "YulIdentifier", - "src": "5231:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5225:2:39", - "nodeType": "YulIdentifier", - "src": "5225:2:39" - }, - "nativeSrc": "5225:13:39", - "nodeType": "YulFunctionCall", - "src": "5225:13:39" - }, - "nativeSrc": "5217:113:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "5239:19:39", - "nodeType": "YulBlock", - "src": "5239:19:39", - "statements": [ - { - "nativeSrc": "5241:15:39", - "nodeType": "YulAssignment", - "src": "5241:15:39", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "5250:1:39", - "nodeType": "YulIdentifier", - "src": "5250:1:39" - }, - { - "kind": "number", - "nativeSrc": "5253:2:39", - "nodeType": "YulLiteral", - "src": "5253:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5246:3:39", - "nodeType": "YulIdentifier", - "src": "5246:3:39" - }, - "nativeSrc": "5246:10:39", - "nodeType": "YulFunctionCall", - "src": "5246:10:39" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "5241:1:39", - "nodeType": "YulIdentifier", - "src": "5241:1:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "5221:3:39", - "nodeType": "YulBlock", - "src": "5221:3:39", - "statements": [] - }, - "src": "5217:113:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "5350:3:39", - "nodeType": "YulIdentifier", - "src": "5350:3:39" - }, - { - "name": "length", - "nativeSrc": "5355:6:39", - "nodeType": "YulIdentifier", - "src": "5355:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5346:3:39", - "nodeType": "YulIdentifier", - "src": "5346:3:39" - }, - "nativeSrc": "5346:16:39", - "nodeType": "YulFunctionCall", - "src": "5346:16:39" - }, - { - "kind": "number", - "nativeSrc": "5364:1:39", - "nodeType": "YulLiteral", - "src": "5364:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5339:6:39", - "nodeType": "YulIdentifier", - "src": "5339:6:39" - }, - "nativeSrc": "5339:27:39", - "nodeType": "YulFunctionCall", - "src": "5339:27:39" - }, - "nativeSrc": "5339:27:39", - "nodeType": "YulExpressionStatement", - "src": "5339:27:39" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5125:248:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "5169:3:39", - "nodeType": "YulTypedName", - "src": "5169:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "5174:3:39", - "nodeType": "YulTypedName", - "src": "5174:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "5179:6:39", - "nodeType": "YulTypedName", - "src": "5179:6:39", - "type": "" - } - ], - "src": "5125:248:39" - }, - { - "body": { - "nativeSrc": "5471:285:39", - "nodeType": "YulBlock", - "src": "5471:285:39", - "statements": [ - { - "nativeSrc": "5481:53:39", - "nodeType": "YulVariableDeclaration", - "src": "5481:53:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5528:5:39", - "nodeType": "YulIdentifier", - "src": "5528:5:39" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "5495:32:39", - "nodeType": "YulIdentifier", - "src": "5495:32:39" - }, - "nativeSrc": "5495:39:39", - "nodeType": "YulFunctionCall", - "src": "5495:39:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "5485:6:39", - "nodeType": "YulTypedName", - "src": "5485:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5543:78:39", - "nodeType": "YulAssignment", - "src": "5543:78:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5609:3:39", - "nodeType": "YulIdentifier", - "src": "5609:3:39" - }, - { - "name": "length", - "nativeSrc": "5614:6:39", - "nodeType": "YulIdentifier", - "src": "5614:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "5550:58:39", - "nodeType": "YulIdentifier", - "src": "5550:58:39" - }, - "nativeSrc": "5550:71:39", - "nodeType": "YulFunctionCall", - "src": "5550:71:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5543:3:39", - "nodeType": "YulIdentifier", - "src": "5543:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5669:5:39", - "nodeType": "YulIdentifier", - "src": "5669:5:39" - }, - { - "kind": "number", - "nativeSrc": "5676:4:39", - "nodeType": "YulLiteral", - "src": "5676:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5665:3:39", - "nodeType": "YulIdentifier", - "src": "5665:3:39" - }, - "nativeSrc": "5665:16:39", - "nodeType": "YulFunctionCall", - "src": "5665:16:39" - }, - { - "name": "pos", - "nativeSrc": "5683:3:39", - "nodeType": "YulIdentifier", - "src": "5683:3:39" - }, - { - "name": "length", - "nativeSrc": "5688:6:39", - "nodeType": "YulIdentifier", - "src": "5688:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5630:34:39", - "nodeType": "YulIdentifier", - "src": "5630:34:39" - }, - "nativeSrc": "5630:65:39", - "nodeType": "YulFunctionCall", - "src": "5630:65:39" - }, - "nativeSrc": "5630:65:39", - "nodeType": "YulExpressionStatement", - "src": "5630:65:39" - }, - { - "nativeSrc": "5704:46:39", - "nodeType": "YulAssignment", - "src": "5704:46:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5715:3:39", - "nodeType": "YulIdentifier", - "src": "5715:3:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "5742:6:39", - "nodeType": "YulIdentifier", - "src": "5742:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "5720:21:39", - "nodeType": "YulIdentifier", - "src": "5720:21:39" - }, - "nativeSrc": "5720:29:39", - "nodeType": "YulFunctionCall", - "src": "5720:29:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5711:3:39", - "nodeType": "YulIdentifier", - "src": "5711:3:39" - }, - "nativeSrc": "5711:39:39", - "nodeType": "YulFunctionCall", - "src": "5711:39:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5704:3:39", - "nodeType": "YulIdentifier", - "src": "5704:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nativeSrc": "5379:377:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5452:5:39", - "nodeType": "YulTypedName", - "src": "5452:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5459:3:39", - "nodeType": "YulTypedName", - "src": "5459:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5467:3:39", - "nodeType": "YulTypedName", - "src": "5467:3:39", - "type": "" - } - ], - "src": "5379:377:39" - }, - { - "body": { - "nativeSrc": "5880:195:39", - "nodeType": "YulBlock", - "src": "5880:195:39", - "statements": [ - { - "nativeSrc": "5890:26:39", - "nodeType": "YulAssignment", - "src": "5890:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5902:9:39", - "nodeType": "YulIdentifier", - "src": "5902:9:39" - }, - { - "kind": "number", - "nativeSrc": "5913:2:39", - "nodeType": "YulLiteral", - "src": "5913:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5898:3:39", - "nodeType": "YulIdentifier", - "src": "5898:3:39" - }, - "nativeSrc": "5898:18:39", - "nodeType": "YulFunctionCall", - "src": "5898:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5890:4:39", - "nodeType": "YulIdentifier", - "src": "5890:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5937:9:39", - "nodeType": "YulIdentifier", - "src": "5937:9:39" - }, - { - "kind": "number", - "nativeSrc": "5948:1:39", - "nodeType": "YulLiteral", - "src": "5948:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5933:3:39", - "nodeType": "YulIdentifier", - "src": "5933:3:39" - }, - "nativeSrc": "5933:17:39", - "nodeType": "YulFunctionCall", - "src": "5933:17:39" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "5956:4:39", - "nodeType": "YulIdentifier", - "src": "5956:4:39" - }, - { - "name": "headStart", - "nativeSrc": "5962:9:39", - "nodeType": "YulIdentifier", - "src": "5962:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5952:3:39", - "nodeType": "YulIdentifier", - "src": "5952:3:39" - }, - "nativeSrc": "5952:20:39", - "nodeType": "YulFunctionCall", - "src": "5952:20:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5926:6:39", - "nodeType": "YulIdentifier", - "src": "5926:6:39" - }, - "nativeSrc": "5926:47:39", - "nodeType": "YulFunctionCall", - "src": "5926:47:39" - }, - "nativeSrc": "5926:47:39", - "nodeType": "YulExpressionStatement", - "src": "5926:47:39" - }, - { - "nativeSrc": "5982:86:39", - "nodeType": "YulAssignment", - "src": "5982:86:39", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6054:6:39", - "nodeType": "YulIdentifier", - "src": "6054:6:39" - }, - { - "name": "tail", - "nativeSrc": "6063:4:39", - "nodeType": "YulIdentifier", - "src": "6063:4:39" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nativeSrc": "5990:63:39", - "nodeType": "YulIdentifier", - "src": "5990:63:39" - }, - "nativeSrc": "5990:78:39", - "nodeType": "YulFunctionCall", - "src": "5990:78:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5982:4:39", - "nodeType": "YulIdentifier", - "src": "5982:4:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "5762:313:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5852:9:39", - "nodeType": "YulTypedName", - "src": "5852:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5864:6:39", - "nodeType": "YulTypedName", - "src": "5864:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5875:4:39", - "nodeType": "YulTypedName", - "src": "5875:4:39", - "type": "" - } - ], - "src": "5762:313:39" - }, - { - "body": { - "nativeSrc": "6147:263:39", - "nodeType": "YulBlock", - "src": "6147:263:39", - "statements": [ - { - "body": { - "nativeSrc": "6193:83:39", - "nodeType": "YulBlock", - "src": "6193:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "6195:77:39", - "nodeType": "YulIdentifier", - "src": "6195:77:39" - }, - "nativeSrc": "6195:79:39", - "nodeType": "YulFunctionCall", - "src": "6195:79:39" - }, - "nativeSrc": "6195:79:39", - "nodeType": "YulExpressionStatement", - "src": "6195:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6168:7:39", - "nodeType": "YulIdentifier", - "src": "6168:7:39" - }, - { - "name": "headStart", - "nativeSrc": "6177:9:39", - "nodeType": "YulIdentifier", - "src": "6177:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6164:3:39", - "nodeType": "YulIdentifier", - "src": "6164:3:39" - }, - "nativeSrc": "6164:23:39", - "nodeType": "YulFunctionCall", - "src": "6164:23:39" - }, - { - "kind": "number", - "nativeSrc": "6189:2:39", - "nodeType": "YulLiteral", - "src": "6189:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6160:3:39", - "nodeType": "YulIdentifier", - "src": "6160:3:39" - }, - "nativeSrc": "6160:32:39", - "nodeType": "YulFunctionCall", - "src": "6160:32:39" - }, - "nativeSrc": "6157:119:39", - "nodeType": "YulIf", - "src": "6157:119:39" - }, - { - "nativeSrc": "6286:117:39", - "nodeType": "YulBlock", - "src": "6286:117:39", - "statements": [ - { - "nativeSrc": "6301:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6301:15:39", - "value": { - "kind": "number", - "nativeSrc": "6315:1:39", - "nodeType": "YulLiteral", - "src": "6315:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6305:6:39", - "nodeType": "YulTypedName", - "src": "6305:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6330:63:39", - "nodeType": "YulAssignment", - "src": "6330:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6365:9:39", - "nodeType": "YulIdentifier", - "src": "6365:9:39" - }, - { - "name": "offset", - "nativeSrc": "6376:6:39", - "nodeType": "YulIdentifier", - "src": "6376:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6361:3:39", - "nodeType": "YulIdentifier", - "src": "6361:3:39" - }, - "nativeSrc": "6361:22:39", - "nodeType": "YulFunctionCall", - "src": "6361:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6385:7:39", - "nodeType": "YulIdentifier", - "src": "6385:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6340:20:39", - "nodeType": "YulIdentifier", - "src": "6340:20:39" - }, - "nativeSrc": "6340:53:39", - "nodeType": "YulFunctionCall", - "src": "6340:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6330:6:39", - "nodeType": "YulIdentifier", - "src": "6330:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "6081:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6117:9:39", - "nodeType": "YulTypedName", - "src": "6117:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "6128:7:39", - "nodeType": "YulTypedName", - "src": "6128:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "6140:6:39", - "nodeType": "YulTypedName", - "src": "6140:6:39", - "type": "" - } - ], - "src": "6081:329:39" - }, - { - "body": { - "nativeSrc": "6474:40:39", - "nodeType": "YulBlock", - "src": "6474:40:39", - "statements": [ - { - "nativeSrc": "6485:22:39", - "nodeType": "YulAssignment", - "src": "6485:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6501:5:39", - "nodeType": "YulIdentifier", - "src": "6501:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "6495:5:39", - "nodeType": "YulIdentifier", - "src": "6495:5:39" - }, - "nativeSrc": "6495:12:39", - "nodeType": "YulFunctionCall", - "src": "6495:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "6485:6:39", - "nodeType": "YulIdentifier", - "src": "6485:6:39" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "6416:98:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "6457:5:39", - "nodeType": "YulTypedName", - "src": "6457:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "6467:6:39", - "nodeType": "YulTypedName", - "src": "6467:6:39", - "type": "" - } - ], - "src": "6416:98:39" - }, - { - "body": { - "nativeSrc": "6615:73:39", - "nodeType": "YulBlock", - "src": "6615:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6632:3:39", - "nodeType": "YulIdentifier", - "src": "6632:3:39" - }, - { - "name": "length", - "nativeSrc": "6637:6:39", - "nodeType": "YulIdentifier", - "src": "6637:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6625:6:39", - "nodeType": "YulIdentifier", - "src": "6625:6:39" - }, - "nativeSrc": "6625:19:39", - "nodeType": "YulFunctionCall", - "src": "6625:19:39" - }, - "nativeSrc": "6625:19:39", - "nodeType": "YulExpressionStatement", - "src": "6625:19:39" - }, - { - "nativeSrc": "6653:29:39", - "nodeType": "YulAssignment", - "src": "6653:29:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6672:3:39", - "nodeType": "YulIdentifier", - "src": "6672:3:39" - }, - { - "kind": "number", - "nativeSrc": "6677:4:39", - "nodeType": "YulLiteral", - "src": "6677:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6668:3:39", - "nodeType": "YulIdentifier", - "src": "6668:3:39" - }, - "nativeSrc": "6668:14:39", - "nodeType": "YulFunctionCall", - "src": "6668:14:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "6653:11:39", - "nodeType": "YulIdentifier", - "src": "6653:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nativeSrc": "6520:168:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "6587:3:39", - "nodeType": "YulTypedName", - "src": "6587:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "6592:6:39", - "nodeType": "YulTypedName", - "src": "6592:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "6603:11:39", - "nodeType": "YulTypedName", - "src": "6603:11:39", - "type": "" - } - ], - "src": "6520:168:39" - }, - { - "body": { - "nativeSrc": "6784:283:39", - "nodeType": "YulBlock", - "src": "6784:283:39", - "statements": [ - { - "nativeSrc": "6794:52:39", - "nodeType": "YulVariableDeclaration", - "src": "6794:52:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6840:5:39", - "nodeType": "YulIdentifier", - "src": "6840:5:39" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "6808:31:39", - "nodeType": "YulIdentifier", - "src": "6808:31:39" - }, - "nativeSrc": "6808:38:39", - "nodeType": "YulFunctionCall", - "src": "6808:38:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "6798:6:39", - "nodeType": "YulTypedName", - "src": "6798:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6855:77:39", - "nodeType": "YulAssignment", - "src": "6855:77:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6920:3:39", - "nodeType": "YulIdentifier", - "src": "6920:3:39" - }, - { - "name": "length", - "nativeSrc": "6925:6:39", - "nodeType": "YulIdentifier", - "src": "6925:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nativeSrc": "6862:57:39", - "nodeType": "YulIdentifier", - "src": "6862:57:39" - }, - "nativeSrc": "6862:70:39", - "nodeType": "YulFunctionCall", - "src": "6862:70:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "6855:3:39", - "nodeType": "YulIdentifier", - "src": "6855:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "6980:5:39", - "nodeType": "YulIdentifier", - "src": "6980:5:39" - }, - { - "kind": "number", - "nativeSrc": "6987:4:39", - "nodeType": "YulLiteral", - "src": "6987:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6976:3:39", - "nodeType": "YulIdentifier", - "src": "6976:3:39" - }, - "nativeSrc": "6976:16:39", - "nodeType": "YulFunctionCall", - "src": "6976:16:39" - }, - { - "name": "pos", - "nativeSrc": "6994:3:39", - "nodeType": "YulIdentifier", - "src": "6994:3:39" - }, - { - "name": "length", - "nativeSrc": "6999:6:39", - "nodeType": "YulIdentifier", - "src": "6999:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "6941:34:39", - "nodeType": "YulIdentifier", - "src": "6941:34:39" - }, - "nativeSrc": "6941:65:39", - "nodeType": "YulFunctionCall", - "src": "6941:65:39" - }, - "nativeSrc": "6941:65:39", - "nodeType": "YulExpressionStatement", - "src": "6941:65:39" - }, - { - "nativeSrc": "7015:46:39", - "nodeType": "YulAssignment", - "src": "7015:46:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7026:3:39", - "nodeType": "YulIdentifier", - "src": "7026:3:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "7053:6:39", - "nodeType": "YulIdentifier", - "src": "7053:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "7031:21:39", - "nodeType": "YulIdentifier", - "src": "7031:21:39" - }, - "nativeSrc": "7031:29:39", - "nodeType": "YulFunctionCall", - "src": "7031:29:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7022:3:39", - "nodeType": "YulIdentifier", - "src": "7022:3:39" - }, - "nativeSrc": "7022:39:39", - "nodeType": "YulFunctionCall", - "src": "7022:39:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "7015:3:39", - "nodeType": "YulIdentifier", - "src": "7015:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "6694:373:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "6765:5:39", - "nodeType": "YulTypedName", - "src": "6765:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "6772:3:39", - "nodeType": "YulTypedName", - "src": "6772:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "6780:3:39", - "nodeType": "YulTypedName", - "src": "6780:3:39", - "type": "" - } - ], - "src": "6694:373:39" - }, - { - "body": { - "nativeSrc": "7217:275:39", - "nodeType": "YulBlock", - "src": "7217:275:39", - "statements": [ - { - "nativeSrc": "7227:26:39", - "nodeType": "YulAssignment", - "src": "7227:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7239:9:39", - "nodeType": "YulIdentifier", - "src": "7239:9:39" - }, - { - "kind": "number", - "nativeSrc": "7250:2:39", - "nodeType": "YulLiteral", - "src": "7250:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7235:3:39", - "nodeType": "YulIdentifier", - "src": "7235:3:39" - }, - "nativeSrc": "7235:18:39", - "nodeType": "YulFunctionCall", - "src": "7235:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7227:4:39", - "nodeType": "YulIdentifier", - "src": "7227:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7307:6:39", - "nodeType": "YulIdentifier", - "src": "7307:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7320:9:39", - "nodeType": "YulIdentifier", - "src": "7320:9:39" - }, - { - "kind": "number", - "nativeSrc": "7331:1:39", - "nodeType": "YulLiteral", - "src": "7331:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7316:3:39", - "nodeType": "YulIdentifier", - "src": "7316:3:39" - }, - "nativeSrc": "7316:17:39", - "nodeType": "YulFunctionCall", - "src": "7316:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "7263:43:39", - "nodeType": "YulIdentifier", - "src": "7263:43:39" - }, - "nativeSrc": "7263:71:39", - "nodeType": "YulFunctionCall", - "src": "7263:71:39" - }, - "nativeSrc": "7263:71:39", - "nodeType": "YulExpressionStatement", - "src": "7263:71:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7355:9:39", - "nodeType": "YulIdentifier", - "src": "7355:9:39" - }, - { - "kind": "number", - "nativeSrc": "7366:2:39", - "nodeType": "YulLiteral", - "src": "7366:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7351:3:39", - "nodeType": "YulIdentifier", - "src": "7351:3:39" - }, - "nativeSrc": "7351:18:39", - "nodeType": "YulFunctionCall", - "src": "7351:18:39" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "7375:4:39", - "nodeType": "YulIdentifier", - "src": "7375:4:39" - }, - { - "name": "headStart", - "nativeSrc": "7381:9:39", - "nodeType": "YulIdentifier", - "src": "7381:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7371:3:39", - "nodeType": "YulIdentifier", - "src": "7371:3:39" - }, - "nativeSrc": "7371:20:39", - "nodeType": "YulFunctionCall", - "src": "7371:20:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7344:6:39", - "nodeType": "YulIdentifier", - "src": "7344:6:39" - }, - "nativeSrc": "7344:48:39", - "nodeType": "YulFunctionCall", - "src": "7344:48:39" - }, - "nativeSrc": "7344:48:39", - "nodeType": "YulExpressionStatement", - "src": "7344:48:39" - }, - { - "nativeSrc": "7401:84:39", - "nodeType": "YulAssignment", - "src": "7401:84:39", - "value": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "7471:6:39", - "nodeType": "YulIdentifier", - "src": "7471:6:39" - }, - { - "name": "tail", - "nativeSrc": "7480:4:39", - "nodeType": "YulIdentifier", - "src": "7480:4:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "7409:61:39", - "nodeType": "YulIdentifier", - "src": "7409:61:39" - }, - "nativeSrc": "7409:76:39", - "nodeType": "YulFunctionCall", - "src": "7409:76:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7401:4:39", - "nodeType": "YulIdentifier", - "src": "7401:4:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "7073:419:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7181:9:39", - "nodeType": "YulTypedName", - "src": "7181:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7193:6:39", - "nodeType": "YulTypedName", - "src": "7193:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7201:6:39", - "nodeType": "YulTypedName", - "src": "7201:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7212:4:39", - "nodeType": "YulTypedName", - "src": "7212:4:39", - "type": "" - } - ], - "src": "7073:419:39" - } - ] - }, - "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_$3014(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014(value) {\n if iszero(eq(value, cleanup_t_contract$_ITransparentUpgradeableProxy_$3014(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_ITransparentUpgradeableProxy_$3014(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014(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_$3014t_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_$3014(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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "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 0x27 0xB5 PC 0xE0 0xEF JUMPDEST DUP7 0x21 BLOCKHASH PUSH15 0x87E0A379C68E322FC4690410766900 SWAP2 0xB2 PUSH25 0x3BCA57C964736F6C634300081C003300000000000000000000 ", - "sourceMap": "502:1462:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:101:8;;;;;;;;;;;;;:::i;:::-;;1638:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1717:245:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1187: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;1717:245:17:-;1531:13:8;:11;:13::i;:::-;1893:5:17::1;:22;;;1923:9;1934:14;1950:4;1893:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;1717:245:::0;;;:::o;1187: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:39:-;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,address)` and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called, while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string. If the getter returns `\\\"5.0.0\\\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third 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\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@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\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"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": "newImplementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "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\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"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\":{\"upgradeToAndCall(address,bytes)\":{\"details\":\"See {UUPSUpgradeable-upgradeToAndCall}\"}},\"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\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@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\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"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": "FailedCall", - "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 - }, - "@_3055": { - "entryPoint": null, - "id": 3055, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@_checkNonPayable_2897": { - "entryPoint": 776, - "id": 2897, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_proxyAdmin_3064": { - "entryPoint": 329, - "id": 3064, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_revert_3386": { - "entryPoint": 1322, - "id": 3386, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setAdmin_2761": { - "entryPoint": 930, - "id": 2761, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setImplementation_2677": { - "entryPoint": 427, - "id": 2677, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@changeAdmin_2780": { - "entryPoint": 339, - "id": 2780, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@functionDelegateCall_3304": { - "entryPoint": 638, - "id": 3304, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@getAddressSlot_3643": { - "entryPoint": 1163, - "id": 3643, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getAdmin_2730": { - "entryPoint": 837, - "id": 2730, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@upgradeToAndCall_2713": { - "entryPoint": 196, - "id": 2713, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@verifyCallResultFromTarget_3344": { - "entryPoint": 1173, - "id": 3344, - "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:39", - "nodeType": "YulBlock", - "src": "0:5637:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "934:28:39", - "nodeType": "YulBlock", - "src": "934:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "951:1:39", - "nodeType": "YulLiteral", - "src": "951:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "954:1:39", - "nodeType": "YulLiteral", - "src": "954:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "944:6:39", - "nodeType": "YulIdentifier", - "src": "944:6:39" - }, - "nativeSrc": "944:12:39", - "nodeType": "YulFunctionCall", - "src": "944:12:39" - }, - "nativeSrc": "944:12:39", - "nodeType": "YulExpressionStatement", - "src": "944:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "845:117:39", - "nodeType": "YulFunctionDefinition", - "src": "845:117:39" - }, - { - "body": { - "nativeSrc": "1057:28:39", - "nodeType": "YulBlock", - "src": "1057:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1074:1:39", - "nodeType": "YulLiteral", - "src": "1074:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1077:1:39", - "nodeType": "YulLiteral", - "src": "1077:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1067:6:39", - "nodeType": "YulIdentifier", - "src": "1067:6:39" - }, - "nativeSrc": "1067:12:39", - "nodeType": "YulFunctionCall", - "src": "1067:12:39" - }, - "nativeSrc": "1067:12:39", - "nodeType": "YulExpressionStatement", - "src": "1067:12:39" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "968:117:39", - "nodeType": "YulFunctionDefinition", - "src": "968:117:39" - }, - { - "body": { - "nativeSrc": "1139:54:39", - "nodeType": "YulBlock", - "src": "1139:54:39", - "statements": [ - { - "nativeSrc": "1149:38:39", - "nodeType": "YulAssignment", - "src": "1149:38:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1167:5:39", - "nodeType": "YulIdentifier", - "src": "1167:5:39" - }, - { - "kind": "number", - "nativeSrc": "1174:2:39", - "nodeType": "YulLiteral", - "src": "1174:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1163:3:39", - "nodeType": "YulIdentifier", - "src": "1163:3:39" - }, - "nativeSrc": "1163:14:39", - "nodeType": "YulFunctionCall", - "src": "1163:14:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1183:2:39", - "nodeType": "YulLiteral", - "src": "1183:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "1179:3:39", - "nodeType": "YulIdentifier", - "src": "1179:3:39" - }, - "nativeSrc": "1179:7:39", - "nodeType": "YulFunctionCall", - "src": "1179:7:39" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1159:3:39", - "nodeType": "YulIdentifier", - "src": "1159:3:39" - }, - "nativeSrc": "1159:28:39", - "nodeType": "YulFunctionCall", - "src": "1159:28:39" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "1149:6:39", - "nodeType": "YulIdentifier", - "src": "1149:6:39" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "1091:102:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1122:5:39", - "nodeType": "YulTypedName", - "src": "1122:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "1132:6:39", - "nodeType": "YulTypedName", - "src": "1132:6:39", - "type": "" - } - ], - "src": "1091:102:39" - }, - { - "body": { - "nativeSrc": "1227:152:39", - "nodeType": "YulBlock", - "src": "1227:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1244:1:39", - "nodeType": "YulLiteral", - "src": "1244:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1247:77:39", - "nodeType": "YulLiteral", - "src": "1247:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1237:6:39", - "nodeType": "YulIdentifier", - "src": "1237:6:39" - }, - "nativeSrc": "1237:88:39", - "nodeType": "YulFunctionCall", - "src": "1237:88:39" - }, - "nativeSrc": "1237:88:39", - "nodeType": "YulExpressionStatement", - "src": "1237:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1341:1:39", - "nodeType": "YulLiteral", - "src": "1341:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "1344:4:39", - "nodeType": "YulLiteral", - "src": "1344:4:39", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1334:6:39", - "nodeType": "YulIdentifier", - "src": "1334:6:39" - }, - "nativeSrc": "1334:15:39", - "nodeType": "YulFunctionCall", - "src": "1334:15:39" - }, - "nativeSrc": "1334:15:39", - "nodeType": "YulExpressionStatement", - "src": "1334:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1365:1:39", - "nodeType": "YulLiteral", - "src": "1365:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1368:4:39", - "nodeType": "YulLiteral", - "src": "1368:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1358:6:39", - "nodeType": "YulIdentifier", - "src": "1358:6:39" - }, - "nativeSrc": "1358:15:39", - "nodeType": "YulFunctionCall", - "src": "1358:15:39" - }, - "nativeSrc": "1358:15:39", - "nodeType": "YulExpressionStatement", - "src": "1358:15:39" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "1199:180:39", - "nodeType": "YulFunctionDefinition", - "src": "1199:180:39" - }, - { - "body": { - "nativeSrc": "1428:238:39", - "nodeType": "YulBlock", - "src": "1428:238:39", - "statements": [ - { - "nativeSrc": "1438:58:39", - "nodeType": "YulVariableDeclaration", - "src": "1438:58:39", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1460:6:39", - "nodeType": "YulIdentifier", - "src": "1460:6:39" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "1490:4:39", - "nodeType": "YulIdentifier", - "src": "1490:4:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "1468:21:39", - "nodeType": "YulIdentifier", - "src": "1468:21:39" - }, - "nativeSrc": "1468:27:39", - "nodeType": "YulFunctionCall", - "src": "1468:27:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1456:3:39", - "nodeType": "YulIdentifier", - "src": "1456:3:39" - }, - "nativeSrc": "1456:40:39", - "nodeType": "YulFunctionCall", - "src": "1456:40:39" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "1442:10:39", - "nodeType": "YulTypedName", - "src": "1442:10:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "1607:22:39", - "nodeType": "YulBlock", - "src": "1607:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "1609:16:39", - "nodeType": "YulIdentifier", - "src": "1609:16:39" - }, - "nativeSrc": "1609:18:39", - "nodeType": "YulFunctionCall", - "src": "1609:18:39" - }, - "nativeSrc": "1609:18:39", - "nodeType": "YulExpressionStatement", - "src": "1609:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "1550:10:39", - "nodeType": "YulIdentifier", - "src": "1550:10:39" - }, - { - "kind": "number", - "nativeSrc": "1562:18:39", - "nodeType": "YulLiteral", - "src": "1562:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "1547:2:39", - "nodeType": "YulIdentifier", - "src": "1547:2:39" - }, - "nativeSrc": "1547:34:39", - "nodeType": "YulFunctionCall", - "src": "1547:34:39" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "1586:10:39", - "nodeType": "YulIdentifier", - "src": "1586:10:39" - }, - { - "name": "memPtr", - "nativeSrc": "1598:6:39", - "nodeType": "YulIdentifier", - "src": "1598:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "1583:2:39", - "nodeType": "YulIdentifier", - "src": "1583:2:39" - }, - "nativeSrc": "1583:22:39", - "nodeType": "YulFunctionCall", - "src": "1583:22:39" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "1544:2:39", - "nodeType": "YulIdentifier", - "src": "1544:2:39" - }, - "nativeSrc": "1544:62:39", - "nodeType": "YulFunctionCall", - "src": "1544:62:39" - }, - "nativeSrc": "1541:88:39", - "nodeType": "YulIf", - "src": "1541:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1645:2:39", - "nodeType": "YulLiteral", - "src": "1645:2:39", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "1649:10:39", - "nodeType": "YulIdentifier", - "src": "1649:10:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1638:6:39", - "nodeType": "YulIdentifier", - "src": "1638:6:39" - }, - "nativeSrc": "1638:22:39", - "nodeType": "YulFunctionCall", - "src": "1638:22:39" - }, - "nativeSrc": "1638:22:39", - "nodeType": "YulExpressionStatement", - "src": "1638:22:39" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "1385:281:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "1414:6:39", - "nodeType": "YulTypedName", - "src": "1414:6:39", - "type": "" - }, - { - "name": "size", - "nativeSrc": "1422:4:39", - "nodeType": "YulTypedName", - "src": "1422:4:39", - "type": "" - } - ], - "src": "1385:281:39" - }, - { - "body": { - "nativeSrc": "1713:88:39", - "nodeType": "YulBlock", - "src": "1713:88:39", - "statements": [ - { - "nativeSrc": "1723:30:39", - "nodeType": "YulAssignment", - "src": "1723:30:39", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "1733:18:39", - "nodeType": "YulIdentifier", - "src": "1733:18:39" - }, - "nativeSrc": "1733:20:39", - "nodeType": "YulFunctionCall", - "src": "1733:20:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "1723:6:39", - "nodeType": "YulIdentifier", - "src": "1723:6:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1782:6:39", - "nodeType": "YulIdentifier", - "src": "1782:6:39" - }, - { - "name": "size", - "nativeSrc": "1790:4:39", - "nodeType": "YulIdentifier", - "src": "1790:4:39" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "1762:19:39", - "nodeType": "YulIdentifier", - "src": "1762:19:39" - }, - "nativeSrc": "1762:33:39", - "nodeType": "YulFunctionCall", - "src": "1762:33:39" - }, - "nativeSrc": "1762:33:39", - "nodeType": "YulExpressionStatement", - "src": "1762:33:39" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "1672:129:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "1697:4:39", - "nodeType": "YulTypedName", - "src": "1697:4:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "1706:6:39", - "nodeType": "YulTypedName", - "src": "1706:6:39", - "type": "" - } - ], - "src": "1672:129:39" - }, - { - "body": { - "nativeSrc": "1873:241:39", - "nodeType": "YulBlock", - "src": "1873:241:39", - "statements": [ - { - "body": { - "nativeSrc": "1978:22:39", - "nodeType": "YulBlock", - "src": "1978:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "1980:16:39", - "nodeType": "YulIdentifier", - "src": "1980:16:39" - }, - "nativeSrc": "1980:18:39", - "nodeType": "YulFunctionCall", - "src": "1980:18:39" - }, - "nativeSrc": "1980:18:39", - "nodeType": "YulExpressionStatement", - "src": "1980:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "1950:6:39", - "nodeType": "YulIdentifier", - "src": "1950:6:39" - }, - { - "kind": "number", - "nativeSrc": "1958:18:39", - "nodeType": "YulLiteral", - "src": "1958:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "1947:2:39", - "nodeType": "YulIdentifier", - "src": "1947:2:39" - }, - "nativeSrc": "1947:30:39", - "nodeType": "YulFunctionCall", - "src": "1947:30:39" - }, - "nativeSrc": "1944:56:39", - "nodeType": "YulIf", - "src": "1944:56:39" - }, - { - "nativeSrc": "2010:37:39", - "nodeType": "YulAssignment", - "src": "2010:37:39", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2040:6:39", - "nodeType": "YulIdentifier", - "src": "2040:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2018:21:39", - "nodeType": "YulIdentifier", - "src": "2018:21:39" - }, - "nativeSrc": "2018:29:39", - "nodeType": "YulFunctionCall", - "src": "2018:29:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2010:4:39", - "nodeType": "YulIdentifier", - "src": "2010:4:39" - } - ] - }, - { - "nativeSrc": "2084:23:39", - "nodeType": "YulAssignment", - "src": "2084:23:39", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "2096:4:39", - "nodeType": "YulIdentifier", - "src": "2096:4:39" - }, - { - "kind": "number", - "nativeSrc": "2102:4:39", - "nodeType": "YulLiteral", - "src": "2102:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2092:3:39", - "nodeType": "YulIdentifier", - "src": "2092:3:39" - }, - "nativeSrc": "2092:15:39", - "nodeType": "YulFunctionCall", - "src": "2092:15:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2084:4:39", - "nodeType": "YulIdentifier", - "src": "2084:4:39" - } - ] - } - ] - }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "1807:307:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "1857:6:39", - "nodeType": "YulTypedName", - "src": "1857:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "1868:4:39", - "nodeType": "YulTypedName", - "src": "1868:4:39", - "type": "" - } - ], - "src": "1807:307:39" - }, - { - "body": { - "nativeSrc": "2182:186:39", - "nodeType": "YulBlock", - "src": "2182:186:39", - "statements": [ - { - "nativeSrc": "2193:10:39", - "nodeType": "YulVariableDeclaration", - "src": "2193:10:39", - "value": { - "kind": "number", - "nativeSrc": "2202:1:39", - "nodeType": "YulLiteral", - "src": "2202:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "2197:1:39", - "nodeType": "YulTypedName", - "src": "2197:1:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2262:63:39", - "nodeType": "YulBlock", - "src": "2262:63:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2287:3:39", - "nodeType": "YulIdentifier", - "src": "2287:3:39" - }, - { - "name": "i", - "nativeSrc": "2292:1:39", - "nodeType": "YulIdentifier", - "src": "2292:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2283:3:39", - "nodeType": "YulIdentifier", - "src": "2283:3:39" - }, - "nativeSrc": "2283:11:39", - "nodeType": "YulFunctionCall", - "src": "2283:11:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "2306:3:39", - "nodeType": "YulIdentifier", - "src": "2306:3:39" - }, - { - "name": "i", - "nativeSrc": "2311:1:39", - "nodeType": "YulIdentifier", - "src": "2311:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2302:3:39", - "nodeType": "YulIdentifier", - "src": "2302:3:39" - }, - "nativeSrc": "2302:11:39", - "nodeType": "YulFunctionCall", - "src": "2302:11:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "2296:5:39", - "nodeType": "YulIdentifier", - "src": "2296:5:39" - }, - "nativeSrc": "2296:18:39", - "nodeType": "YulFunctionCall", - "src": "2296:18:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2276:6:39", - "nodeType": "YulIdentifier", - "src": "2276:6:39" - }, - "nativeSrc": "2276:39:39", - "nodeType": "YulFunctionCall", - "src": "2276:39:39" - }, - "nativeSrc": "2276:39:39", - "nodeType": "YulExpressionStatement", - "src": "2276:39:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "2223:1:39", - "nodeType": "YulIdentifier", - "src": "2223:1:39" - }, - { - "name": "length", - "nativeSrc": "2226:6:39", - "nodeType": "YulIdentifier", - "src": "2226:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "2220:2:39", - "nodeType": "YulIdentifier", - "src": "2220:2:39" - }, - "nativeSrc": "2220:13:39", - "nodeType": "YulFunctionCall", - "src": "2220:13:39" - }, - "nativeSrc": "2212:113:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "2234:19:39", - "nodeType": "YulBlock", - "src": "2234:19:39", - "statements": [ - { - "nativeSrc": "2236:15:39", - "nodeType": "YulAssignment", - "src": "2236:15:39", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "2245:1:39", - "nodeType": "YulIdentifier", - "src": "2245:1:39" - }, - { - "kind": "number", - "nativeSrc": "2248:2:39", - "nodeType": "YulLiteral", - "src": "2248:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2241:3:39", - "nodeType": "YulIdentifier", - "src": "2241:3:39" - }, - "nativeSrc": "2241:10:39", - "nodeType": "YulFunctionCall", - "src": "2241:10:39" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "2236:1:39", - "nodeType": "YulIdentifier", - "src": "2236:1:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "2216:3:39", - "nodeType": "YulBlock", - "src": "2216:3:39", - "statements": [] - }, - "src": "2212:113:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2345:3:39", - "nodeType": "YulIdentifier", - "src": "2345:3:39" - }, - { - "name": "length", - "nativeSrc": "2350:6:39", - "nodeType": "YulIdentifier", - "src": "2350:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2341:3:39", - "nodeType": "YulIdentifier", - "src": "2341:3:39" - }, - "nativeSrc": "2341:16:39", - "nodeType": "YulFunctionCall", - "src": "2341:16:39" - }, - { - "kind": "number", - "nativeSrc": "2359:1:39", - "nodeType": "YulLiteral", - "src": "2359:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2334:6:39", - "nodeType": "YulIdentifier", - "src": "2334:6:39" - }, - "nativeSrc": "2334:27:39", - "nodeType": "YulFunctionCall", - "src": "2334:27:39" - }, - "nativeSrc": "2334:27:39", - "nodeType": "YulExpressionStatement", - "src": "2334:27:39" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "2120:248:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "2164:3:39", - "nodeType": "YulTypedName", - "src": "2164:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "2169:3:39", - "nodeType": "YulTypedName", - "src": "2169:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2174:6:39", - "nodeType": "YulTypedName", - "src": "2174:6:39", - "type": "" - } - ], - "src": "2120:248:39" - }, - { - "body": { - "nativeSrc": "2468:338:39", - "nodeType": "YulBlock", - "src": "2468:338:39", - "statements": [ - { - "nativeSrc": "2478:74:39", - "nodeType": "YulAssignment", - "src": "2478:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "2544:6:39", - "nodeType": "YulIdentifier", - "src": "2544:6:39" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "2503:40:39", - "nodeType": "YulIdentifier", - "src": "2503:40:39" - }, - "nativeSrc": "2503:48:39", - "nodeType": "YulFunctionCall", - "src": "2503:48:39" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "2487:15:39", - "nodeType": "YulIdentifier", - "src": "2487:15:39" - }, - "nativeSrc": "2487:65:39", - "nodeType": "YulFunctionCall", - "src": "2487:65:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "2478:5:39", - "nodeType": "YulIdentifier", - "src": "2478:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2568:5:39", - "nodeType": "YulIdentifier", - "src": "2568:5:39" - }, - { - "name": "length", - "nativeSrc": "2575:6:39", - "nodeType": "YulIdentifier", - "src": "2575:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2561:6:39", - "nodeType": "YulIdentifier", - "src": "2561:6:39" - }, - "nativeSrc": "2561:21:39", - "nodeType": "YulFunctionCall", - "src": "2561:21:39" - }, - "nativeSrc": "2561:21:39", - "nodeType": "YulExpressionStatement", - "src": "2561:21:39" - }, - { - "nativeSrc": "2591:27:39", - "nodeType": "YulVariableDeclaration", - "src": "2591:27:39", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2606:5:39", - "nodeType": "YulIdentifier", - "src": "2606:5:39" - }, - { - "kind": "number", - "nativeSrc": "2613:4:39", - "nodeType": "YulLiteral", - "src": "2613:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2602:3:39", - "nodeType": "YulIdentifier", - "src": "2602:3:39" - }, - "nativeSrc": "2602:16:39", - "nodeType": "YulFunctionCall", - "src": "2602:16:39" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "2595:3:39", - "nodeType": "YulTypedName", - "src": "2595:3:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2656:83:39", - "nodeType": "YulBlock", - "src": "2656:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "2658:77:39", - "nodeType": "YulIdentifier", - "src": "2658:77:39" - }, - "nativeSrc": "2658:79:39", - "nodeType": "YulFunctionCall", - "src": "2658:79:39" - }, - "nativeSrc": "2658:79:39", - "nodeType": "YulExpressionStatement", - "src": "2658:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "2637:3:39", - "nodeType": "YulIdentifier", - "src": "2637:3:39" - }, - { - "name": "length", - "nativeSrc": "2642:6:39", - "nodeType": "YulIdentifier", - "src": "2642:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2633:3:39", - "nodeType": "YulIdentifier", - "src": "2633:3:39" - }, - "nativeSrc": "2633:16:39", - "nodeType": "YulFunctionCall", - "src": "2633:16:39" - }, - { - "name": "end", - "nativeSrc": "2651:3:39", - "nodeType": "YulIdentifier", - "src": "2651:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2630:2:39", - "nodeType": "YulIdentifier", - "src": "2630:2:39" - }, - "nativeSrc": "2630:25:39", - "nodeType": "YulFunctionCall", - "src": "2630:25:39" - }, - "nativeSrc": "2627:112:39", - "nodeType": "YulIf", - "src": "2627:112:39" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "2783:3:39", - "nodeType": "YulIdentifier", - "src": "2783:3:39" - }, - { - "name": "dst", - "nativeSrc": "2788:3:39", - "nodeType": "YulIdentifier", - "src": "2788:3:39" - }, - { - "name": "length", - "nativeSrc": "2793:6:39", - "nodeType": "YulIdentifier", - "src": "2793:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "2748:34:39", - "nodeType": "YulIdentifier", - "src": "2748:34:39" - }, - "nativeSrc": "2748:52:39", - "nodeType": "YulFunctionCall", - "src": "2748:52:39" - }, - "nativeSrc": "2748:52:39", - "nodeType": "YulExpressionStatement", - "src": "2748:52:39" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "2374:432:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "2441:3:39", - "nodeType": "YulTypedName", - "src": "2441:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2446:6:39", - "nodeType": "YulTypedName", - "src": "2446:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2454:3:39", - "nodeType": "YulTypedName", - "src": "2454:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "2462:5:39", - "nodeType": "YulTypedName", - "src": "2462:5:39", - "type": "" - } - ], - "src": "2374:432:39" - }, - { - "body": { - "nativeSrc": "2897:281:39", - "nodeType": "YulBlock", - "src": "2897:281:39", - "statements": [ - { - "body": { - "nativeSrc": "2946:83:39", - "nodeType": "YulBlock", - "src": "2946:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "2948:77:39", - "nodeType": "YulIdentifier", - "src": "2948:77:39" - }, - "nativeSrc": "2948:79:39", - "nodeType": "YulFunctionCall", - "src": "2948:79:39" - }, - "nativeSrc": "2948:79:39", - "nodeType": "YulExpressionStatement", - "src": "2948:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2925:6:39", - "nodeType": "YulIdentifier", - "src": "2925:6:39" - }, - { - "kind": "number", - "nativeSrc": "2933:4:39", - "nodeType": "YulLiteral", - "src": "2933:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2921:3:39", - "nodeType": "YulIdentifier", - "src": "2921:3:39" - }, - "nativeSrc": "2921:17:39", - "nodeType": "YulFunctionCall", - "src": "2921:17:39" - }, - { - "name": "end", - "nativeSrc": "2940:3:39", - "nodeType": "YulIdentifier", - "src": "2940:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2917:3:39", - "nodeType": "YulIdentifier", - "src": "2917:3:39" - }, - "nativeSrc": "2917:27:39", - "nodeType": "YulFunctionCall", - "src": "2917:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2910:6:39", - "nodeType": "YulIdentifier", - "src": "2910:6:39" - }, - "nativeSrc": "2910:35:39", - "nodeType": "YulFunctionCall", - "src": "2910:35:39" - }, - "nativeSrc": "2907:122:39", - "nodeType": "YulIf", - "src": "2907:122:39" - }, - { - "nativeSrc": "3038:27:39", - "nodeType": "YulVariableDeclaration", - "src": "3038:27:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3058:6:39", - "nodeType": "YulIdentifier", - "src": "3058:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3052:5:39", - "nodeType": "YulIdentifier", - "src": "3052:5:39" - }, - "nativeSrc": "3052:13:39", - "nodeType": "YulFunctionCall", - "src": "3052:13:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "3042:6:39", - "nodeType": "YulTypedName", - "src": "3042:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3074:98:39", - "nodeType": "YulAssignment", - "src": "3074:98:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3145:6:39", - "nodeType": "YulIdentifier", - "src": "3145:6:39" - }, - { - "kind": "number", - "nativeSrc": "3153:4:39", - "nodeType": "YulLiteral", - "src": "3153:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3141:3:39", - "nodeType": "YulIdentifier", - "src": "3141:3:39" - }, - "nativeSrc": "3141:17:39", - "nodeType": "YulFunctionCall", - "src": "3141:17:39" - }, - { - "name": "length", - "nativeSrc": "3160:6:39", - "nodeType": "YulIdentifier", - "src": "3160:6:39" - }, - { - "name": "end", - "nativeSrc": "3168:3:39", - "nodeType": "YulIdentifier", - "src": "3168:3:39" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "3083:57:39", - "nodeType": "YulIdentifier", - "src": "3083:57:39" - }, - "nativeSrc": "3083:89:39", - "nodeType": "YulFunctionCall", - "src": "3083:89:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3074:5:39", - "nodeType": "YulIdentifier", - "src": "3074:5:39" - } - ] - } - ] - }, - "name": "abi_decode_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "2825:353:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2875:6:39", - "nodeType": "YulTypedName", - "src": "2875:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2883:3:39", - "nodeType": "YulTypedName", - "src": "2883:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "2891:5:39", - "nodeType": "YulTypedName", - "src": "2891:5:39", - "type": "" - } - ], - "src": "2825:353:39" - }, - { - "body": { - "nativeSrc": "3304:714:39", - "nodeType": "YulBlock", - "src": "3304:714:39", - "statements": [ - { - "body": { - "nativeSrc": "3350:83:39", - "nodeType": "YulBlock", - "src": "3350:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3352:77:39", - "nodeType": "YulIdentifier", - "src": "3352:77:39" - }, - "nativeSrc": "3352:79:39", - "nodeType": "YulFunctionCall", - "src": "3352:79:39" - }, - "nativeSrc": "3352:79:39", - "nodeType": "YulExpressionStatement", - "src": "3352:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3325:7:39", - "nodeType": "YulIdentifier", - "src": "3325:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3334:9:39", - "nodeType": "YulIdentifier", - "src": "3334:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3321:3:39", - "nodeType": "YulIdentifier", - "src": "3321:3:39" - }, - "nativeSrc": "3321:23:39", - "nodeType": "YulFunctionCall", - "src": "3321:23:39" - }, - { - "kind": "number", - "nativeSrc": "3346:2:39", - "nodeType": "YulLiteral", - "src": "3346:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3317:3:39", - "nodeType": "YulIdentifier", - "src": "3317:3:39" - }, - "nativeSrc": "3317:32:39", - "nodeType": "YulFunctionCall", - "src": "3317:32:39" - }, - "nativeSrc": "3314:119:39", - "nodeType": "YulIf", - "src": "3314:119:39" - }, - { - "nativeSrc": "3443:128:39", - "nodeType": "YulBlock", - "src": "3443:128:39", - "statements": [ - { - "nativeSrc": "3458:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3458:15:39", - "value": { - "kind": "number", - "nativeSrc": "3472:1:39", - "nodeType": "YulLiteral", - "src": "3472:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3462:6:39", - "nodeType": "YulTypedName", - "src": "3462:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3487:74:39", - "nodeType": "YulAssignment", - "src": "3487:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3533:9:39", - "nodeType": "YulIdentifier", - "src": "3533:9:39" - }, - { - "name": "offset", - "nativeSrc": "3544:6:39", - "nodeType": "YulIdentifier", - "src": "3544:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3529:3:39", - "nodeType": "YulIdentifier", - "src": "3529:3:39" - }, - "nativeSrc": "3529:22:39", - "nodeType": "YulFunctionCall", - "src": "3529:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3553:7:39", - "nodeType": "YulIdentifier", - "src": "3553:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "3497:31:39", - "nodeType": "YulIdentifier", - "src": "3497:31:39" - }, - "nativeSrc": "3497:64:39", - "nodeType": "YulFunctionCall", - "src": "3497:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3487:6:39", - "nodeType": "YulIdentifier", - "src": "3487:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3581:129:39", - "nodeType": "YulBlock", - "src": "3581:129:39", - "statements": [ - { - "nativeSrc": "3596:16:39", - "nodeType": "YulVariableDeclaration", - "src": "3596:16:39", - "value": { - "kind": "number", - "nativeSrc": "3610:2:39", - "nodeType": "YulLiteral", - "src": "3610:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3600:6:39", - "nodeType": "YulTypedName", - "src": "3600:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3626:74:39", - "nodeType": "YulAssignment", - "src": "3626:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3672:9:39", - "nodeType": "YulIdentifier", - "src": "3672:9:39" - }, - { - "name": "offset", - "nativeSrc": "3683:6:39", - "nodeType": "YulIdentifier", - "src": "3683:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3668:3:39", - "nodeType": "YulIdentifier", - "src": "3668:3:39" - }, - "nativeSrc": "3668:22:39", - "nodeType": "YulFunctionCall", - "src": "3668:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3692:7:39", - "nodeType": "YulIdentifier", - "src": "3692:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "3636:31:39", - "nodeType": "YulIdentifier", - "src": "3636:31:39" - }, - "nativeSrc": "3636:64:39", - "nodeType": "YulFunctionCall", - "src": "3636:64:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3626:6:39", - "nodeType": "YulIdentifier", - "src": "3626:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3720:291:39", - "nodeType": "YulBlock", - "src": "3720:291:39", - "statements": [ - { - "nativeSrc": "3735:39:39", - "nodeType": "YulVariableDeclaration", - "src": "3735:39:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3759:9:39", - "nodeType": "YulIdentifier", - "src": "3759:9:39" - }, - { - "kind": "number", - "nativeSrc": "3770:2:39", - "nodeType": "YulLiteral", - "src": "3770:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3755:3:39", - "nodeType": "YulIdentifier", - "src": "3755:3:39" - }, - "nativeSrc": "3755:18:39", - "nodeType": "YulFunctionCall", - "src": "3755:18:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3749:5:39", - "nodeType": "YulIdentifier", - "src": "3749:5:39" - }, - "nativeSrc": "3749:25:39", - "nodeType": "YulFunctionCall", - "src": "3749:25:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3739:6:39", - "nodeType": "YulTypedName", - "src": "3739:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3821:83:39", - "nodeType": "YulBlock", - "src": "3821:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "3823:77:39", - "nodeType": "YulIdentifier", - "src": "3823:77:39" - }, - "nativeSrc": "3823:79:39", - "nodeType": "YulFunctionCall", - "src": "3823:79:39" - }, - "nativeSrc": "3823:79:39", - "nodeType": "YulExpressionStatement", - "src": "3823:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3793:6:39", - "nodeType": "YulIdentifier", - "src": "3793:6:39" - }, - { - "kind": "number", - "nativeSrc": "3801:18:39", - "nodeType": "YulLiteral", - "src": "3801:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3790:2:39", - "nodeType": "YulIdentifier", - "src": "3790:2:39" - }, - "nativeSrc": "3790:30:39", - "nodeType": "YulFunctionCall", - "src": "3790:30:39" - }, - "nativeSrc": "3787:117:39", - "nodeType": "YulIf", - "src": "3787:117:39" - }, - { - "nativeSrc": "3918:83:39", - "nodeType": "YulAssignment", - "src": "3918:83:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3973:9:39", - "nodeType": "YulIdentifier", - "src": "3973:9:39" - }, - { - "name": "offset", - "nativeSrc": "3984:6:39", - "nodeType": "YulIdentifier", - "src": "3984:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3969:3:39", - "nodeType": "YulIdentifier", - "src": "3969:3:39" - }, - "nativeSrc": "3969:22:39", - "nodeType": "YulFunctionCall", - "src": "3969:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3993:7:39", - "nodeType": "YulIdentifier", - "src": "3993:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr_fromMemory", - "nativeSrc": "3928:40:39", - "nodeType": "YulIdentifier", - "src": "3928:40:39" - }, - "nativeSrc": "3928:73:39", - "nodeType": "YulFunctionCall", - "src": "3928:73:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "3918:6:39", - "nodeType": "YulIdentifier", - "src": "3918:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory", - "nativeSrc": "3184:834:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3258:9:39", - "nodeType": "YulTypedName", - "src": "3258:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3269:7:39", - "nodeType": "YulTypedName", - "src": "3269:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3281:6:39", - "nodeType": "YulTypedName", - "src": "3281:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3289:6:39", - "nodeType": "YulTypedName", - "src": "3289:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "3297:6:39", - "nodeType": "YulTypedName", - "src": "3297:6:39", - "type": "" - } - ], - "src": "3184:834:39" - }, - { - "body": { - "nativeSrc": "4089:53:39", - "nodeType": "YulBlock", - "src": "4089:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4106:3:39", - "nodeType": "YulIdentifier", - "src": "4106:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4129:5:39", - "nodeType": "YulIdentifier", - "src": "4129:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "4111:17:39", - "nodeType": "YulIdentifier", - "src": "4111:17:39" - }, - "nativeSrc": "4111:24:39", - "nodeType": "YulFunctionCall", - "src": "4111:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4099:6:39", - "nodeType": "YulIdentifier", - "src": "4099:6:39" - }, - "nativeSrc": "4099:37:39", - "nodeType": "YulFunctionCall", - "src": "4099:37:39" - }, - "nativeSrc": "4099:37:39", - "nodeType": "YulExpressionStatement", - "src": "4099:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4024:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4077:5:39", - "nodeType": "YulTypedName", - "src": "4077:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4084:3:39", - "nodeType": "YulTypedName", - "src": "4084:3:39", - "type": "" - } - ], - "src": "4024:118:39" - }, - { - "body": { - "nativeSrc": "4246:124:39", - "nodeType": "YulBlock", - "src": "4246:124:39", - "statements": [ - { - "nativeSrc": "4256:26:39", - "nodeType": "YulAssignment", - "src": "4256:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4268:9:39", - "nodeType": "YulIdentifier", - "src": "4268:9:39" - }, - { - "kind": "number", - "nativeSrc": "4279:2:39", - "nodeType": "YulLiteral", - "src": "4279:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4264:3:39", - "nodeType": "YulIdentifier", - "src": "4264:3:39" - }, - "nativeSrc": "4264:18:39", - "nodeType": "YulFunctionCall", - "src": "4264:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4256:4:39", - "nodeType": "YulIdentifier", - "src": "4256:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4336:6:39", - "nodeType": "YulIdentifier", - "src": "4336:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4349:9:39", - "nodeType": "YulIdentifier", - "src": "4349:9:39" - }, - { - "kind": "number", - "nativeSrc": "4360:1:39", - "nodeType": "YulLiteral", - "src": "4360:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4345:3:39", - "nodeType": "YulIdentifier", - "src": "4345:3:39" - }, - "nativeSrc": "4345:17:39", - "nodeType": "YulFunctionCall", - "src": "4345:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4292:43:39", - "nodeType": "YulIdentifier", - "src": "4292:43:39" - }, - "nativeSrc": "4292:71:39", - "nodeType": "YulFunctionCall", - "src": "4292:71:39" - }, - "nativeSrc": "4292:71:39", - "nodeType": "YulExpressionStatement", - "src": "4292:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "4148:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4218:9:39", - "nodeType": "YulTypedName", - "src": "4218:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4230:6:39", - "nodeType": "YulTypedName", - "src": "4230:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4241:4:39", - "nodeType": "YulTypedName", - "src": "4241:4:39", - "type": "" - } - ], - "src": "4148:222:39" - }, - { - "body": { - "nativeSrc": "4502:206:39", - "nodeType": "YulBlock", - "src": "4502:206:39", - "statements": [ - { - "nativeSrc": "4512:26:39", - "nodeType": "YulAssignment", - "src": "4512:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4524:9:39", - "nodeType": "YulIdentifier", - "src": "4524:9:39" - }, - { - "kind": "number", - "nativeSrc": "4535:2:39", - "nodeType": "YulLiteral", - "src": "4535:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4520:3:39", - "nodeType": "YulIdentifier", - "src": "4520:3:39" - }, - "nativeSrc": "4520:18:39", - "nodeType": "YulFunctionCall", - "src": "4520:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4512:4:39", - "nodeType": "YulIdentifier", - "src": "4512:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4592:6:39", - "nodeType": "YulIdentifier", - "src": "4592:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4605:9:39", - "nodeType": "YulIdentifier", - "src": "4605:9:39" - }, - { - "kind": "number", - "nativeSrc": "4616:1:39", - "nodeType": "YulLiteral", - "src": "4616:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4601:3:39", - "nodeType": "YulIdentifier", - "src": "4601:3:39" - }, - "nativeSrc": "4601:17:39", - "nodeType": "YulFunctionCall", - "src": "4601:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4548:43:39", - "nodeType": "YulIdentifier", - "src": "4548:43:39" - }, - "nativeSrc": "4548:71:39", - "nodeType": "YulFunctionCall", - "src": "4548:71:39" - }, - "nativeSrc": "4548:71:39", - "nodeType": "YulExpressionStatement", - "src": "4548:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "4673:6:39", - "nodeType": "YulIdentifier", - "src": "4673:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4686:9:39", - "nodeType": "YulIdentifier", - "src": "4686:9:39" - }, - { - "kind": "number", - "nativeSrc": "4697:2:39", - "nodeType": "YulLiteral", - "src": "4697:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4682:3:39", - "nodeType": "YulIdentifier", - "src": "4682:3:39" - }, - "nativeSrc": "4682:18:39", - "nodeType": "YulFunctionCall", - "src": "4682:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4629:43:39", - "nodeType": "YulIdentifier", - "src": "4629:43:39" - }, - "nativeSrc": "4629:72:39", - "nodeType": "YulFunctionCall", - "src": "4629:72:39" - }, - "nativeSrc": "4629:72:39", - "nodeType": "YulExpressionStatement", - "src": "4629:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", - "nativeSrc": "4376:332:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4466:9:39", - "nodeType": "YulTypedName", - "src": "4466:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4478:6:39", - "nodeType": "YulTypedName", - "src": "4478:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4486:6:39", - "nodeType": "YulTypedName", - "src": "4486:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4497:4:39", - "nodeType": "YulTypedName", - "src": "4497:4:39", - "type": "" - } - ], - "src": "4376:332:39" - }, - { - "body": { - "nativeSrc": "4772:40:39", - "nodeType": "YulBlock", - "src": "4772:40:39", - "statements": [ - { - "nativeSrc": "4783:22:39", - "nodeType": "YulAssignment", - "src": "4783:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4799:5:39", - "nodeType": "YulIdentifier", - "src": "4799:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4793:5:39", - "nodeType": "YulIdentifier", - "src": "4793:5:39" - }, - "nativeSrc": "4793:12:39", - "nodeType": "YulFunctionCall", - "src": "4793:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "4783:6:39", - "nodeType": "YulIdentifier", - "src": "4783:6:39" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "4714:98:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4755:5:39", - "nodeType": "YulTypedName", - "src": "4755:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "4765:6:39", - "nodeType": "YulTypedName", - "src": "4765:6:39", - "type": "" - } - ], - "src": "4714:98:39" - }, - { - "body": { - "nativeSrc": "4931:34:39", - "nodeType": "YulBlock", - "src": "4931:34:39", - "statements": [ - { - "nativeSrc": "4941:18:39", - "nodeType": "YulAssignment", - "src": "4941:18:39", - "value": { - "name": "pos", - "nativeSrc": "4956:3:39", - "nodeType": "YulIdentifier", - "src": "4956:3:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "4941:11:39", - "nodeType": "YulIdentifier", - "src": "4941:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "4818:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "4903:3:39", - "nodeType": "YulTypedName", - "src": "4903:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "4908:6:39", - "nodeType": "YulTypedName", - "src": "4908:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "4919:11:39", - "nodeType": "YulTypedName", - "src": "4919:11:39", - "type": "" - } - ], - "src": "4818:147:39" - }, - { - "body": { - "nativeSrc": "5079:278:39", - "nodeType": "YulBlock", - "src": "5079:278:39", - "statements": [ - { - "nativeSrc": "5089:52:39", - "nodeType": "YulVariableDeclaration", - "src": "5089:52:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5135:5:39", - "nodeType": "YulIdentifier", - "src": "5135:5:39" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "5103:31:39", - "nodeType": "YulIdentifier", - "src": "5103:31:39" - }, - "nativeSrc": "5103:38:39", - "nodeType": "YulFunctionCall", - "src": "5103:38:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "5093:6:39", - "nodeType": "YulTypedName", - "src": "5093:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5150:95:39", - "nodeType": "YulAssignment", - "src": "5150:95:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5233:3:39", - "nodeType": "YulIdentifier", - "src": "5233:3:39" - }, - { - "name": "length", - "nativeSrc": "5238:6:39", - "nodeType": "YulIdentifier", - "src": "5238:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5157:75:39", - "nodeType": "YulIdentifier", - "src": "5157:75:39" - }, - "nativeSrc": "5157:88:39", - "nodeType": "YulFunctionCall", - "src": "5157:88:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5150:3:39", - "nodeType": "YulIdentifier", - "src": "5150:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5293:5:39", - "nodeType": "YulIdentifier", - "src": "5293:5:39" - }, - { - "kind": "number", - "nativeSrc": "5300:4:39", - "nodeType": "YulLiteral", - "src": "5300:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5289:3:39", - "nodeType": "YulIdentifier", - "src": "5289:3:39" - }, - "nativeSrc": "5289:16:39", - "nodeType": "YulFunctionCall", - "src": "5289:16:39" - }, - { - "name": "pos", - "nativeSrc": "5307:3:39", - "nodeType": "YulIdentifier", - "src": "5307:3:39" - }, - { - "name": "length", - "nativeSrc": "5312:6:39", - "nodeType": "YulIdentifier", - "src": "5312:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5254:34:39", - "nodeType": "YulIdentifier", - "src": "5254:34:39" - }, - "nativeSrc": "5254:65:39", - "nodeType": "YulFunctionCall", - "src": "5254:65:39" - }, - "nativeSrc": "5254:65:39", - "nodeType": "YulExpressionStatement", - "src": "5254:65:39" - }, - { - "nativeSrc": "5328:23:39", - "nodeType": "YulAssignment", - "src": "5328:23:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5339:3:39", - "nodeType": "YulIdentifier", - "src": "5339:3:39" - }, - { - "name": "length", - "nativeSrc": "5344:6:39", - "nodeType": "YulIdentifier", - "src": "5344:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5335:3:39", - "nodeType": "YulIdentifier", - "src": "5335:3:39" - }, - "nativeSrc": "5335:16:39", - "nodeType": "YulFunctionCall", - "src": "5335:16:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5328:3:39", - "nodeType": "YulIdentifier", - "src": "5328:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "4971:386:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5060:5:39", - "nodeType": "YulTypedName", - "src": "5060:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5067:3:39", - "nodeType": "YulTypedName", - "src": "5067:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5075:3:39", - "nodeType": "YulTypedName", - "src": "5075:3:39", - "type": "" - } - ], - "src": "4971:386:39" - }, - { - "body": { - "nativeSrc": "5497:137:39", - "nodeType": "YulBlock", - "src": "5497:137:39", - "statements": [ - { - "nativeSrc": "5508:100:39", - "nodeType": "YulAssignment", - "src": "5508:100:39", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5595:6:39", - "nodeType": "YulIdentifier", - "src": "5595:6:39" - }, - { - "name": "pos", - "nativeSrc": "5604:3:39", - "nodeType": "YulIdentifier", - "src": "5604:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5515:79:39", - "nodeType": "YulIdentifier", - "src": "5515:79:39" - }, - "nativeSrc": "5515:93:39", - "nodeType": "YulFunctionCall", - "src": "5515:93:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5508:3:39", - "nodeType": "YulIdentifier", - "src": "5508:3:39" - } - ] - }, - { - "nativeSrc": "5618:10:39", - "nodeType": "YulAssignment", - "src": "5618:10:39", - "value": { - "name": "pos", - "nativeSrc": "5625:3:39", - "nodeType": "YulIdentifier", - "src": "5625:3:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5618:3:39", - "nodeType": "YulIdentifier", - "src": "5618:3:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "5363:271:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "5476:3:39", - "nodeType": "YulTypedName", - "src": "5476:3:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5482:6:39", - "nodeType": "YulTypedName", - "src": "5482:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5493:3:39", - "nodeType": "YulTypedName", - "src": "5493:3:39", - "type": "" - } - ], - "src": "5363:271:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033", - "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 0xD6BDA27500000000000000000000000000000000000000000000000000000000 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 0xD6BDA27500000000000000000000000000000000000000000000000000000000 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 MSIZE 0xE0 SMOD SWAP11 0xA9 0x24 0xD5 DUP15 PUSH16 0xC55BC0A2CF0E8F28861F1F984C33A992 PUSH5 0x659A039994 GT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER 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 0x27 0xB5 PC 0xE0 0xEF JUMPDEST DUP7 0x21 BLOCKHASH PUSH15 0x87E0A379C68E322FC4690410766900 SWAP2 0xB2 PUSH25 0x3BCA57C964736F6C634300081C003300000000000000000000 ", - "sourceMap": "4314:2231:18:-:0;;;5157:296;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5248:6;5256:5;1155:52:13;1185:14;1201:5;1155:29;;;:52;;:::i;:::-;1081:133;;5305:12:18::1;5290:28;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;5273:46;;;;;;;;::::0;::::1;5407:39;5432:13;:11;;;:13;;:::i;:::-;5407:24;;;:39;;:::i;:::-;5157:296:::0;;;4314:2231;;2264:344:14;2355:37;2374:17;2355:18;;;:37;;:::i;:::-;2425:17;2407:36;;;;;;;;;;;;2472:1;2458:4;:11;:15;2454:148;;;2489:53;2518:17;2537:4;2489:28;;;:53;;:::i;:::-;;2454:148;;;2573:18;:16;;;:18;;:::i;:::-;2454:148;2264:344;;:::o;5520:93:18:-;5574:7;5600:6;;5593:13;;5520:93;:::o;3827:142:14:-;3890:43;3912:10;:8;;;:10;;:::i;:::-;3924:8;3890:43;;;;;;;:::i;:::-;;;;;;;;3943:19;3953:8;3943:9;;;:19;;:::i;:::-;3827:142;:::o;1671:281::-;1781:1;1748:17;:29;;;:34;1744:119;;1834:17;1805:47;;;;;;;;;;;:::i;:::-;;;;;;;;1744:119;1928:17;1872:47;811:66;1899:19;;1872:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;1671:281;:::o;3900:253:19:-;3983:12;4008;4022:23;4049:6;:19;;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;;;:55;;:::i;:::-;4084:62;;;;3900:253;;;;:::o;6113:122:14:-;6175:1;6163:9;:13;6159:70;;;6199:19;;;;;;;;;;;;;;6159:70;6113:122::o;3287:120::-;3330:7;3356:38;2868:66;3383:10;;3356:26;;;:38;;:::i;:::-;:44;;;;;;;;;;;;3349:51;;3287:120;:::o;3490:217::-;3569:1;3549:22;;:8;:22;;;3545:91;;3622:1;3594:31;;;;;;;;;;;:::i;:::-;;;;;;;;3545:91;3692:8;3645:38;2868:66;3672:10;;3645:26;;;:38;;:::i;:::-;:44;;;:55;;;;;;;;;;;;;;;;;;3490:217;:::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::o;4421:582:19:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;;;:19;;:::i;:::-;4589:408;;;4862:1;4841:10;:17;:22;:49;;;;;4889:1;4867:6;:18;;;:23;4841:49;4837:119;;;4934:6;4917:24;;;;;;;;;;;:::i;:::-;;;;;;;;4837:119;4976:10;4969:17;;;;4589:408;4421:582;;;;;;:::o;5543:487::-;5694:1;5674:10;:17;:21;5670:354;;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;;;;;;;;;;;;;4314:2231:18;;;;;;;;:::o;7:75:39:-;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;4314:2231:18:-;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_2933": { - "entryPoint": null, - "id": 2933, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_checkNonPayable_2897": { - "entryPoint": 875, - "id": 2897, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_delegate_2909": { - "entryPoint": 500, - "id": 2909, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_dispatchUpgradeToAndCall_3127": { - "entryPoint": 298, - "id": 3127, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_fallback_2925": { - "entryPoint": 352, - "id": 2925, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_fallback_3098": { - "entryPoint": 14, - "id": 3098, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_implementation_2603": { - "entryPoint": 485, - "id": 2603, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_proxyAdmin_3064": { - "entryPoint": 258, - "id": 3064, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_revert_3386": { - "entryPoint": 1176, - "id": 3386, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setImplementation_2677": { - "entryPoint": 538, - "id": 2677, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@functionDelegateCall_3304": { - "entryPoint": 743, - "id": 3304, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@getAddressSlot_3643": { - "entryPoint": 1023, - "id": 3643, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getImplementation_2650": { - "entryPoint": 936, - "id": 2650, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@upgradeToAndCall_2713": { - "entryPoint": 370, - "id": 2713, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@verifyCallResultFromTarget_3344": { - "entryPoint": 1033, - "id": 3344, - "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:39", - "nodeType": "YulBlock", - "src": "0:6122:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "460:343:39", - "nodeType": "YulBlock", - "src": "460:343:39", - "statements": [ - { - "body": { - "nativeSrc": "498:83:39", - "nodeType": "YulBlock", - "src": "498:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a", - "nativeSrc": "500:77:39", - "nodeType": "YulIdentifier", - "src": "500:77:39" - }, - "nativeSrc": "500:79:39", - "nodeType": "YulFunctionCall", - "src": "500:79:39" - }, - "nativeSrc": "500:79:39", - "nodeType": "YulExpressionStatement", - "src": "500:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "476:10:39", - "nodeType": "YulIdentifier", - "src": "476:10:39" - }, - { - "name": "endIndex", - "nativeSrc": "488:8:39", - "nodeType": "YulIdentifier", - "src": "488:8:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "473:2:39", - "nodeType": "YulIdentifier", - "src": "473:2:39" - }, - "nativeSrc": "473:24:39", - "nodeType": "YulFunctionCall", - "src": "473:24:39" - }, - "nativeSrc": "470:111:39", - "nodeType": "YulIf", - "src": "470:111:39" - }, - { - "body": { - "nativeSrc": "614:83:39", - "nodeType": "YulBlock", - "src": "614:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c", - "nativeSrc": "616:77:39", - "nodeType": "YulIdentifier", - "src": "616:77:39" - }, - "nativeSrc": "616:79:39", - "nodeType": "YulFunctionCall", - "src": "616:79:39" - }, - "nativeSrc": "616:79:39", - "nodeType": "YulExpressionStatement", - "src": "616:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "endIndex", - "nativeSrc": "596:8:39", - "nodeType": "YulIdentifier", - "src": "596:8:39" - }, - { - "name": "length", - "nativeSrc": "606:6:39", - "nodeType": "YulIdentifier", - "src": "606:6:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "593:2:39", - "nodeType": "YulIdentifier", - "src": "593:2:39" - }, - "nativeSrc": "593:20:39", - "nodeType": "YulFunctionCall", - "src": "593:20:39" - }, - "nativeSrc": "590:107:39", - "nodeType": "YulIf", - "src": "590:107:39" - }, - { - "nativeSrc": "706:44:39", - "nodeType": "YulAssignment", - "src": "706:44:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "723:6:39", - "nodeType": "YulIdentifier", - "src": "723:6:39" - }, - { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "735:10:39", - "nodeType": "YulIdentifier", - "src": "735:10:39" - }, - { - "kind": "number", - "nativeSrc": "747:1:39", - "nodeType": "YulLiteral", - "src": "747:1:39", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "731:3:39", - "nodeType": "YulIdentifier", - "src": "731:3:39" - }, - "nativeSrc": "731:18:39", - "nodeType": "YulFunctionCall", - "src": "731:18:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "719:3:39", - "nodeType": "YulIdentifier", - "src": "719:3:39" - }, - "nativeSrc": "719:31:39", - "nodeType": "YulFunctionCall", - "src": "719:31:39" - }, - "variableNames": [ - { - "name": "offsetOut", - "nativeSrc": "706:9:39", - "nodeType": "YulIdentifier", - "src": "706:9:39" - } - ] - }, - { - "nativeSrc": "759:38:39", - "nodeType": "YulAssignment", - "src": "759:38:39", - "value": { - "arguments": [ - { - "name": "endIndex", - "nativeSrc": "776:8:39", - "nodeType": "YulIdentifier", - "src": "776:8:39" - }, - { - "name": "startIndex", - "nativeSrc": "786:10:39", - "nodeType": "YulIdentifier", - "src": "786:10:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "772:3:39", - "nodeType": "YulIdentifier", - "src": "772:3:39" - }, - "nativeSrc": "772:25:39", - "nodeType": "YulFunctionCall", - "src": "772:25:39" - }, - "variableNames": [ - { - "name": "lengthOut", - "nativeSrc": "759:9:39", - "nodeType": "YulIdentifier", - "src": "759:9:39" - } - ] - } - ] - }, - "name": "calldata_array_index_range_access_t_bytes_calldata_ptr", - "nativeSrc": "334:469:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "398:6:39", - "nodeType": "YulTypedName", - "src": "398:6:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "406:6:39", - "nodeType": "YulTypedName", - "src": "406:6:39", - "type": "" - }, - { - "name": "startIndex", - "nativeSrc": "414:10:39", - "nodeType": "YulTypedName", - "src": "414:10:39", - "type": "" - }, - { - "name": "endIndex", - "nativeSrc": "426:8:39", - "nodeType": "YulTypedName", - "src": "426:8:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "offsetOut", - "nativeSrc": "439:9:39", - "nodeType": "YulTypedName", - "src": "439:9:39", - "type": "" - }, - { - "name": "lengthOut", - "nativeSrc": "450:9:39", - "nodeType": "YulTypedName", - "src": "450:9:39", - "type": "" - } - ], - "src": "334:469:39" - }, - { - "body": { - "nativeSrc": "898:28:39", - "nodeType": "YulBlock", - "src": "898:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "915:1:39", - "nodeType": "YulLiteral", - "src": "915:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "918:1:39", - "nodeType": "YulLiteral", - "src": "918:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "908:6:39", - "nodeType": "YulIdentifier", - "src": "908:6:39" - }, - "nativeSrc": "908:12:39", - "nodeType": "YulFunctionCall", - "src": "908:12:39" - }, - "nativeSrc": "908:12:39", - "nodeType": "YulExpressionStatement", - "src": "908:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "809:117:39", - "nodeType": "YulFunctionDefinition", - "src": "809:117:39" - }, - { - "body": { - "nativeSrc": "1021:28:39", - "nodeType": "YulBlock", - "src": "1021:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1038:1:39", - "nodeType": "YulLiteral", - "src": "1038:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1041:1:39", - "nodeType": "YulLiteral", - "src": "1041:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1031:6:39", - "nodeType": "YulIdentifier", - "src": "1031:6:39" - }, - "nativeSrc": "1031:12:39", - "nodeType": "YulFunctionCall", - "src": "1031:12:39" - }, - "nativeSrc": "1031:12:39", - "nodeType": "YulExpressionStatement", - "src": "1031:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "932:117:39", - "nodeType": "YulFunctionDefinition", - "src": "932:117:39" - }, - { - "body": { - "nativeSrc": "1100:81:39", - "nodeType": "YulBlock", - "src": "1100:81:39", - "statements": [ - { - "nativeSrc": "1110:65:39", - "nodeType": "YulAssignment", - "src": "1110:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1125:5:39", - "nodeType": "YulIdentifier", - "src": "1125:5:39" - }, - { - "kind": "number", - "nativeSrc": "1132:42:39", - "nodeType": "YulLiteral", - "src": "1132:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1121:3:39", - "nodeType": "YulIdentifier", - "src": "1121:3:39" - }, - "nativeSrc": "1121:54:39", - "nodeType": "YulFunctionCall", - "src": "1121:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1110:7:39", - "nodeType": "YulIdentifier", - "src": "1110:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "1055:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1082:5:39", - "nodeType": "YulTypedName", - "src": "1082:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1092:7:39", - "nodeType": "YulTypedName", - "src": "1092:7:39", - "type": "" - } - ], - "src": "1055:126:39" - }, - { - "body": { - "nativeSrc": "1240:51:39", - "nodeType": "YulBlock", - "src": "1240:51:39", - "statements": [ - { - "nativeSrc": "1250:35:39", - "nodeType": "YulAssignment", - "src": "1250:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1279:5:39", - "nodeType": "YulIdentifier", - "src": "1279:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "1261:17:39", - "nodeType": "YulIdentifier", - "src": "1261:17:39" - }, - "nativeSrc": "1261:24:39", - "nodeType": "YulFunctionCall", - "src": "1261:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1250:7:39", - "nodeType": "YulIdentifier", - "src": "1250:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address_payable", - "nativeSrc": "1187:104:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1222:5:39", - "nodeType": "YulTypedName", - "src": "1222:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1232:7:39", - "nodeType": "YulTypedName", - "src": "1232:7:39", - "type": "" - } - ], - "src": "1187:104:39" - }, - { - "body": { - "nativeSrc": "1348:87:39", - "nodeType": "YulBlock", - "src": "1348:87:39", - "statements": [ - { - "body": { - "nativeSrc": "1413:16:39", - "nodeType": "YulBlock", - "src": "1413:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1422:1:39", - "nodeType": "YulLiteral", - "src": "1422:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1425:1:39", - "nodeType": "YulLiteral", - "src": "1425:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1415:6:39", - "nodeType": "YulIdentifier", - "src": "1415:6:39" - }, - "nativeSrc": "1415:12:39", - "nodeType": "YulFunctionCall", - "src": "1415:12:39" - }, - "nativeSrc": "1415:12:39", - "nodeType": "YulExpressionStatement", - "src": "1415:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1371:5:39", - "nodeType": "YulIdentifier", - "src": "1371:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1404:5:39", - "nodeType": "YulIdentifier", - "src": "1404:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address_payable", - "nativeSrc": "1378:25:39", - "nodeType": "YulIdentifier", - "src": "1378:25:39" - }, - "nativeSrc": "1378:32:39", - "nodeType": "YulFunctionCall", - "src": "1378:32:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1368:2:39", - "nodeType": "YulIdentifier", - "src": "1368:2:39" - }, - "nativeSrc": "1368:43:39", - "nodeType": "YulFunctionCall", - "src": "1368:43:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1361:6:39", - "nodeType": "YulIdentifier", - "src": "1361:6:39" - }, - "nativeSrc": "1361:51:39", - "nodeType": "YulFunctionCall", - "src": "1361:51:39" - }, - "nativeSrc": "1358:71:39", - "nodeType": "YulIf", - "src": "1358:71:39" - } - ] - }, - "name": "validator_revert_t_address_payable", - "nativeSrc": "1297:138:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1341:5:39", - "nodeType": "YulTypedName", - "src": "1341:5:39", - "type": "" - } - ], - "src": "1297:138:39" - }, - { - "body": { - "nativeSrc": "1501:95:39", - "nodeType": "YulBlock", - "src": "1501:95:39", - "statements": [ - { - "nativeSrc": "1511:29:39", - "nodeType": "YulAssignment", - "src": "1511:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1533:6:39", - "nodeType": "YulIdentifier", - "src": "1533:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1520:12:39", - "nodeType": "YulIdentifier", - "src": "1520:12:39" - }, - "nativeSrc": "1520:20:39", - "nodeType": "YulFunctionCall", - "src": "1520:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1511:5:39", - "nodeType": "YulIdentifier", - "src": "1511:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1584:5:39", - "nodeType": "YulIdentifier", - "src": "1584:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address_payable", - "nativeSrc": "1549:34:39", - "nodeType": "YulIdentifier", - "src": "1549:34:39" - }, - "nativeSrc": "1549:41:39", - "nodeType": "YulFunctionCall", - "src": "1549:41:39" - }, - "nativeSrc": "1549:41:39", - "nodeType": "YulExpressionStatement", - "src": "1549:41:39" - } - ] - }, - "name": "abi_decode_t_address_payable", - "nativeSrc": "1441:155:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1479:6:39", - "nodeType": "YulTypedName", - "src": "1479:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1487:3:39", - "nodeType": "YulTypedName", - "src": "1487:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1495:5:39", - "nodeType": "YulTypedName", - "src": "1495:5:39", - "type": "" - } - ], - "src": "1441:155:39" - }, - { - "body": { - "nativeSrc": "1691:28:39", - "nodeType": "YulBlock", - "src": "1691:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1708:1:39", - "nodeType": "YulLiteral", - "src": "1708:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1711:1:39", - "nodeType": "YulLiteral", - "src": "1711:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1701:6:39", - "nodeType": "YulIdentifier", - "src": "1701:6:39" - }, - "nativeSrc": "1701:12:39", - "nodeType": "YulFunctionCall", - "src": "1701:12:39" - }, - "nativeSrc": "1701:12:39", - "nodeType": "YulExpressionStatement", - "src": "1701:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "1602:117:39", - "nodeType": "YulFunctionDefinition", - "src": "1602:117:39" - }, - { - "body": { - "nativeSrc": "1814:28:39", - "nodeType": "YulBlock", - "src": "1814:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1831:1:39", - "nodeType": "YulLiteral", - "src": "1831:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1834:1:39", - "nodeType": "YulLiteral", - "src": "1834:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1824:6:39", - "nodeType": "YulIdentifier", - "src": "1824:6:39" - }, - "nativeSrc": "1824:12:39", - "nodeType": "YulFunctionCall", - "src": "1824:12:39" - }, - "nativeSrc": "1824:12:39", - "nodeType": "YulExpressionStatement", - "src": "1824:12:39" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "1725:117:39", - "nodeType": "YulFunctionDefinition", - "src": "1725:117:39" - }, - { - "body": { - "nativeSrc": "1896:54:39", - "nodeType": "YulBlock", - "src": "1896:54:39", - "statements": [ - { - "nativeSrc": "1906:38:39", - "nodeType": "YulAssignment", - "src": "1906:38:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1924:5:39", - "nodeType": "YulIdentifier", - "src": "1924:5:39" - }, - { - "kind": "number", - "nativeSrc": "1931:2:39", - "nodeType": "YulLiteral", - "src": "1931:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1920:3:39", - "nodeType": "YulIdentifier", - "src": "1920:3:39" - }, - "nativeSrc": "1920:14:39", - "nodeType": "YulFunctionCall", - "src": "1920:14:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1940:2:39", - "nodeType": "YulLiteral", - "src": "1940:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "1936:3:39", - "nodeType": "YulIdentifier", - "src": "1936:3:39" - }, - "nativeSrc": "1936:7:39", - "nodeType": "YulFunctionCall", - "src": "1936:7:39" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1916:3:39", - "nodeType": "YulIdentifier", - "src": "1916:3:39" - }, - "nativeSrc": "1916:28:39", - "nodeType": "YulFunctionCall", - "src": "1916:28:39" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "1906:6:39", - "nodeType": "YulIdentifier", - "src": "1906:6:39" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "1848:102:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1879:5:39", - "nodeType": "YulTypedName", - "src": "1879:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "1889:6:39", - "nodeType": "YulTypedName", - "src": "1889:6:39", - "type": "" - } - ], - "src": "1848:102:39" - }, - { - "body": { - "nativeSrc": "1984:152:39", - "nodeType": "YulBlock", - "src": "1984:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2001:1:39", - "nodeType": "YulLiteral", - "src": "2001:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2004:77:39", - "nodeType": "YulLiteral", - "src": "2004:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1994:6:39", - "nodeType": "YulIdentifier", - "src": "1994:6:39" - }, - "nativeSrc": "1994:88:39", - "nodeType": "YulFunctionCall", - "src": "1994:88:39" - }, - "nativeSrc": "1994:88:39", - "nodeType": "YulExpressionStatement", - "src": "1994:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2098:1:39", - "nodeType": "YulLiteral", - "src": "2098:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "2101:4:39", - "nodeType": "YulLiteral", - "src": "2101:4:39", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2091:6:39", - "nodeType": "YulIdentifier", - "src": "2091:6:39" - }, - "nativeSrc": "2091:15:39", - "nodeType": "YulFunctionCall", - "src": "2091:15:39" - }, - "nativeSrc": "2091:15:39", - "nodeType": "YulExpressionStatement", - "src": "2091:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2122:1:39", - "nodeType": "YulLiteral", - "src": "2122:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2125:4:39", - "nodeType": "YulLiteral", - "src": "2125:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2115:6:39", - "nodeType": "YulIdentifier", - "src": "2115:6:39" - }, - "nativeSrc": "2115:15:39", - "nodeType": "YulFunctionCall", - "src": "2115:15:39" - }, - "nativeSrc": "2115:15:39", - "nodeType": "YulExpressionStatement", - "src": "2115:15:39" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "1956:180:39", - "nodeType": "YulFunctionDefinition", - "src": "1956:180:39" - }, - { - "body": { - "nativeSrc": "2185:238:39", - "nodeType": "YulBlock", - "src": "2185:238:39", - "statements": [ - { - "nativeSrc": "2195:58:39", - "nodeType": "YulVariableDeclaration", - "src": "2195:58:39", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "2217:6:39", - "nodeType": "YulIdentifier", - "src": "2217:6:39" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "2247:4:39", - "nodeType": "YulIdentifier", - "src": "2247:4:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2225:21:39", - "nodeType": "YulIdentifier", - "src": "2225:21:39" - }, - "nativeSrc": "2225:27:39", - "nodeType": "YulFunctionCall", - "src": "2225:27:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2213:3:39", - "nodeType": "YulIdentifier", - "src": "2213:3:39" - }, - "nativeSrc": "2213:40:39", - "nodeType": "YulFunctionCall", - "src": "2213:40:39" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "2199:10:39", - "nodeType": "YulTypedName", - "src": "2199:10:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2364:22:39", - "nodeType": "YulBlock", - "src": "2364:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "2366:16:39", - "nodeType": "YulIdentifier", - "src": "2366:16:39" - }, - "nativeSrc": "2366:18:39", - "nodeType": "YulFunctionCall", - "src": "2366:18:39" - }, - "nativeSrc": "2366:18:39", - "nodeType": "YulExpressionStatement", - "src": "2366:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "2307:10:39", - "nodeType": "YulIdentifier", - "src": "2307:10:39" - }, - { - "kind": "number", - "nativeSrc": "2319:18:39", - "nodeType": "YulLiteral", - "src": "2319:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2304:2:39", - "nodeType": "YulIdentifier", - "src": "2304:2:39" - }, - "nativeSrc": "2304:34:39", - "nodeType": "YulFunctionCall", - "src": "2304:34:39" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "2343:10:39", - "nodeType": "YulIdentifier", - "src": "2343:10:39" - }, - { - "name": "memPtr", - "nativeSrc": "2355:6:39", - "nodeType": "YulIdentifier", - "src": "2355:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "2340:2:39", - "nodeType": "YulIdentifier", - "src": "2340:2:39" - }, - "nativeSrc": "2340:22:39", - "nodeType": "YulFunctionCall", - "src": "2340:22:39" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "2301:2:39", - "nodeType": "YulIdentifier", - "src": "2301:2:39" - }, - "nativeSrc": "2301:62:39", - "nodeType": "YulFunctionCall", - "src": "2301:62:39" - }, - "nativeSrc": "2298:88:39", - "nodeType": "YulIf", - "src": "2298:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2402:2:39", - "nodeType": "YulLiteral", - "src": "2402:2:39", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "2406:10:39", - "nodeType": "YulIdentifier", - "src": "2406:10:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2395:6:39", - "nodeType": "YulIdentifier", - "src": "2395:6:39" - }, - "nativeSrc": "2395:22:39", - "nodeType": "YulFunctionCall", - "src": "2395:22:39" - }, - "nativeSrc": "2395:22:39", - "nodeType": "YulExpressionStatement", - "src": "2395:22:39" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "2142:281:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "2171:6:39", - "nodeType": "YulTypedName", - "src": "2171:6:39", - "type": "" - }, - { - "name": "size", - "nativeSrc": "2179:4:39", - "nodeType": "YulTypedName", - "src": "2179:4:39", - "type": "" - } - ], - "src": "2142:281:39" - }, - { - "body": { - "nativeSrc": "2470:88:39", - "nodeType": "YulBlock", - "src": "2470:88:39", - "statements": [ - { - "nativeSrc": "2480:30:39", - "nodeType": "YulAssignment", - "src": "2480:30:39", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "2490:18:39", - "nodeType": "YulIdentifier", - "src": "2490:18:39" - }, - "nativeSrc": "2490:20:39", - "nodeType": "YulFunctionCall", - "src": "2490:20:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "2480:6:39", - "nodeType": "YulIdentifier", - "src": "2480:6:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "2539:6:39", - "nodeType": "YulIdentifier", - "src": "2539:6:39" - }, - { - "name": "size", - "nativeSrc": "2547:4:39", - "nodeType": "YulIdentifier", - "src": "2547:4:39" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "2519:19:39", - "nodeType": "YulIdentifier", - "src": "2519:19:39" - }, - "nativeSrc": "2519:33:39", - "nodeType": "YulFunctionCall", - "src": "2519:33:39" - }, - "nativeSrc": "2519:33:39", - "nodeType": "YulExpressionStatement", - "src": "2519:33:39" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "2429:129:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "2454:4:39", - "nodeType": "YulTypedName", - "src": "2454:4:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "2463:6:39", - "nodeType": "YulTypedName", - "src": "2463:6:39", - "type": "" - } - ], - "src": "2429:129:39" - }, - { - "body": { - "nativeSrc": "2630:241:39", - "nodeType": "YulBlock", - "src": "2630:241:39", - "statements": [ - { - "body": { - "nativeSrc": "2735:22:39", - "nodeType": "YulBlock", - "src": "2735:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "2737:16:39", - "nodeType": "YulIdentifier", - "src": "2737:16:39" - }, - "nativeSrc": "2737:18:39", - "nodeType": "YulFunctionCall", - "src": "2737:18:39" - }, - "nativeSrc": "2737:18:39", - "nodeType": "YulExpressionStatement", - "src": "2737:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2707:6:39", - "nodeType": "YulIdentifier", - "src": "2707:6:39" - }, - { - "kind": "number", - "nativeSrc": "2715:18:39", - "nodeType": "YulLiteral", - "src": "2715:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2704:2:39", - "nodeType": "YulIdentifier", - "src": "2704:2:39" - }, - "nativeSrc": "2704:30:39", - "nodeType": "YulFunctionCall", - "src": "2704:30:39" - }, - "nativeSrc": "2701:56:39", - "nodeType": "YulIf", - "src": "2701:56:39" - }, - { - "nativeSrc": "2767:37:39", - "nodeType": "YulAssignment", - "src": "2767:37:39", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2797:6:39", - "nodeType": "YulIdentifier", - "src": "2797:6:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "2775:21:39", - "nodeType": "YulIdentifier", - "src": "2775:21:39" - }, - "nativeSrc": "2775:29:39", - "nodeType": "YulFunctionCall", - "src": "2775:29:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2767:4:39", - "nodeType": "YulIdentifier", - "src": "2767:4:39" - } - ] - }, - { - "nativeSrc": "2841:23:39", - "nodeType": "YulAssignment", - "src": "2841:23:39", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "2853:4:39", - "nodeType": "YulIdentifier", - "src": "2853:4:39" - }, - { - "kind": "number", - "nativeSrc": "2859:4:39", - "nodeType": "YulLiteral", - "src": "2859:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2849:3:39", - "nodeType": "YulIdentifier", - "src": "2849:3:39" - }, - "nativeSrc": "2849:15:39", - "nodeType": "YulFunctionCall", - "src": "2849:15:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "2841:4:39", - "nodeType": "YulIdentifier", - "src": "2841:4:39" - } - ] - } - ] - }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "2564:307:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "2614:6:39", - "nodeType": "YulTypedName", - "src": "2614:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "2625:4:39", - "nodeType": "YulTypedName", - "src": "2625:4:39", - "type": "" - } - ], - "src": "2564:307:39" - }, - { - "body": { - "nativeSrc": "2941:84:39", - "nodeType": "YulBlock", - "src": "2941:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2965:3:39", - "nodeType": "YulIdentifier", - "src": "2965:3:39" - }, - { - "name": "src", - "nativeSrc": "2970:3:39", - "nodeType": "YulIdentifier", - "src": "2970:3:39" - }, - { - "name": "length", - "nativeSrc": "2975:6:39", - "nodeType": "YulIdentifier", - "src": "2975:6:39" - } - ], - "functionName": { - "name": "calldatacopy", - "nativeSrc": "2952:12:39", - "nodeType": "YulIdentifier", - "src": "2952:12:39" - }, - "nativeSrc": "2952:30:39", - "nodeType": "YulFunctionCall", - "src": "2952:30:39" - }, - "nativeSrc": "2952:30:39", - "nodeType": "YulExpressionStatement", - "src": "2952:30:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "3002:3:39", - "nodeType": "YulIdentifier", - "src": "3002:3:39" - }, - { - "name": "length", - "nativeSrc": "3007:6:39", - "nodeType": "YulIdentifier", - "src": "3007:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2998:3:39", - "nodeType": "YulIdentifier", - "src": "2998:3:39" - }, - "nativeSrc": "2998:16:39", - "nodeType": "YulFunctionCall", - "src": "2998:16:39" - }, - { - "kind": "number", - "nativeSrc": "3016:1:39", - "nodeType": "YulLiteral", - "src": "3016:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2991:6:39", - "nodeType": "YulIdentifier", - "src": "2991:6:39" - }, - "nativeSrc": "2991:27:39", - "nodeType": "YulFunctionCall", - "src": "2991:27:39" - }, - "nativeSrc": "2991:27:39", - "nodeType": "YulExpressionStatement", - "src": "2991:27:39" - } - ] - }, - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "2877:148:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "2923:3:39", - "nodeType": "YulTypedName", - "src": "2923:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "2928:3:39", - "nodeType": "YulTypedName", - "src": "2928:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2933:6:39", - "nodeType": "YulTypedName", - "src": "2933:6:39", - "type": "" - } - ], - "src": "2877:148:39" - }, - { - "body": { - "nativeSrc": "3114:340:39", - "nodeType": "YulBlock", - "src": "3114:340:39", - "statements": [ - { - "nativeSrc": "3124:74:39", - "nodeType": "YulAssignment", - "src": "3124:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "3190:6:39", - "nodeType": "YulIdentifier", - "src": "3190:6:39" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "3149:40:39", - "nodeType": "YulIdentifier", - "src": "3149:40:39" - }, - "nativeSrc": "3149:48:39", - "nodeType": "YulFunctionCall", - "src": "3149:48:39" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "3133:15:39", - "nodeType": "YulIdentifier", - "src": "3133:15:39" - }, - "nativeSrc": "3133:65:39", - "nodeType": "YulFunctionCall", - "src": "3133:65:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3124:5:39", - "nodeType": "YulIdentifier", - "src": "3124:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "3214:5:39", - "nodeType": "YulIdentifier", - "src": "3214:5:39" - }, - { - "name": "length", - "nativeSrc": "3221:6:39", - "nodeType": "YulIdentifier", - "src": "3221:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3207:6:39", - "nodeType": "YulIdentifier", - "src": "3207:6:39" - }, - "nativeSrc": "3207:21:39", - "nodeType": "YulFunctionCall", - "src": "3207:21:39" - }, - "nativeSrc": "3207:21:39", - "nodeType": "YulExpressionStatement", - "src": "3207:21:39" - }, - { - "nativeSrc": "3237:27:39", - "nodeType": "YulVariableDeclaration", - "src": "3237:27:39", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "3252:5:39", - "nodeType": "YulIdentifier", - "src": "3252:5:39" - }, - { - "kind": "number", - "nativeSrc": "3259:4:39", - "nodeType": "YulLiteral", - "src": "3259:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3248:3:39", - "nodeType": "YulIdentifier", - "src": "3248:3:39" - }, - "nativeSrc": "3248:16:39", - "nodeType": "YulFunctionCall", - "src": "3248:16:39" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "3241:3:39", - "nodeType": "YulTypedName", - "src": "3241:3:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3302:83:39", - "nodeType": "YulBlock", - "src": "3302:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "3304:77:39", - "nodeType": "YulIdentifier", - "src": "3304:77:39" - }, - "nativeSrc": "3304:79:39", - "nodeType": "YulFunctionCall", - "src": "3304:79:39" - }, - "nativeSrc": "3304:79:39", - "nodeType": "YulExpressionStatement", - "src": "3304:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "3283:3:39", - "nodeType": "YulIdentifier", - "src": "3283:3:39" - }, - { - "name": "length", - "nativeSrc": "3288:6:39", - "nodeType": "YulIdentifier", - "src": "3288:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3279:3:39", - "nodeType": "YulIdentifier", - "src": "3279:3:39" - }, - "nativeSrc": "3279:16:39", - "nodeType": "YulFunctionCall", - "src": "3279:16:39" - }, - { - "name": "end", - "nativeSrc": "3297:3:39", - "nodeType": "YulIdentifier", - "src": "3297:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3276:2:39", - "nodeType": "YulIdentifier", - "src": "3276:2:39" - }, - "nativeSrc": "3276:25:39", - "nodeType": "YulFunctionCall", - "src": "3276:25:39" - }, - "nativeSrc": "3273:112:39", - "nodeType": "YulIf", - "src": "3273:112:39" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "3431:3:39", - "nodeType": "YulIdentifier", - "src": "3431:3:39" - }, - { - "name": "dst", - "nativeSrc": "3436:3:39", - "nodeType": "YulIdentifier", - "src": "3436:3:39" - }, - { - "name": "length", - "nativeSrc": "3441:6:39", - "nodeType": "YulIdentifier", - "src": "3441:6:39" - } - ], - "functionName": { - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "3394:36:39", - "nodeType": "YulIdentifier", - "src": "3394:36:39" - }, - "nativeSrc": "3394:54:39", - "nodeType": "YulFunctionCall", - "src": "3394:54:39" - }, - "nativeSrc": "3394:54:39", - "nodeType": "YulExpressionStatement", - "src": "3394:54:39" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "3031:423:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "3087:3:39", - "nodeType": "YulTypedName", - "src": "3087:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3092:6:39", - "nodeType": "YulTypedName", - "src": "3092:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3100:3:39", - "nodeType": "YulTypedName", - "src": "3100:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "3108:5:39", - "nodeType": "YulTypedName", - "src": "3108:5:39", - "type": "" - } - ], - "src": "3031:423:39" - }, - { - "body": { - "nativeSrc": "3534:277:39", - "nodeType": "YulBlock", - "src": "3534:277:39", - "statements": [ - { - "body": { - "nativeSrc": "3583:83:39", - "nodeType": "YulBlock", - "src": "3583:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "3585:77:39", - "nodeType": "YulIdentifier", - "src": "3585:77:39" - }, - "nativeSrc": "3585:79:39", - "nodeType": "YulFunctionCall", - "src": "3585:79:39" - }, - "nativeSrc": "3585:79:39", - "nodeType": "YulExpressionStatement", - "src": "3585:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3562:6:39", - "nodeType": "YulIdentifier", - "src": "3562:6:39" - }, - { - "kind": "number", - "nativeSrc": "3570:4:39", - "nodeType": "YulLiteral", - "src": "3570:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3558:3:39", - "nodeType": "YulIdentifier", - "src": "3558:3:39" - }, - "nativeSrc": "3558:17:39", - "nodeType": "YulFunctionCall", - "src": "3558:17:39" - }, - { - "name": "end", - "nativeSrc": "3577:3:39", - "nodeType": "YulIdentifier", - "src": "3577:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3554:3:39", - "nodeType": "YulIdentifier", - "src": "3554:3:39" - }, - "nativeSrc": "3554:27:39", - "nodeType": "YulFunctionCall", - "src": "3554:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3547:6:39", - "nodeType": "YulIdentifier", - "src": "3547:6:39" - }, - "nativeSrc": "3547:35:39", - "nodeType": "YulFunctionCall", - "src": "3547:35:39" - }, - "nativeSrc": "3544:122:39", - "nodeType": "YulIf", - "src": "3544:122:39" - }, - { - "nativeSrc": "3675:34:39", - "nodeType": "YulVariableDeclaration", - "src": "3675:34:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3702:6:39", - "nodeType": "YulIdentifier", - "src": "3702:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3689:12:39", - "nodeType": "YulIdentifier", - "src": "3689:12:39" - }, - "nativeSrc": "3689:20:39", - "nodeType": "YulFunctionCall", - "src": "3689:20:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "3679:6:39", - "nodeType": "YulTypedName", - "src": "3679:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3718:87:39", - "nodeType": "YulAssignment", - "src": "3718:87:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3778:6:39", - "nodeType": "YulIdentifier", - "src": "3778:6:39" - }, - { - "kind": "number", - "nativeSrc": "3786:4:39", - "nodeType": "YulLiteral", - "src": "3786:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3774:3:39", - "nodeType": "YulIdentifier", - "src": "3774:3:39" - }, - "nativeSrc": "3774:17:39", - "nodeType": "YulFunctionCall", - "src": "3774:17:39" - }, - { - "name": "length", - "nativeSrc": "3793:6:39", - "nodeType": "YulIdentifier", - "src": "3793:6:39" - }, - { - "name": "end", - "nativeSrc": "3801:3:39", - "nodeType": "YulIdentifier", - "src": "3801:3:39" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "3727:46:39", - "nodeType": "YulIdentifier", - "src": "3727:46:39" - }, - "nativeSrc": "3727:78:39", - "nodeType": "YulFunctionCall", - "src": "3727:78:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3718:5:39", - "nodeType": "YulIdentifier", - "src": "3718:5:39" - } - ] - } - ] - }, - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "3473:338:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3512:6:39", - "nodeType": "YulTypedName", - "src": "3512:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3520:3:39", - "nodeType": "YulTypedName", - "src": "3520:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "3528:5:39", - "nodeType": "YulTypedName", - "src": "3528:5:39", - "type": "" - } - ], - "src": "3473:338:39" - }, - { - "body": { - "nativeSrc": "3917:568:39", - "nodeType": "YulBlock", - "src": "3917:568:39", - "statements": [ - { - "body": { - "nativeSrc": "3963:83:39", - "nodeType": "YulBlock", - "src": "3963:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3965:77:39", - "nodeType": "YulIdentifier", - "src": "3965:77:39" - }, - "nativeSrc": "3965:79:39", - "nodeType": "YulFunctionCall", - "src": "3965:79:39" - }, - "nativeSrc": "3965:79:39", - "nodeType": "YulExpressionStatement", - "src": "3965:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3938:7:39", - "nodeType": "YulIdentifier", - "src": "3938:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3947:9:39", - "nodeType": "YulIdentifier", - "src": "3947:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3934:3:39", - "nodeType": "YulIdentifier", - "src": "3934:3:39" - }, - "nativeSrc": "3934:23:39", - "nodeType": "YulFunctionCall", - "src": "3934:23:39" - }, - { - "kind": "number", - "nativeSrc": "3959:2:39", - "nodeType": "YulLiteral", - "src": "3959:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3930:3:39", - "nodeType": "YulIdentifier", - "src": "3930:3:39" - }, - "nativeSrc": "3930:32:39", - "nodeType": "YulFunctionCall", - "src": "3930:32:39" - }, - "nativeSrc": "3927:119:39", - "nodeType": "YulIf", - "src": "3927:119:39" - }, - { - "nativeSrc": "4056:125:39", - "nodeType": "YulBlock", - "src": "4056:125:39", - "statements": [ - { - "nativeSrc": "4071:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4071:15:39", - "value": { - "kind": "number", - "nativeSrc": "4085:1:39", - "nodeType": "YulLiteral", - "src": "4085:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4075:6:39", - "nodeType": "YulTypedName", - "src": "4075:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4100:71:39", - "nodeType": "YulAssignment", - "src": "4100:71:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4143:9:39", - "nodeType": "YulIdentifier", - "src": "4143:9:39" - }, - { - "name": "offset", - "nativeSrc": "4154:6:39", - "nodeType": "YulIdentifier", - "src": "4154:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4139:3:39", - "nodeType": "YulIdentifier", - "src": "4139:3:39" - }, - "nativeSrc": "4139:22:39", - "nodeType": "YulFunctionCall", - "src": "4139:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4163:7:39", - "nodeType": "YulIdentifier", - "src": "4163:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_payable", - "nativeSrc": "4110:28:39", - "nodeType": "YulIdentifier", - "src": "4110:28:39" - }, - "nativeSrc": "4110:61:39", - "nodeType": "YulFunctionCall", - "src": "4110:61:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4100:6:39", - "nodeType": "YulIdentifier", - "src": "4100:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4191:287:39", - "nodeType": "YulBlock", - "src": "4191:287:39", - "statements": [ - { - "nativeSrc": "4206:46:39", - "nodeType": "YulVariableDeclaration", - "src": "4206:46:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4237:9:39", - "nodeType": "YulIdentifier", - "src": "4237:9:39" - }, - { - "kind": "number", - "nativeSrc": "4248:2:39", - "nodeType": "YulLiteral", - "src": "4248:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4233:3:39", - "nodeType": "YulIdentifier", - "src": "4233:3:39" - }, - "nativeSrc": "4233:18:39", - "nodeType": "YulFunctionCall", - "src": "4233:18:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4220:12:39", - "nodeType": "YulIdentifier", - "src": "4220:12:39" - }, - "nativeSrc": "4220:32:39", - "nodeType": "YulFunctionCall", - "src": "4220:32:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4210:6:39", - "nodeType": "YulTypedName", - "src": "4210:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "4299:83:39", - "nodeType": "YulBlock", - "src": "4299:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "4301:77:39", - "nodeType": "YulIdentifier", - "src": "4301:77:39" - }, - "nativeSrc": "4301:79:39", - "nodeType": "YulFunctionCall", - "src": "4301:79:39" - }, - "nativeSrc": "4301:79:39", - "nodeType": "YulExpressionStatement", - "src": "4301:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "4271:6:39", - "nodeType": "YulIdentifier", - "src": "4271:6:39" - }, - { - "kind": "number", - "nativeSrc": "4279:18:39", - "nodeType": "YulLiteral", - "src": "4279:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "4268:2:39", - "nodeType": "YulIdentifier", - "src": "4268:2:39" - }, - "nativeSrc": "4268:30:39", - "nodeType": "YulFunctionCall", - "src": "4268:30:39" - }, - "nativeSrc": "4265:117:39", - "nodeType": "YulIf", - "src": "4265:117:39" - }, - { - "nativeSrc": "4396:72:39", - "nodeType": "YulAssignment", - "src": "4396:72:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4440:9:39", - "nodeType": "YulIdentifier", - "src": "4440:9:39" - }, - { - "name": "offset", - "nativeSrc": "4451:6:39", - "nodeType": "YulIdentifier", - "src": "4451:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4436:3:39", - "nodeType": "YulIdentifier", - "src": "4436:3:39" - }, - "nativeSrc": "4436:22:39", - "nodeType": "YulFunctionCall", - "src": "4436:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4460:7:39", - "nodeType": "YulIdentifier", - "src": "4460:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "4406:29:39", - "nodeType": "YulIdentifier", - "src": "4406:29:39" - }, - "nativeSrc": "4406:62:39", - "nodeType": "YulFunctionCall", - "src": "4406:62:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4396:6:39", - "nodeType": "YulIdentifier", - "src": "4396:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_payablet_bytes_memory_ptr", - "nativeSrc": "3817:668:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3879:9:39", - "nodeType": "YulTypedName", - "src": "3879:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3890:7:39", - "nodeType": "YulTypedName", - "src": "3890:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3902:6:39", - "nodeType": "YulTypedName", - "src": "3902:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3910:6:39", - "nodeType": "YulTypedName", - "src": "3910:6:39", - "type": "" - } - ], - "src": "3817:668:39" - }, - { - "body": { - "nativeSrc": "4536:51:39", - "nodeType": "YulBlock", - "src": "4536:51:39", - "statements": [ - { - "nativeSrc": "4546:35:39", - "nodeType": "YulAssignment", - "src": "4546:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4575:5:39", - "nodeType": "YulIdentifier", - "src": "4575:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "4557:17:39", - "nodeType": "YulIdentifier", - "src": "4557:17:39" - }, - "nativeSrc": "4557:24:39", - "nodeType": "YulFunctionCall", - "src": "4557:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "4546:7:39", - "nodeType": "YulIdentifier", - "src": "4546:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "4491:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4518:5:39", - "nodeType": "YulTypedName", - "src": "4518:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "4528:7:39", - "nodeType": "YulTypedName", - "src": "4528:7:39", - "type": "" - } - ], - "src": "4491:96:39" - }, - { - "body": { - "nativeSrc": "4658:53:39", - "nodeType": "YulBlock", - "src": "4658:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4675:3:39", - "nodeType": "YulIdentifier", - "src": "4675:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4698:5:39", - "nodeType": "YulIdentifier", - "src": "4698:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "4680:17:39", - "nodeType": "YulIdentifier", - "src": "4680:17:39" - }, - "nativeSrc": "4680:24:39", - "nodeType": "YulFunctionCall", - "src": "4680:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4668:6:39", - "nodeType": "YulIdentifier", - "src": "4668:6:39" - }, - "nativeSrc": "4668:37:39", - "nodeType": "YulFunctionCall", - "src": "4668:37:39" - }, - "nativeSrc": "4668:37:39", - "nodeType": "YulExpressionStatement", - "src": "4668:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4593:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4646:5:39", - "nodeType": "YulTypedName", - "src": "4646:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4653:3:39", - "nodeType": "YulTypedName", - "src": "4653:3:39", - "type": "" - } - ], - "src": "4593:118:39" - }, - { - "body": { - "nativeSrc": "4815:124:39", - "nodeType": "YulBlock", - "src": "4815:124:39", - "statements": [ - { - "nativeSrc": "4825:26:39", - "nodeType": "YulAssignment", - "src": "4825:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4837:9:39", - "nodeType": "YulIdentifier", - "src": "4837:9:39" - }, - { - "kind": "number", - "nativeSrc": "4848:2:39", - "nodeType": "YulLiteral", - "src": "4848:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4833:3:39", - "nodeType": "YulIdentifier", - "src": "4833:3:39" - }, - "nativeSrc": "4833:18:39", - "nodeType": "YulFunctionCall", - "src": "4833:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4825:4:39", - "nodeType": "YulIdentifier", - "src": "4825:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4905:6:39", - "nodeType": "YulIdentifier", - "src": "4905:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4918:9:39", - "nodeType": "YulIdentifier", - "src": "4918:9:39" - }, - { - "kind": "number", - "nativeSrc": "4929:1:39", - "nodeType": "YulLiteral", - "src": "4929:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4914:3:39", - "nodeType": "YulIdentifier", - "src": "4914:3:39" - }, - "nativeSrc": "4914:17:39", - "nodeType": "YulFunctionCall", - "src": "4914:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4861:43:39", - "nodeType": "YulIdentifier", - "src": "4861:43:39" - }, - "nativeSrc": "4861:71:39", - "nodeType": "YulFunctionCall", - "src": "4861:71:39" - }, - "nativeSrc": "4861:71:39", - "nodeType": "YulExpressionStatement", - "src": "4861:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "4717:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4787:9:39", - "nodeType": "YulTypedName", - "src": "4787:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4799:6:39", - "nodeType": "YulTypedName", - "src": "4799:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4810:4:39", - "nodeType": "YulTypedName", - "src": "4810:4:39", - "type": "" - } - ], - "src": "4717:222:39" - }, - { - "body": { - "nativeSrc": "5003:40:39", - "nodeType": "YulBlock", - "src": "5003:40:39", - "statements": [ - { - "nativeSrc": "5014:22:39", - "nodeType": "YulAssignment", - "src": "5014:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5030:5:39", - "nodeType": "YulIdentifier", - "src": "5030:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5024:5:39", - "nodeType": "YulIdentifier", - "src": "5024:5:39" - }, - "nativeSrc": "5024:12:39", - "nodeType": "YulFunctionCall", - "src": "5024:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "5014:6:39", - "nodeType": "YulIdentifier", - "src": "5014:6:39" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "4945:98:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4986:5:39", - "nodeType": "YulTypedName", - "src": "4986:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "4996:6:39", - "nodeType": "YulTypedName", - "src": "4996:6:39", - "type": "" - } - ], - "src": "4945:98:39" - }, - { - "body": { - "nativeSrc": "5162:34:39", - "nodeType": "YulBlock", - "src": "5162:34:39", - "statements": [ - { - "nativeSrc": "5172:18:39", - "nodeType": "YulAssignment", - "src": "5172:18:39", - "value": { - "name": "pos", - "nativeSrc": "5187:3:39", - "nodeType": "YulIdentifier", - "src": "5187:3:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "5172:11:39", - "nodeType": "YulIdentifier", - "src": "5172:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5049:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "5134:3:39", - "nodeType": "YulTypedName", - "src": "5134:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "5139:6:39", - "nodeType": "YulTypedName", - "src": "5139:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "5150:11:39", - "nodeType": "YulTypedName", - "src": "5150:11:39", - "type": "" - } - ], - "src": "5049:147:39" - }, - { - "body": { - "nativeSrc": "5264:186:39", - "nodeType": "YulBlock", - "src": "5264:186:39", - "statements": [ - { - "nativeSrc": "5275:10:39", - "nodeType": "YulVariableDeclaration", - "src": "5275:10:39", - "value": { - "kind": "number", - "nativeSrc": "5284:1:39", - "nodeType": "YulLiteral", - "src": "5284:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "5279:1:39", - "nodeType": "YulTypedName", - "src": "5279:1:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5344:63:39", - "nodeType": "YulBlock", - "src": "5344:63:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "5369:3:39", - "nodeType": "YulIdentifier", - "src": "5369:3:39" - }, - { - "name": "i", - "nativeSrc": "5374:1:39", - "nodeType": "YulIdentifier", - "src": "5374:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5365:3:39", - "nodeType": "YulIdentifier", - "src": "5365:3:39" - }, - "nativeSrc": "5365:11:39", - "nodeType": "YulFunctionCall", - "src": "5365:11:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "5388:3:39", - "nodeType": "YulIdentifier", - "src": "5388:3:39" - }, - { - "name": "i", - "nativeSrc": "5393:1:39", - "nodeType": "YulIdentifier", - "src": "5393:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5384:3:39", - "nodeType": "YulIdentifier", - "src": "5384:3:39" - }, - "nativeSrc": "5384:11:39", - "nodeType": "YulFunctionCall", - "src": "5384:11:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5378:5:39", - "nodeType": "YulIdentifier", - "src": "5378:5:39" - }, - "nativeSrc": "5378:18:39", - "nodeType": "YulFunctionCall", - "src": "5378:18:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5358:6:39", - "nodeType": "YulIdentifier", - "src": "5358:6:39" - }, - "nativeSrc": "5358:39:39", - "nodeType": "YulFunctionCall", - "src": "5358:39:39" - }, - "nativeSrc": "5358:39:39", - "nodeType": "YulExpressionStatement", - "src": "5358:39:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "5305:1:39", - "nodeType": "YulIdentifier", - "src": "5305:1:39" - }, - { - "name": "length", - "nativeSrc": "5308:6:39", - "nodeType": "YulIdentifier", - "src": "5308:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5302:2:39", - "nodeType": "YulIdentifier", - "src": "5302:2:39" - }, - "nativeSrc": "5302:13:39", - "nodeType": "YulFunctionCall", - "src": "5302:13:39" - }, - "nativeSrc": "5294:113:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "5316:19:39", - "nodeType": "YulBlock", - "src": "5316:19:39", - "statements": [ - { - "nativeSrc": "5318:15:39", - "nodeType": "YulAssignment", - "src": "5318:15:39", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "5327:1:39", - "nodeType": "YulIdentifier", - "src": "5327:1:39" - }, - { - "kind": "number", - "nativeSrc": "5330:2:39", - "nodeType": "YulLiteral", - "src": "5330:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5323:3:39", - "nodeType": "YulIdentifier", - "src": "5323:3:39" - }, - "nativeSrc": "5323:10:39", - "nodeType": "YulFunctionCall", - "src": "5323:10:39" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "5318:1:39", - "nodeType": "YulIdentifier", - "src": "5318:1:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "5298:3:39", - "nodeType": "YulBlock", - "src": "5298:3:39", - "statements": [] - }, - "src": "5294:113:39" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "5427:3:39", - "nodeType": "YulIdentifier", - "src": "5427:3:39" - }, - { - "name": "length", - "nativeSrc": "5432:6:39", - "nodeType": "YulIdentifier", - "src": "5432:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5423:3:39", - "nodeType": "YulIdentifier", - "src": "5423:3:39" - }, - "nativeSrc": "5423:16:39", - "nodeType": "YulFunctionCall", - "src": "5423:16:39" - }, - { - "kind": "number", - "nativeSrc": "5441:1:39", - "nodeType": "YulLiteral", - "src": "5441:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5416:6:39", - "nodeType": "YulIdentifier", - "src": "5416:6:39" - }, - "nativeSrc": "5416:27:39", - "nodeType": "YulFunctionCall", - "src": "5416:27:39" - }, - "nativeSrc": "5416:27:39", - "nodeType": "YulExpressionStatement", - "src": "5416:27:39" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5202:248:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "5246:3:39", - "nodeType": "YulTypedName", - "src": "5246:3:39", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "5251:3:39", - "nodeType": "YulTypedName", - "src": "5251:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "5256:6:39", - "nodeType": "YulTypedName", - "src": "5256:6:39", - "type": "" - } - ], - "src": "5202:248:39" - }, - { - "body": { - "nativeSrc": "5564:278:39", - "nodeType": "YulBlock", - "src": "5564:278:39", - "statements": [ - { - "nativeSrc": "5574:52:39", - "nodeType": "YulVariableDeclaration", - "src": "5574:52:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5620:5:39", - "nodeType": "YulIdentifier", - "src": "5620:5:39" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "5588:31:39", - "nodeType": "YulIdentifier", - "src": "5588:31:39" - }, - "nativeSrc": "5588:38:39", - "nodeType": "YulFunctionCall", - "src": "5588:38:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "5578:6:39", - "nodeType": "YulTypedName", - "src": "5578:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "5635:95:39", - "nodeType": "YulAssignment", - "src": "5635:95:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5718:3:39", - "nodeType": "YulIdentifier", - "src": "5718:3:39" - }, - { - "name": "length", - "nativeSrc": "5723:6:39", - "nodeType": "YulIdentifier", - "src": "5723:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5642:75:39", - "nodeType": "YulIdentifier", - "src": "5642:75:39" - }, - "nativeSrc": "5642:88:39", - "nodeType": "YulFunctionCall", - "src": "5642:88:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5635:3:39", - "nodeType": "YulIdentifier", - "src": "5635:3:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5778:5:39", - "nodeType": "YulIdentifier", - "src": "5778:5:39" - }, - { - "kind": "number", - "nativeSrc": "5785:4:39", - "nodeType": "YulLiteral", - "src": "5785:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5774:3:39", - "nodeType": "YulIdentifier", - "src": "5774:3:39" - }, - "nativeSrc": "5774:16:39", - "nodeType": "YulFunctionCall", - "src": "5774:16:39" - }, - { - "name": "pos", - "nativeSrc": "5792:3:39", - "nodeType": "YulIdentifier", - "src": "5792:3:39" - }, - { - "name": "length", - "nativeSrc": "5797:6:39", - "nodeType": "YulIdentifier", - "src": "5797:6:39" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5739:34:39", - "nodeType": "YulIdentifier", - "src": "5739:34:39" - }, - "nativeSrc": "5739:65:39", - "nodeType": "YulFunctionCall", - "src": "5739:65:39" - }, - "nativeSrc": "5739:65:39", - "nodeType": "YulExpressionStatement", - "src": "5739:65:39" - }, - { - "nativeSrc": "5813:23:39", - "nodeType": "YulAssignment", - "src": "5813:23:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5824:3:39", - "nodeType": "YulIdentifier", - "src": "5824:3:39" - }, - { - "name": "length", - "nativeSrc": "5829:6:39", - "nodeType": "YulIdentifier", - "src": "5829:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5820:3:39", - "nodeType": "YulIdentifier", - "src": "5820:3:39" - }, - "nativeSrc": "5820:16:39", - "nodeType": "YulFunctionCall", - "src": "5820:16:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5813:3:39", - "nodeType": "YulIdentifier", - "src": "5813:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "5456:386:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5545:5:39", - "nodeType": "YulTypedName", - "src": "5545:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5552:3:39", - "nodeType": "YulTypedName", - "src": "5552:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5560:3:39", - "nodeType": "YulTypedName", - "src": "5560:3:39", - "type": "" - } - ], - "src": "5456:386:39" - }, - { - "body": { - "nativeSrc": "5982:137:39", - "nodeType": "YulBlock", - "src": "5982:137:39", - "statements": [ - { - "nativeSrc": "5993:100:39", - "nodeType": "YulAssignment", - "src": "5993:100:39", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6080:6:39", - "nodeType": "YulIdentifier", - "src": "6080:6:39" - }, - { - "name": "pos", - "nativeSrc": "6089:3:39", - "nodeType": "YulIdentifier", - "src": "6089:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "6000:79:39", - "nodeType": "YulIdentifier", - "src": "6000:79:39" - }, - "nativeSrc": "6000:93:39", - "nodeType": "YulFunctionCall", - "src": "6000:93:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5993:3:39", - "nodeType": "YulIdentifier", - "src": "5993:3:39" - } - ] - }, - { - "nativeSrc": "6103:10:39", - "nodeType": "YulAssignment", - "src": "6103:10:39", - "value": { - "name": "pos", - "nativeSrc": "6110:3:39", - "nodeType": "YulIdentifier", - "src": "6110:3:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "6103:3:39", - "nodeType": "YulIdentifier", - "src": "6103:3:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "5848:271:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "5961:3:39", - "nodeType": "YulTypedName", - "src": "5961:3:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5967:6:39", - "nodeType": "YulTypedName", - "src": "5967:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5978:3:39", - "nodeType": "YulTypedName", - "src": "5978:3:39", - "type": "" - } - ], - "src": "5848:271:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "3019": [ - { - "length": 32, - "start": 262 - } - ] - }, - "linkReferences": {}, - "object": "608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033", - "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 0xD6BDA27500000000000000000000000000000000000000000000000000000000 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 MSIZE 0xE0 SMOD SWAP11 0xA9 0x24 0xD5 DUP15 PUSH16 0xC55BC0A2CF0E8F28861F1F984C33A992 PUSH5 0x659A039994 GT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "4314:2231:18:-:0;;;2649:11:15;:9;:11::i;:::-;4314:2231:18;5755:369;5830:13;:11;:13::i;:::-;5816:27;;:10;:27;;;5812:306;;5874:54;;;5863:65;;;:7;;;;:65;;;;5859:201;;5955:24;;;;;;;;;;;;;;5859:201;6018:27;:25;:27::i;:::-;5812:306;;;6090:17;:15;:17::i;:::-;5812:306;5755:369::o;5520:93::-;5574:7;5600:6;5593:13;;5520:93;:::o;6326:217::-;6382:25;6409:17;6441:8;;6450:1;6441:12;;;;;;;;;:::i;:::-;6430:42;;;;;;;:::i;:::-;6381:91;;;;6482:54;6512:17;6531:4;6482:29;:54::i;:::-;6371:172;;6326:217::o;2323:83:15:-;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;2264:344:14:-;2355:37;2374:17;2355:18;:37::i;:::-;2425:17;2407:36;;;;;;;;;;;;2472:1;2458:4;:11;:15;2454:148;;;2489:53;2518:17;2537:4;2489:28;:53::i;:::-;;2454:148;;;2573:18;:16;:18::i;:::-;2454:148;2264:344;;:::o;1583:132:13:-;1650:7;1676:32;:30;:32::i;:::-;1669:39;;1583: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;1671:281:14;1781:1;1748:17;:29;;;:34;1744:119;;1834:17;1805:47;;;;;;;;;;;:::i;:::-;;;;;;;;1744:119;1928:17;1872:47;811:66;1899:19;;1872:26;:47::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;1671:281;:::o;3900:253:19:-;3983:12;4008;4022:23;4049:6;:19;;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;:::-;4084:62;;;;3900:253;;;;:::o;6113:122:14:-;6175:1;6163:9;:13;6159:70;;;6199:19;;;;;;;;;;;;;;6159:70;6113:122::o;1441:138::-;1493:7;1519:47;811:66;1546:19;;1519:26;:47::i;:::-;:53;;;;;;;;;;;;1512:60;;1441:138;:::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::o;4421:582:19:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4862:1;4841:10;:17;:22;:49;;;;;4889:1;4867:6;:18;;;:23;4841:49;4837:119;;;4934:6;4917:24;;;;;;;;;;;:::i;:::-;;;;;;;;4837:119;4976:10;4969:17;;;;4589:408;4421:582;;;;;;:::o;5543:487::-;5694:1;5674:10;:17;:21;5670:354;;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;;;;;;;;;;;;;7:75:39;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\":\"FailedCall\",\"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. Relying on the value of the admin slot is generally fine if the implementation is trusted. 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.\"}],\"FailedCall()\":[{\"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\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@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\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/Address.sol": { - "Address": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c3d621977f064e384d77a7f38001fcbf2e2b714139e5fb526a1fd3072a79689164736f6c634300081c0033", - "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 0xC3 0xD6 0x21 SWAP8 PUSH32 0x64E384D77A7F38001FCBF2E2B714139E5FB526A1FD3072A79689164736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "233:5799:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c3d621977f064e384d77a7f38001fcbf2e2b714139e5fb526a1fd3072a79689164736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xD6 0x21 SWAP8 PUSH32 0x64E384D77A7F38001FCBF2E2B714139E5FB526A1FD3072A79689164736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "233:5799: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\"}],\"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).\"}]},\"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\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"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/Errors.sol": { - "Errors": { - "abi": [ - { - "inputs": [], - "name": "FailedCall", - "type": "error" - }, - { - "inputs": [], - "name": "FailedDeployment", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "MissingPrecompile", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122004b89e72da43ab1ee05bd033fb62a621154a79713cd82d3cd8a0e9353695a64e64736f6c634300081c0033", - "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 DIV 0xB8 SWAP15 PUSH19 0xDA43AB1EE05BD033FB62A621154A79713CD82D EXTCODECOPY 0xD8 LOG0 0xE9 CALLDATALOAD CALLDATASIZE SWAP6 0xA6 0x4E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "411:484:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122004b89e72da43ab1ee05bd033fb62a621154a79713cd82d3cd8a0e9353695a64e64736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DIV 0xB8 SWAP15 PUSH19 0xDA43AB1EE05BD033FB62A621154A79713CD82D EXTCODECOPY 0xD8 LOG0 0xE9 CALLDATALOAD CALLDATASIZE SWAP6 0xA6 0x4E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "411:484:21:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"MissingPrecompile\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of common custom errors used in multiple contracts IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library. It is recommended to avoid relying on the error API for critical functionality. _Available since v5.1._\",\"errors\":{\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"MissingPrecompile(address)\":[{\"details\":\"A necessary precompile is missing.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Errors.sol\":\"Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/Panic.sol": { - "Panic": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044fd5c6dc22ace3217436b923d3288726ebe1f48ed972abfbb54a291caab641964736f6c634300081c0033", - "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 PREVRANDAO REVERT TLOAD PUSH14 0xC22ACE3217436B923D3288726EBE 0x1F BASEFEE 0xED SWAP8 0x2A 0xBF 0xBB SLOAD LOG2 SWAP2 0xCA 0xAB PUSH5 0x1964736F6C PUSH4 0x4300081C STOP CALLER ", - "sourceMap": "657:1315:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044fd5c6dc22ace3217436b923d3288726ebe1f48ed972abfbb54a291caab641964736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO REVERT TLOAD PUSH14 0xC22ACE3217436B923D3288726EBE 0x1F BASEFEE 0xED SWAP8 0x2A 0xBF 0xBB SLOAD LOG2 SWAP2 0xCA 0xAB PUSH5 0x1964736F6C PUSH4 0x4300081C STOP CALLER ", - "sourceMap": "657:1315:22:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"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": 3500, - "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": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b93eefa26a1cecc5003f9a8a0abb4a23d8503ef65d8338e7fd9d3442221a9e9c64736f6c634300081c0033", - "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 0xB9 RETURNDATACOPY 0xEF LOG2 PUSH11 0x1CECC5003F9A8A0ABB4A23 0xD8 POP RETURNDATACOPY 0xF6 TSTORE DUP4 CODESIZE 0xE7 REVERT SWAP14 CALLVALUE TIMESTAMP 0x22 BYTE SWAP15 SWAP13 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "1407:2774:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b93eefa26a1cecc5003f9a8a0abb4a23d8503ef65d8338e7fd9d3442221a9e9c64736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 RETURNDATACOPY 0xEF LOG2 PUSH11 0x1CECC5003F9A8A0ABB4A23 0xD8 POP RETURNDATACOPY 0xF6 TSTORE DUP4 CODESIZE 0xE7 REVERT SWAP14 CALLVALUE TIMESTAMP 0x22 BYTE SWAP15 SWAP13 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "1407:2774:24:-: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 ERC-1967 implementation slot: ```solidity contract ERC1967 { // Define the slot. Alternatively, use the SlotDerivation library to derive the slot. 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; } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"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\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"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 ERC-165 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\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"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 ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. 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[ERC 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\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/math/Math.sol": { - "Math": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f7d06953f5fe20dd24fbcb0fc8475806a42e254e8536e5da3358df77baeec5e64736f6c634300081c0033", - "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 0x4F PUSH30 0x6953F5FE20DD24FBCB0FC8475806A42E254E8536E5DA3358DF77BAEEC5E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "281:28026:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f7d06953f5fe20dd24fbcb0fc8475806a42e254e8536e5da3358df77baeec5e64736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F PUSH30 0x6953F5FE20DD24FBCB0FC8475806A42E254E8536E5DA3358DF77BAEEC5E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "281:28026:27:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"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/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"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": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b619700e36f8286c341dba52edf08c2ac628f28267f87863dc4a18698b0d4f3f64736f6c634300081c0033", - "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 0xB6 NOT PUSH17 0xE36F8286C341DBA52EDF08C2AC628F282 PUSH8 0xF87863DC4A18698B 0xD 0x4F EXTCODEHASH PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "769:34173:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b619700e36f8286c341dba52edf08c2ac628f28267f87863dc4a18698b0d4f3f64736f6c634300081c0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 NOT PUSH17 0xE36F8286C341DBA52EDF08C2AC628F282 PUSH8 0xF87863DC4A18698B 0xD 0x4F EXTCODEHASH PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "769:34173:28:-: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/bool 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\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"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": { - "@_7275": { - "entryPoint": null, - "id": 7275, - "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:39", - "nodeType": "YulBlock", - "src": "0:1355:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "939:413:39", - "nodeType": "YulBlock", - "src": "939:413:39", - "statements": [ - { - "body": { - "nativeSrc": "985:83:39", - "nodeType": "YulBlock", - "src": "985:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "987:77:39", - "nodeType": "YulIdentifier", - "src": "987:77:39" - }, - "nativeSrc": "987:79:39", - "nodeType": "YulFunctionCall", - "src": "987:79:39" - }, - "nativeSrc": "987:79:39", - "nodeType": "YulExpressionStatement", - "src": "987:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "960:7:39", - "nodeType": "YulIdentifier", - "src": "960:7:39" - }, - { - "name": "headStart", - "nativeSrc": "969:9:39", - "nodeType": "YulIdentifier", - "src": "969:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "956:3:39", - "nodeType": "YulIdentifier", - "src": "956:3:39" - }, - "nativeSrc": "956:23:39", - "nodeType": "YulFunctionCall", - "src": "956:23:39" - }, - { - "kind": "number", - "nativeSrc": "981:2:39", - "nodeType": "YulLiteral", - "src": "981:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "952:3:39", - "nodeType": "YulIdentifier", - "src": "952:3:39" - }, - "nativeSrc": "952:32:39", - "nodeType": "YulFunctionCall", - "src": "952:32:39" - }, - "nativeSrc": "949:119:39", - "nodeType": "YulIf", - "src": "949:119:39" - }, - { - "nativeSrc": "1078:128:39", - "nodeType": "YulBlock", - "src": "1078:128:39", - "statements": [ - { - "nativeSrc": "1093:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1093:15:39", - "value": { - "kind": "number", - "nativeSrc": "1107:1:39", - "nodeType": "YulLiteral", - "src": "1107:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1097:6:39", - "nodeType": "YulTypedName", - "src": "1097:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1122:74:39", - "nodeType": "YulAssignment", - "src": "1122:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1168:9:39", - "nodeType": "YulIdentifier", - "src": "1168:9:39" - }, - { - "name": "offset", - "nativeSrc": "1179:6:39", - "nodeType": "YulIdentifier", - "src": "1179:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1164:3:39", - "nodeType": "YulIdentifier", - "src": "1164:3:39" - }, - "nativeSrc": "1164:22:39", - "nodeType": "YulFunctionCall", - "src": "1164:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1188:7:39", - "nodeType": "YulIdentifier", - "src": "1188:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1132:31:39", - "nodeType": "YulIdentifier", - "src": "1132:31:39" - }, - "nativeSrc": "1132:64:39", - "nodeType": "YulFunctionCall", - "src": "1132:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1122:6:39", - "nodeType": "YulIdentifier", - "src": "1122:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "1216:129:39", - "nodeType": "YulBlock", - "src": "1216:129:39", - "statements": [ - { - "nativeSrc": "1231:16:39", - "nodeType": "YulVariableDeclaration", - "src": "1231:16:39", - "value": { - "kind": "number", - "nativeSrc": "1245:2:39", - "nodeType": "YulLiteral", - "src": "1245:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1235:6:39", - "nodeType": "YulTypedName", - "src": "1235:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1261:74:39", - "nodeType": "YulAssignment", - "src": "1261:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1307:9:39", - "nodeType": "YulIdentifier", - "src": "1307:9:39" - }, - { - "name": "offset", - "nativeSrc": "1318:6:39", - "nodeType": "YulIdentifier", - "src": "1318:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1303:3:39", - "nodeType": "YulIdentifier", - "src": "1303:3:39" - }, - "nativeSrc": "1303:22:39", - "nodeType": "YulFunctionCall", - "src": "1303:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1327:7:39", - "nodeType": "YulIdentifier", - "src": "1327:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1271:31:39", - "nodeType": "YulIdentifier", - "src": "1271:31:39" - }, - "nativeSrc": "1271:64:39", - "nodeType": "YulFunctionCall", - "src": "1271:64:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1261:6:39", - "nodeType": "YulIdentifier", - "src": "1261:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_address_fromMemory", - "nativeSrc": "845:507:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "901:9:39", - "nodeType": "YulTypedName", - "src": "901:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "912:7:39", - "nodeType": "YulTypedName", - "src": "912:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "924:6:39", - "nodeType": "YulTypedName", - "src": "924:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "932:6:39", - "nodeType": "YulTypedName", - "src": "932:6:39", - "type": "" - } - ], - "src": "845:507:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60c060405234801561001057600080fd5b5060405161082e38038061082e83398181016040528101906100329190610104565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250505050610144565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100d1826100a6565b9050919050565b6100e1816100c6565b81146100ec57600080fd5b50565b6000815190506100fe816100d8565b92915050565b6000806040838503121561011b5761011a6100a1565b5b6000610129858286016100ef565b925050602061013a858286016100ef565b9150509250929050565b60805160a0516106b161017d6000396000818160da0152818161017601526101ca01526000818161019a015261027c01526106b16000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea2646970667358221220c90dbfa0c27c6833e6ed98d1937d68c4ddcf4ef68d5d349eef2753821461b49064736f6c634300081c0033", - "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 0xC9 0xD 0xBF LOG0 0xC2 PUSH29 0x6833E6ED98D1937D68C4DDCF4EF68D5D349EEF2753821461B49064736F PUSH13 0x634300081C0033000000000000 ", - "sourceMap": "669:2681:32:-:0;;;1634:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1732:19;1714:38;;;;;;;;;;1786:19;1762:44;;;;;;;;;;1634:179;;669:2681;;88:117:39;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:32:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkEnsOwner_7341": { - "entryPoint": 611, - "id": 7341, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_msgSender_3399": { - "entryPoint": 603, - "id": 3399, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@ensRegistry_7230": { - "entryPoint": 408, - "id": 7230, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@registerDomainWithVerifier_7319": { - "entryPoint": 197, - "id": 7319, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@registerDomain_7295": { - "entryPoint": 444, - "id": 7295, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@registry_7233": { - "entryPoint": 372, - "id": 7233, - "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_$8101": { - "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_$8101": { - "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_$7736_to_t_address_fromStack": { - "entryPoint": 1197, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_IVerifier_$8101_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_$8101__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_$7736__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_$8101": { - "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_$7736_to_t_address": { - "entryPoint": 1179, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_IVerifier_$8101_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_$8101": { - "entryPoint": 1009, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:6282:39", - "nodeType": "YulBlock", - "src": "0:6282:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:32:39", - "nodeType": "YulBlock", - "src": "379:32:39", - "statements": [ - { - "nativeSrc": "389:16:39", - "nodeType": "YulAssignment", - "src": "389:16:39", - "value": { - "name": "value", - "nativeSrc": "400:5:39", - "nodeType": "YulIdentifier", - "src": "400:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "334:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:77:39" - }, - { - "body": { - "nativeSrc": "460:79:39", - "nodeType": "YulBlock", - "src": "460:79:39", - "statements": [ - { - "body": { - "nativeSrc": "517:16:39", - "nodeType": "YulBlock", - "src": "517:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "526:1:39", - "nodeType": "YulLiteral", - "src": "526:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "529:1:39", - "nodeType": "YulLiteral", - "src": "529:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "519:6:39", - "nodeType": "YulIdentifier", - "src": "519:6:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulFunctionCall", - "src": "519:12:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulExpressionStatement", - "src": "519:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "483:5:39", - "nodeType": "YulIdentifier", - "src": "483:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "508:5:39", - "nodeType": "YulIdentifier", - "src": "508:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "490:17:39", - "nodeType": "YulIdentifier", - "src": "490:17:39" - }, - "nativeSrc": "490:24:39", - "nodeType": "YulFunctionCall", - "src": "490:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "480:2:39", - "nodeType": "YulIdentifier", - "src": "480:2:39" - }, - "nativeSrc": "480:35:39", - "nodeType": "YulFunctionCall", - "src": "480:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "473:6:39", - "nodeType": "YulIdentifier", - "src": "473:6:39" - }, - "nativeSrc": "473:43:39", - "nodeType": "YulFunctionCall", - "src": "473:43:39" - }, - "nativeSrc": "470:63:39", - "nodeType": "YulIf", - "src": "470:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "417:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "453:5:39", - "nodeType": "YulTypedName", - "src": "453:5:39", - "type": "" - } - ], - "src": "417:122:39" - }, - { - "body": { - "nativeSrc": "597:87:39", - "nodeType": "YulBlock", - "src": "597:87:39", - "statements": [ - { - "nativeSrc": "607:29:39", - "nodeType": "YulAssignment", - "src": "607:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "629:6:39", - "nodeType": "YulIdentifier", - "src": "629:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "616:12:39", - "nodeType": "YulIdentifier", - "src": "616:12:39" - }, - "nativeSrc": "616:20:39", - "nodeType": "YulFunctionCall", - "src": "616:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "607:5:39", - "nodeType": "YulIdentifier", - "src": "607:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "672:5:39", - "nodeType": "YulIdentifier", - "src": "672:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "645:26:39", - "nodeType": "YulIdentifier", - "src": "645:26:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulFunctionCall", - "src": "645:33:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulExpressionStatement", - "src": "645:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "545:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "575:6:39", - "nodeType": "YulTypedName", - "src": "575:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "583:3:39", - "nodeType": "YulTypedName", - "src": "583:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "591:5:39", - "nodeType": "YulTypedName", - "src": "591:5:39", - "type": "" - } - ], - "src": "545:139:39" - }, - { - "body": { - "nativeSrc": "735:81:39", - "nodeType": "YulBlock", - "src": "735:81:39", - "statements": [ - { - "nativeSrc": "745:65:39", - "nodeType": "YulAssignment", - "src": "745:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "760:5:39", - "nodeType": "YulIdentifier", - "src": "760:5:39" - }, - { - "kind": "number", - "nativeSrc": "767:42:39", - "nodeType": "YulLiteral", - "src": "767:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "756:3:39", - "nodeType": "YulIdentifier", - "src": "756:3:39" - }, - "nativeSrc": "756:54:39", - "nodeType": "YulFunctionCall", - "src": "756:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "745:7:39", - "nodeType": "YulIdentifier", - "src": "745:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "690:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "717:5:39", - "nodeType": "YulTypedName", - "src": "717:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "727:7:39", - "nodeType": "YulTypedName", - "src": "727:7:39", - "type": "" - } - ], - "src": "690:126:39" - }, - { - "body": { - "nativeSrc": "867:51:39", - "nodeType": "YulBlock", - "src": "867:51:39", - "statements": [ - { - "nativeSrc": "877:35:39", - "nodeType": "YulAssignment", - "src": "877:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "906:5:39", - "nodeType": "YulIdentifier", - "src": "906:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "888:17:39", - "nodeType": "YulIdentifier", - "src": "888:17:39" - }, - "nativeSrc": "888:24:39", - "nodeType": "YulFunctionCall", - "src": "888:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "877:7:39", - "nodeType": "YulIdentifier", - "src": "877:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "822:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "849:5:39", - "nodeType": "YulTypedName", - "src": "849:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "859:7:39", - "nodeType": "YulTypedName", - "src": "859:7:39", - "type": "" - } - ], - "src": "822:96:39" - }, - { - "body": { - "nativeSrc": "987:51:39", - "nodeType": "YulBlock", - "src": "987:51:39", - "statements": [ - { - "nativeSrc": "997:35:39", - "nodeType": "YulAssignment", - "src": "997:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1026:5:39", - "nodeType": "YulIdentifier", - "src": "1026:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1008:17:39", - "nodeType": "YulIdentifier", - "src": "1008:17:39" - }, - "nativeSrc": "1008:24:39", - "nodeType": "YulFunctionCall", - "src": "1008:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "997:7:39", - "nodeType": "YulIdentifier", - "src": "997:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "924:114:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "969:5:39", - "nodeType": "YulTypedName", - "src": "969:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "979:7:39", - "nodeType": "YulTypedName", - "src": "979:7:39", - "type": "" - } - ], - "src": "924:114:39" - }, - { - "body": { - "nativeSrc": "1105:97:39", - "nodeType": "YulBlock", - "src": "1105:97:39", - "statements": [ - { - "body": { - "nativeSrc": "1180:16:39", - "nodeType": "YulBlock", - "src": "1180:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1189:1:39", - "nodeType": "YulLiteral", - "src": "1189:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1192:1:39", - "nodeType": "YulLiteral", - "src": "1192:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1182:6:39", - "nodeType": "YulIdentifier", - "src": "1182:6:39" - }, - "nativeSrc": "1182:12:39", - "nodeType": "YulFunctionCall", - "src": "1182:12:39" - }, - "nativeSrc": "1182:12:39", - "nodeType": "YulExpressionStatement", - "src": "1182:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1128:5:39", - "nodeType": "YulIdentifier", - "src": "1128:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1171:5:39", - "nodeType": "YulIdentifier", - "src": "1171:5:39" - } - ], - "functionName": { - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "1135:35:39", - "nodeType": "YulIdentifier", - "src": "1135:35:39" - }, - "nativeSrc": "1135:42:39", - "nodeType": "YulFunctionCall", - "src": "1135:42:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1125:2:39", - "nodeType": "YulIdentifier", - "src": "1125:2:39" - }, - "nativeSrc": "1125:53:39", - "nodeType": "YulFunctionCall", - "src": "1125:53:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1118:6:39", - "nodeType": "YulIdentifier", - "src": "1118:6:39" - }, - "nativeSrc": "1118:61:39", - "nodeType": "YulFunctionCall", - "src": "1118:61:39" - }, - "nativeSrc": "1115:81:39", - "nodeType": "YulIf", - "src": "1115:81:39" - } - ] - }, - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "1044:158:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1098:5:39", - "nodeType": "YulTypedName", - "src": "1098:5:39", - "type": "" - } - ], - "src": "1044:158:39" - }, - { - "body": { - "nativeSrc": "1278:105:39", - "nodeType": "YulBlock", - "src": "1278:105:39", - "statements": [ - { - "nativeSrc": "1288:29:39", - "nodeType": "YulAssignment", - "src": "1288:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1310:6:39", - "nodeType": "YulIdentifier", - "src": "1310:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1297:12:39", - "nodeType": "YulIdentifier", - "src": "1297:12:39" - }, - "nativeSrc": "1297:20:39", - "nodeType": "YulFunctionCall", - "src": "1297:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1288:5:39", - "nodeType": "YulIdentifier", - "src": "1288:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1371:5:39", - "nodeType": "YulIdentifier", - "src": "1371:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "1326:44:39", - "nodeType": "YulIdentifier", - "src": "1326:44:39" - }, - "nativeSrc": "1326:51:39", - "nodeType": "YulFunctionCall", - "src": "1326:51:39" - }, - "nativeSrc": "1326:51:39", - "nodeType": "YulExpressionStatement", - "src": "1326:51:39" - } - ] - }, - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "1208:175:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1256:6:39", - "nodeType": "YulTypedName", - "src": "1256:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1264:3:39", - "nodeType": "YulTypedName", - "src": "1264:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1272:5:39", - "nodeType": "YulTypedName", - "src": "1272:5:39", - "type": "" - } - ], - "src": "1208:175:39" - }, - { - "body": { - "nativeSrc": "1490:409:39", - "nodeType": "YulBlock", - "src": "1490:409:39", - "statements": [ - { - "body": { - "nativeSrc": "1536:83:39", - "nodeType": "YulBlock", - "src": "1536:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1538:77:39", - "nodeType": "YulIdentifier", - "src": "1538:77:39" - }, - "nativeSrc": "1538:79:39", - "nodeType": "YulFunctionCall", - "src": "1538:79:39" - }, - "nativeSrc": "1538:79:39", - "nodeType": "YulExpressionStatement", - "src": "1538:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1511:7:39", - "nodeType": "YulIdentifier", - "src": "1511:7:39" - }, - { - "name": "headStart", - "nativeSrc": "1520:9:39", - "nodeType": "YulIdentifier", - "src": "1520:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1507:3:39", - "nodeType": "YulIdentifier", - "src": "1507:3:39" - }, - "nativeSrc": "1507:23:39", - "nodeType": "YulFunctionCall", - "src": "1507:23:39" - }, - { - "kind": "number", - "nativeSrc": "1532:2:39", - "nodeType": "YulLiteral", - "src": "1532:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1503:3:39", - "nodeType": "YulIdentifier", - "src": "1503:3:39" - }, - "nativeSrc": "1503:32:39", - "nodeType": "YulFunctionCall", - "src": "1503:32:39" - }, - "nativeSrc": "1500:119:39", - "nodeType": "YulIf", - "src": "1500:119:39" - }, - { - "nativeSrc": "1629:117:39", - "nodeType": "YulBlock", - "src": "1629:117:39", - "statements": [ - { - "nativeSrc": "1644:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1644:15:39", - "value": { - "kind": "number", - "nativeSrc": "1658:1:39", - "nodeType": "YulLiteral", - "src": "1658:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1648:6:39", - "nodeType": "YulTypedName", - "src": "1648:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1673:63:39", - "nodeType": "YulAssignment", - "src": "1673:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1708:9:39", - "nodeType": "YulIdentifier", - "src": "1708:9:39" - }, - { - "name": "offset", - "nativeSrc": "1719:6:39", - "nodeType": "YulIdentifier", - "src": "1719:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1704:3:39", - "nodeType": "YulIdentifier", - "src": "1704:3:39" - }, - "nativeSrc": "1704:22:39", - "nodeType": "YulFunctionCall", - "src": "1704:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1728:7:39", - "nodeType": "YulIdentifier", - "src": "1728:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "1683:20:39", - "nodeType": "YulIdentifier", - "src": "1683:20:39" - }, - "nativeSrc": "1683:53:39", - "nodeType": "YulFunctionCall", - "src": "1683:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1673:6:39", - "nodeType": "YulIdentifier", - "src": "1673:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "1756:136:39", - "nodeType": "YulBlock", - "src": "1756:136:39", - "statements": [ - { - "nativeSrc": "1771:16:39", - "nodeType": "YulVariableDeclaration", - "src": "1771:16:39", - "value": { - "kind": "number", - "nativeSrc": "1785:2:39", - "nodeType": "YulLiteral", - "src": "1785:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1775:6:39", - "nodeType": "YulTypedName", - "src": "1775:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1801:81:39", - "nodeType": "YulAssignment", - "src": "1801:81:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1854:9:39", - "nodeType": "YulIdentifier", - "src": "1854:9:39" - }, - { - "name": "offset", - "nativeSrc": "1865:6:39", - "nodeType": "YulIdentifier", - "src": "1865:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1850:3:39", - "nodeType": "YulIdentifier", - "src": "1850:3:39" - }, - "nativeSrc": "1850:22:39", - "nodeType": "YulFunctionCall", - "src": "1850:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1874:7:39", - "nodeType": "YulIdentifier", - "src": "1874:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "1811:38:39", - "nodeType": "YulIdentifier", - "src": "1811:38:39" - }, - "nativeSrc": "1811:71:39", - "nodeType": "YulFunctionCall", - "src": "1811:71:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1801:6:39", - "nodeType": "YulIdentifier", - "src": "1801:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8101", - "nativeSrc": "1389:510:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1452:9:39", - "nodeType": "YulTypedName", - "src": "1452:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1463:7:39", - "nodeType": "YulTypedName", - "src": "1463:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1475:6:39", - "nodeType": "YulTypedName", - "src": "1475:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1483:6:39", - "nodeType": "YulTypedName", - "src": "1483:6:39", - "type": "" - } - ], - "src": "1389:510:39" - }, - { - "body": { - "nativeSrc": "1937:28:39", - "nodeType": "YulBlock", - "src": "1937:28:39", - "statements": [ - { - "nativeSrc": "1947:12:39", - "nodeType": "YulAssignment", - "src": "1947:12:39", - "value": { - "name": "value", - "nativeSrc": "1954:5:39", - "nodeType": "YulIdentifier", - "src": "1954:5:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "1947:3:39", - "nodeType": "YulIdentifier", - "src": "1947:3:39" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "1905:60:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1923:5:39", - "nodeType": "YulTypedName", - "src": "1923:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "1933:3:39", - "nodeType": "YulTypedName", - "src": "1933:3:39", - "type": "" - } - ], - "src": "1905:60:39" - }, - { - "body": { - "nativeSrc": "2031:82:39", - "nodeType": "YulBlock", - "src": "2031:82:39", - "statements": [ - { - "nativeSrc": "2041:66:39", - "nodeType": "YulAssignment", - "src": "2041:66:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2099:5:39", - "nodeType": "YulIdentifier", - "src": "2099:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "2081:17:39", - "nodeType": "YulIdentifier", - "src": "2081:17:39" - }, - "nativeSrc": "2081:24:39", - "nodeType": "YulFunctionCall", - "src": "2081:24:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "2072:8:39", - "nodeType": "YulIdentifier", - "src": "2072:8:39" - }, - "nativeSrc": "2072:34:39", - "nodeType": "YulFunctionCall", - "src": "2072:34:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "2054:17:39", - "nodeType": "YulIdentifier", - "src": "2054:17:39" - }, - "nativeSrc": "2054:53:39", - "nodeType": "YulFunctionCall", - "src": "2054:53:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "2041:9:39", - "nodeType": "YulIdentifier", - "src": "2041:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "1971:142:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2011:5:39", - "nodeType": "YulTypedName", - "src": "2011:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "2021:9:39", - "nodeType": "YulTypedName", - "src": "2021:9:39", - "type": "" - } - ], - "src": "1971:142:39" - }, - { - "body": { - "nativeSrc": "2179:66:39", - "nodeType": "YulBlock", - "src": "2179:66:39", - "statements": [ - { - "nativeSrc": "2189:50:39", - "nodeType": "YulAssignment", - "src": "2189:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2233:5:39", - "nodeType": "YulIdentifier", - "src": "2233:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "2202:30:39", - "nodeType": "YulIdentifier", - "src": "2202:30:39" - }, - "nativeSrc": "2202:37:39", - "nodeType": "YulFunctionCall", - "src": "2202:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "2189:9:39", - "nodeType": "YulIdentifier", - "src": "2189:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "2119:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2159:5:39", - "nodeType": "YulTypedName", - "src": "2159:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "2169:9:39", - "nodeType": "YulTypedName", - "src": "2169:9:39", - "type": "" - } - ], - "src": "2119:126:39" - }, - { - "body": { - "nativeSrc": "2332:66:39", - "nodeType": "YulBlock", - "src": "2332:66:39", - "statements": [ - { - "nativeSrc": "2342:50:39", - "nodeType": "YulAssignment", - "src": "2342:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2386:5:39", - "nodeType": "YulIdentifier", - "src": "2386:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "2355:30:39", - "nodeType": "YulIdentifier", - "src": "2355:30:39" - }, - "nativeSrc": "2355:37:39", - "nodeType": "YulFunctionCall", - "src": "2355:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "2342:9:39", - "nodeType": "YulIdentifier", - "src": "2342:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "2251:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2312:5:39", - "nodeType": "YulTypedName", - "src": "2312:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "2322:9:39", - "nodeType": "YulTypedName", - "src": "2322:9:39", - "type": "" - } - ], - "src": "2251:147:39" - }, - { - "body": { - "nativeSrc": "2490:87:39", - "nodeType": "YulBlock", - "src": "2490:87:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2507:3:39", - "nodeType": "YulIdentifier", - "src": "2507:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2564:5:39", - "nodeType": "YulIdentifier", - "src": "2564:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "2512:51:39", - "nodeType": "YulIdentifier", - "src": "2512:51:39" - }, - "nativeSrc": "2512:58:39", - "nodeType": "YulFunctionCall", - "src": "2512:58:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2500:6:39", - "nodeType": "YulIdentifier", - "src": "2500:6:39" - }, - "nativeSrc": "2500:71:39", - "nodeType": "YulFunctionCall", - "src": "2500:71:39" - }, - "nativeSrc": "2500:71:39", - "nodeType": "YulExpressionStatement", - "src": "2500:71:39" - } - ] - }, - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "2404:173:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2478:5:39", - "nodeType": "YulTypedName", - "src": "2478:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2485:3:39", - "nodeType": "YulTypedName", - "src": "2485:3:39", - "type": "" - } - ], - "src": "2404:173:39" - }, - { - "body": { - "nativeSrc": "2702:145:39", - "nodeType": "YulBlock", - "src": "2702:145:39", - "statements": [ - { - "nativeSrc": "2712:26:39", - "nodeType": "YulAssignment", - "src": "2712:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2724:9:39", - "nodeType": "YulIdentifier", - "src": "2724:9:39" - }, - { - "kind": "number", - "nativeSrc": "2735:2:39", - "nodeType": "YulLiteral", - "src": "2735:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2720:3:39", - "nodeType": "YulIdentifier", - "src": "2720:3:39" - }, - "nativeSrc": "2720:18:39", - "nodeType": "YulFunctionCall", - "src": "2720:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2712:4:39", - "nodeType": "YulIdentifier", - "src": "2712:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2813:6:39", - "nodeType": "YulIdentifier", - "src": "2813:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2826:9:39", - "nodeType": "YulIdentifier", - "src": "2826:9:39" - }, - { - "kind": "number", - "nativeSrc": "2837:1:39", - "nodeType": "YulLiteral", - "src": "2837:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2822:3:39", - "nodeType": "YulIdentifier", - "src": "2822:3:39" - }, - "nativeSrc": "2822:17:39", - "nodeType": "YulFunctionCall", - "src": "2822:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "2748:64:39", - "nodeType": "YulIdentifier", - "src": "2748:64:39" - }, - "nativeSrc": "2748:92:39", - "nodeType": "YulFunctionCall", - "src": "2748:92:39" - }, - "nativeSrc": "2748:92:39", - "nodeType": "YulExpressionStatement", - "src": "2748:92:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed", - "nativeSrc": "2583:264:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2674:9:39", - "nodeType": "YulTypedName", - "src": "2674:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2686:6:39", - "nodeType": "YulTypedName", - "src": "2686:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2697:4:39", - "nodeType": "YulTypedName", - "src": "2697:4:39", - "type": "" - } - ], - "src": "2583:264:39" - }, - { - "body": { - "nativeSrc": "2924:66:39", - "nodeType": "YulBlock", - "src": "2924:66:39", - "statements": [ - { - "nativeSrc": "2934:50:39", - "nodeType": "YulAssignment", - "src": "2934:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2978:5:39", - "nodeType": "YulIdentifier", - "src": "2978:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "2947:30:39", - "nodeType": "YulIdentifier", - "src": "2947:30:39" - }, - "nativeSrc": "2947:37:39", - "nodeType": "YulFunctionCall", - "src": "2947:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "2934:9:39", - "nodeType": "YulIdentifier", - "src": "2934:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ENS_$136_to_t_address", - "nativeSrc": "2853:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2904:5:39", - "nodeType": "YulTypedName", - "src": "2904:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "2914:9:39", - "nodeType": "YulTypedName", - "src": "2914:9:39", - "type": "" - } - ], - "src": "2853:137:39" - }, - { - "body": { - "nativeSrc": "3072:77:39", - "nodeType": "YulBlock", - "src": "3072:77:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3089:3:39", - "nodeType": "YulIdentifier", - "src": "3089:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3136:5:39", - "nodeType": "YulIdentifier", - "src": "3136:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ENS_$136_to_t_address", - "nativeSrc": "3094:41:39", - "nodeType": "YulIdentifier", - "src": "3094:41:39" - }, - "nativeSrc": "3094:48:39", - "nodeType": "YulFunctionCall", - "src": "3094:48:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3082:6:39", - "nodeType": "YulIdentifier", - "src": "3082:6:39" - }, - "nativeSrc": "3082:61:39", - "nodeType": "YulFunctionCall", - "src": "3082:61:39" - }, - "nativeSrc": "3082:61:39", - "nodeType": "YulExpressionStatement", - "src": "3082:61:39" - } - ] - }, - "name": "abi_encode_t_contract$_ENS_$136_to_t_address_fromStack", - "nativeSrc": "2996:153:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3060:5:39", - "nodeType": "YulTypedName", - "src": "3060:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "3067:3:39", - "nodeType": "YulTypedName", - "src": "3067:3:39", - "type": "" - } - ], - "src": "2996:153:39" - }, - { - "body": { - "nativeSrc": "3264:135:39", - "nodeType": "YulBlock", - "src": "3264:135:39", - "statements": [ - { - "nativeSrc": "3274:26:39", - "nodeType": "YulAssignment", - "src": "3274:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3286:9:39", - "nodeType": "YulIdentifier", - "src": "3286:9:39" - }, - { - "kind": "number", - "nativeSrc": "3297:2:39", - "nodeType": "YulLiteral", - "src": "3297:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3282:3:39", - "nodeType": "YulIdentifier", - "src": "3282:3:39" - }, - "nativeSrc": "3282:18:39", - "nodeType": "YulFunctionCall", - "src": "3282:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3274:4:39", - "nodeType": "YulIdentifier", - "src": "3274:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "3365:6:39", - "nodeType": "YulIdentifier", - "src": "3365:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3378:9:39", - "nodeType": "YulIdentifier", - "src": "3378:9:39" - }, - { - "kind": "number", - "nativeSrc": "3389:1:39", - "nodeType": "YulLiteral", - "src": "3389:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3374:3:39", - "nodeType": "YulIdentifier", - "src": "3374:3:39" - }, - "nativeSrc": "3374:17:39", - "nodeType": "YulFunctionCall", - "src": "3374:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ENS_$136_to_t_address_fromStack", - "nativeSrc": "3310:54:39", - "nodeType": "YulIdentifier", - "src": "3310:54:39" - }, - "nativeSrc": "3310:82:39", - "nodeType": "YulFunctionCall", - "src": "3310:82:39" - }, - "nativeSrc": "3310:82:39", - "nodeType": "YulExpressionStatement", - "src": "3310:82:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ENS_$136__to_t_address__fromStack_reversed", - "nativeSrc": "3155:244:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3236:9:39", - "nodeType": "YulTypedName", - "src": "3236:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "3248:6:39", - "nodeType": "YulTypedName", - "src": "3248:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "3259:4:39", - "nodeType": "YulTypedName", - "src": "3259:4:39", - "type": "" - } - ], - "src": "3155:244:39" - }, - { - "body": { - "nativeSrc": "3448:79:39", - "nodeType": "YulBlock", - "src": "3448:79:39", - "statements": [ - { - "body": { - "nativeSrc": "3505:16:39", - "nodeType": "YulBlock", - "src": "3505:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3514:1:39", - "nodeType": "YulLiteral", - "src": "3514:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3517:1:39", - "nodeType": "YulLiteral", - "src": "3517:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3507:6:39", - "nodeType": "YulIdentifier", - "src": "3507:6:39" - }, - "nativeSrc": "3507:12:39", - "nodeType": "YulFunctionCall", - "src": "3507:12:39" - }, - "nativeSrc": "3507:12:39", - "nodeType": "YulExpressionStatement", - "src": "3507:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3471:5:39", - "nodeType": "YulIdentifier", - "src": "3471:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3496:5:39", - "nodeType": "YulIdentifier", - "src": "3496:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "3478:17:39", - "nodeType": "YulIdentifier", - "src": "3478:17:39" - }, - "nativeSrc": "3478:24:39", - "nodeType": "YulFunctionCall", - "src": "3478:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3468:2:39", - "nodeType": "YulIdentifier", - "src": "3468:2:39" - }, - "nativeSrc": "3468:35:39", - "nodeType": "YulFunctionCall", - "src": "3468:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3461:6:39", - "nodeType": "YulIdentifier", - "src": "3461:6:39" - }, - "nativeSrc": "3461:43:39", - "nodeType": "YulFunctionCall", - "src": "3461:43:39" - }, - "nativeSrc": "3458:63:39", - "nodeType": "YulIf", - "src": "3458:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "3405:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3441:5:39", - "nodeType": "YulTypedName", - "src": "3441:5:39", - "type": "" - } - ], - "src": "3405:122:39" - }, - { - "body": { - "nativeSrc": "3585:87:39", - "nodeType": "YulBlock", - "src": "3585:87:39", - "statements": [ - { - "nativeSrc": "3595:29:39", - "nodeType": "YulAssignment", - "src": "3595:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3617:6:39", - "nodeType": "YulIdentifier", - "src": "3617:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3604:12:39", - "nodeType": "YulIdentifier", - "src": "3604:12:39" - }, - "nativeSrc": "3604:20:39", - "nodeType": "YulFunctionCall", - "src": "3604:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "3595:5:39", - "nodeType": "YulIdentifier", - "src": "3595:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3660:5:39", - "nodeType": "YulIdentifier", - "src": "3660:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "3633:26:39", - "nodeType": "YulIdentifier", - "src": "3633:26:39" - }, - "nativeSrc": "3633:33:39", - "nodeType": "YulFunctionCall", - "src": "3633:33:39" - }, - "nativeSrc": "3633:33:39", - "nodeType": "YulExpressionStatement", - "src": "3633:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "3533:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3563:6:39", - "nodeType": "YulTypedName", - "src": "3563:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3571:3:39", - "nodeType": "YulTypedName", - "src": "3571:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "3579:5:39", - "nodeType": "YulTypedName", - "src": "3579:5:39", - "type": "" - } - ], - "src": "3533:139:39" - }, - { - "body": { - "nativeSrc": "3761:391:39", - "nodeType": "YulBlock", - "src": "3761:391:39", - "statements": [ - { - "body": { - "nativeSrc": "3807:83:39", - "nodeType": "YulBlock", - "src": "3807:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3809:77:39", - "nodeType": "YulIdentifier", - "src": "3809:77:39" - }, - "nativeSrc": "3809:79:39", - "nodeType": "YulFunctionCall", - "src": "3809:79:39" - }, - "nativeSrc": "3809:79:39", - "nodeType": "YulExpressionStatement", - "src": "3809:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3782:7:39", - "nodeType": "YulIdentifier", - "src": "3782:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3791:9:39", - "nodeType": "YulIdentifier", - "src": "3791:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3778:3:39", - "nodeType": "YulIdentifier", - "src": "3778:3:39" - }, - "nativeSrc": "3778:23:39", - "nodeType": "YulFunctionCall", - "src": "3778:23:39" - }, - { - "kind": "number", - "nativeSrc": "3803:2:39", - "nodeType": "YulLiteral", - "src": "3803:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3774:3:39", - "nodeType": "YulIdentifier", - "src": "3774:3:39" - }, - "nativeSrc": "3774:32:39", - "nodeType": "YulFunctionCall", - "src": "3774:32:39" - }, - "nativeSrc": "3771:119:39", - "nodeType": "YulIf", - "src": "3771:119:39" - }, - { - "nativeSrc": "3900:117:39", - "nodeType": "YulBlock", - "src": "3900:117:39", - "statements": [ - { - "nativeSrc": "3915:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3915:15:39", - "value": { - "kind": "number", - "nativeSrc": "3929:1:39", - "nodeType": "YulLiteral", - "src": "3929:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3919:6:39", - "nodeType": "YulTypedName", - "src": "3919:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3944:63:39", - "nodeType": "YulAssignment", - "src": "3944:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3979:9:39", - "nodeType": "YulIdentifier", - "src": "3979:9:39" - }, - { - "name": "offset", - "nativeSrc": "3990:6:39", - "nodeType": "YulIdentifier", - "src": "3990:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3975:3:39", - "nodeType": "YulIdentifier", - "src": "3975:3:39" - }, - "nativeSrc": "3975:22:39", - "nodeType": "YulFunctionCall", - "src": "3975:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3999:7:39", - "nodeType": "YulIdentifier", - "src": "3999:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "3954:20:39", - "nodeType": "YulIdentifier", - "src": "3954:20:39" - }, - "nativeSrc": "3954:53:39", - "nodeType": "YulFunctionCall", - "src": "3954:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3944:6:39", - "nodeType": "YulIdentifier", - "src": "3944:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4027:118:39", - "nodeType": "YulBlock", - "src": "4027:118:39", - "statements": [ - { - "nativeSrc": "4042:16:39", - "nodeType": "YulVariableDeclaration", - "src": "4042:16:39", - "value": { - "kind": "number", - "nativeSrc": "4056:2:39", - "nodeType": "YulLiteral", - "src": "4056:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4046:6:39", - "nodeType": "YulTypedName", - "src": "4046:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4072:63:39", - "nodeType": "YulAssignment", - "src": "4072:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4107:9:39", - "nodeType": "YulIdentifier", - "src": "4107:9:39" - }, - { - "name": "offset", - "nativeSrc": "4118:6:39", - "nodeType": "YulIdentifier", - "src": "4118:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4103:3:39", - "nodeType": "YulIdentifier", - "src": "4103:3:39" - }, - "nativeSrc": "4103:22:39", - "nodeType": "YulFunctionCall", - "src": "4103:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4127:7:39", - "nodeType": "YulIdentifier", - "src": "4127:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "4082:20:39", - "nodeType": "YulIdentifier", - "src": "4082:20:39" - }, - "nativeSrc": "4082:53:39", - "nodeType": "YulFunctionCall", - "src": "4082:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4072:6:39", - "nodeType": "YulIdentifier", - "src": "4072:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32", - "nativeSrc": "3678:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3723:9:39", - "nodeType": "YulTypedName", - "src": "3723:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3734:7:39", - "nodeType": "YulTypedName", - "src": "3734:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3746:6:39", - "nodeType": "YulTypedName", - "src": "3746:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3754:6:39", - "nodeType": "YulTypedName", - "src": "3754:6:39", - "type": "" - } - ], - "src": "3678:474:39" - }, - { - "body": { - "nativeSrc": "4223:53:39", - "nodeType": "YulBlock", - "src": "4223:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4240:3:39", - "nodeType": "YulIdentifier", - "src": "4240:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4263:5:39", - "nodeType": "YulIdentifier", - "src": "4263:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "4245:17:39", - "nodeType": "YulIdentifier", - "src": "4245:17:39" - }, - "nativeSrc": "4245:24:39", - "nodeType": "YulFunctionCall", - "src": "4245:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4233:6:39", - "nodeType": "YulIdentifier", - "src": "4233:6:39" - }, - "nativeSrc": "4233:37:39", - "nodeType": "YulFunctionCall", - "src": "4233:37:39" - }, - "nativeSrc": "4233:37:39", - "nodeType": "YulExpressionStatement", - "src": "4233:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4158:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4211:5:39", - "nodeType": "YulTypedName", - "src": "4211:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4218:3:39", - "nodeType": "YulTypedName", - "src": "4218:3:39", - "type": "" - } - ], - "src": "4158:118:39" - }, - { - "body": { - "nativeSrc": "4347:53:39", - "nodeType": "YulBlock", - "src": "4347:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4364:3:39", - "nodeType": "YulIdentifier", - "src": "4364:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4387:5:39", - "nodeType": "YulIdentifier", - "src": "4387:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "4369:17:39", - "nodeType": "YulIdentifier", - "src": "4369:17:39" - }, - "nativeSrc": "4369:24:39", - "nodeType": "YulFunctionCall", - "src": "4369:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4357:6:39", - "nodeType": "YulIdentifier", - "src": "4357:6:39" - }, - "nativeSrc": "4357:37:39", - "nodeType": "YulFunctionCall", - "src": "4357:37:39" - }, - "nativeSrc": "4357:37:39", - "nodeType": "YulExpressionStatement", - "src": "4357:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "4282:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4335:5:39", - "nodeType": "YulTypedName", - "src": "4335:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4342:3:39", - "nodeType": "YulTypedName", - "src": "4342:3:39", - "type": "" - } - ], - "src": "4282:118:39" - }, - { - "body": { - "nativeSrc": "4484:66:39", - "nodeType": "YulBlock", - "src": "4484:66:39", - "statements": [ - { - "nativeSrc": "4494:50:39", - "nodeType": "YulAssignment", - "src": "4494:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4538:5:39", - "nodeType": "YulIdentifier", - "src": "4538:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "4507:30:39", - "nodeType": "YulIdentifier", - "src": "4507:30:39" - }, - "nativeSrc": "4507:37:39", - "nodeType": "YulFunctionCall", - "src": "4507:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "4494:9:39", - "nodeType": "YulIdentifier", - "src": "4494:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "4406:144:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4464:5:39", - "nodeType": "YulTypedName", - "src": "4464:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "4474:9:39", - "nodeType": "YulTypedName", - "src": "4474:9:39", - "type": "" - } - ], - "src": "4406:144:39" - }, - { - "body": { - "nativeSrc": "4639:84:39", - "nodeType": "YulBlock", - "src": "4639:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4656:3:39", - "nodeType": "YulIdentifier", - "src": "4656:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4710:5:39", - "nodeType": "YulIdentifier", - "src": "4710:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "4661:48:39", - "nodeType": "YulIdentifier", - "src": "4661:48:39" - }, - "nativeSrc": "4661:55:39", - "nodeType": "YulFunctionCall", - "src": "4661:55:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4649:6:39", - "nodeType": "YulIdentifier", - "src": "4649:6:39" - }, - "nativeSrc": "4649:68:39", - "nodeType": "YulFunctionCall", - "src": "4649:68:39" - }, - "nativeSrc": "4649:68:39", - "nodeType": "YulExpressionStatement", - "src": "4649:68:39" - } - ] - }, - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "4556:167:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4627:5:39", - "nodeType": "YulTypedName", - "src": "4627:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4634:3:39", - "nodeType": "YulTypedName", - "src": "4634:3:39", - "type": "" - } - ], - "src": "4556:167:39" - }, - { - "body": { - "nativeSrc": "4901:306:39", - "nodeType": "YulBlock", - "src": "4901:306:39", - "statements": [ - { - "nativeSrc": "4911:26:39", - "nodeType": "YulAssignment", - "src": "4911:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4923:9:39", - "nodeType": "YulIdentifier", - "src": "4923:9:39" - }, - { - "kind": "number", - "nativeSrc": "4934:2:39", - "nodeType": "YulLiteral", - "src": "4934:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4919:3:39", - "nodeType": "YulIdentifier", - "src": "4919:3:39" - }, - "nativeSrc": "4919:18:39", - "nodeType": "YulFunctionCall", - "src": "4919:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4911:4:39", - "nodeType": "YulIdentifier", - "src": "4911:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4991:6:39", - "nodeType": "YulIdentifier", - "src": "4991:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5004:9:39", - "nodeType": "YulIdentifier", - "src": "5004:9:39" - }, - { - "kind": "number", - "nativeSrc": "5015:1:39", - "nodeType": "YulLiteral", - "src": "5015:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5000:3:39", - "nodeType": "YulIdentifier", - "src": "5000:3:39" - }, - "nativeSrc": "5000:17:39", - "nodeType": "YulFunctionCall", - "src": "5000:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4947:43:39", - "nodeType": "YulIdentifier", - "src": "4947:43:39" - }, - "nativeSrc": "4947:71:39", - "nodeType": "YulFunctionCall", - "src": "4947:71:39" - }, - "nativeSrc": "4947:71:39", - "nodeType": "YulExpressionStatement", - "src": "4947:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "5072:6:39", - "nodeType": "YulIdentifier", - "src": "5072:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5085:9:39", - "nodeType": "YulIdentifier", - "src": "5085:9:39" - }, - { - "kind": "number", - "nativeSrc": "5096:2:39", - "nodeType": "YulLiteral", - "src": "5096:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5081:3:39", - "nodeType": "YulIdentifier", - "src": "5081:3:39" - }, - "nativeSrc": "5081:18:39", - "nodeType": "YulFunctionCall", - "src": "5081:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "5028:43:39", - "nodeType": "YulIdentifier", - "src": "5028:43:39" - }, - "nativeSrc": "5028:72:39", - "nodeType": "YulFunctionCall", - "src": "5028:72:39" - }, - "nativeSrc": "5028:72:39", - "nodeType": "YulExpressionStatement", - "src": "5028:72:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "5172:6:39", - "nodeType": "YulIdentifier", - "src": "5172:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5185:9:39", - "nodeType": "YulIdentifier", - "src": "5185:9:39" - }, - { - "kind": "number", - "nativeSrc": "5196:2:39", - "nodeType": "YulLiteral", - "src": "5196:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5181:3:39", - "nodeType": "YulIdentifier", - "src": "5181:3:39" - }, - "nativeSrc": "5181:18:39", - "nodeType": "YulFunctionCall", - "src": "5181:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "5110:61:39", - "nodeType": "YulIdentifier", - "src": "5110:61:39" - }, - "nativeSrc": "5110:90:39", - "nodeType": "YulFunctionCall", - "src": "5110:90:39" - }, - "nativeSrc": "5110:90:39", - "nodeType": "YulExpressionStatement", - "src": "5110:90:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8101__to_t_address_t_bytes32_t_address__fromStack_reversed", - "nativeSrc": "4729:478:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4857:9:39", - "nodeType": "YulTypedName", - "src": "4857:9:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4869:6:39", - "nodeType": "YulTypedName", - "src": "4869:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4877:6:39", - "nodeType": "YulTypedName", - "src": "4877:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4885:6:39", - "nodeType": "YulTypedName", - "src": "4885:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4896:4:39", - "nodeType": "YulTypedName", - "src": "4896:4:39", - "type": "" - } - ], - "src": "4729:478:39" - }, - { - "body": { - "nativeSrc": "5339:206:39", - "nodeType": "YulBlock", - "src": "5339:206:39", - "statements": [ - { - "nativeSrc": "5349:26:39", - "nodeType": "YulAssignment", - "src": "5349:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5361:9:39", - "nodeType": "YulIdentifier", - "src": "5361:9:39" - }, - { - "kind": "number", - "nativeSrc": "5372:2:39", - "nodeType": "YulLiteral", - "src": "5372:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5357:3:39", - "nodeType": "YulIdentifier", - "src": "5357:3:39" - }, - "nativeSrc": "5357:18:39", - "nodeType": "YulFunctionCall", - "src": "5357:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5349:4:39", - "nodeType": "YulIdentifier", - "src": "5349:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5429:6:39", - "nodeType": "YulIdentifier", - "src": "5429:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5442:9:39", - "nodeType": "YulIdentifier", - "src": "5442:9:39" - }, - { - "kind": "number", - "nativeSrc": "5453:1:39", - "nodeType": "YulLiteral", - "src": "5453:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5438:3:39", - "nodeType": "YulIdentifier", - "src": "5438:3:39" - }, - "nativeSrc": "5438:17:39", - "nodeType": "YulFunctionCall", - "src": "5438:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "5385:43:39", - "nodeType": "YulIdentifier", - "src": "5385:43:39" - }, - "nativeSrc": "5385:71:39", - "nodeType": "YulFunctionCall", - "src": "5385:71:39" - }, - "nativeSrc": "5385:71:39", - "nodeType": "YulExpressionStatement", - "src": "5385:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "5510:6:39", - "nodeType": "YulIdentifier", - "src": "5510:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5523:9:39", - "nodeType": "YulIdentifier", - "src": "5523:9:39" - }, - { - "kind": "number", - "nativeSrc": "5534:2:39", - "nodeType": "YulLiteral", - "src": "5534:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5519:3:39", - "nodeType": "YulIdentifier", - "src": "5519:3:39" - }, - "nativeSrc": "5519:18:39", - "nodeType": "YulFunctionCall", - "src": "5519:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "5466:43:39", - "nodeType": "YulIdentifier", - "src": "5466:43:39" - }, - "nativeSrc": "5466:72:39", - "nodeType": "YulFunctionCall", - "src": "5466:72:39" - }, - "nativeSrc": "5466:72:39", - "nodeType": "YulExpressionStatement", - "src": "5466:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "5213:332:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5303:9:39", - "nodeType": "YulTypedName", - "src": "5303:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "5315:6:39", - "nodeType": "YulTypedName", - "src": "5315:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5323:6:39", - "nodeType": "YulTypedName", - "src": "5323:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5334:4:39", - "nodeType": "YulTypedName", - "src": "5334:4:39", - "type": "" - } - ], - "src": "5213:332:39" - }, - { - "body": { - "nativeSrc": "5649:124:39", - "nodeType": "YulBlock", - "src": "5649:124:39", - "statements": [ - { - "nativeSrc": "5659:26:39", - "nodeType": "YulAssignment", - "src": "5659:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5671:9:39", - "nodeType": "YulIdentifier", - "src": "5671:9:39" - }, - { - "kind": "number", - "nativeSrc": "5682:2:39", - "nodeType": "YulLiteral", - "src": "5682:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5667:3:39", - "nodeType": "YulIdentifier", - "src": "5667:3:39" - }, - "nativeSrc": "5667:18:39", - "nodeType": "YulFunctionCall", - "src": "5667:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5659:4:39", - "nodeType": "YulIdentifier", - "src": "5659:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5739:6:39", - "nodeType": "YulIdentifier", - "src": "5739:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5752:9:39", - "nodeType": "YulIdentifier", - "src": "5752:9:39" - }, - { - "kind": "number", - "nativeSrc": "5763:1:39", - "nodeType": "YulLiteral", - "src": "5763:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5748:3:39", - "nodeType": "YulIdentifier", - "src": "5748:3:39" - }, - "nativeSrc": "5748:17:39", - "nodeType": "YulFunctionCall", - "src": "5748:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "5695:43:39", - "nodeType": "YulIdentifier", - "src": "5695:43:39" - }, - "nativeSrc": "5695:71:39", - "nodeType": "YulFunctionCall", - "src": "5695:71:39" - }, - "nativeSrc": "5695:71:39", - "nodeType": "YulExpressionStatement", - "src": "5695:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "5551:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5621:9:39", - "nodeType": "YulTypedName", - "src": "5621:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5633:6:39", - "nodeType": "YulTypedName", - "src": "5633:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5644:4:39", - "nodeType": "YulTypedName", - "src": "5644:4:39", - "type": "" - } - ], - "src": "5551:222:39" - }, - { - "body": { - "nativeSrc": "5842:80:39", - "nodeType": "YulBlock", - "src": "5842:80:39", - "statements": [ - { - "nativeSrc": "5852:22:39", - "nodeType": "YulAssignment", - "src": "5852:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "5867:6:39", - "nodeType": "YulIdentifier", - "src": "5867:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5861:5:39", - "nodeType": "YulIdentifier", - "src": "5861:5:39" - }, - "nativeSrc": "5861:13:39", - "nodeType": "YulFunctionCall", - "src": "5861:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "5852:5:39", - "nodeType": "YulIdentifier", - "src": "5852:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5910:5:39", - "nodeType": "YulIdentifier", - "src": "5910:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "5883:26:39", - "nodeType": "YulIdentifier", - "src": "5883:26:39" - }, - "nativeSrc": "5883:33:39", - "nodeType": "YulFunctionCall", - "src": "5883:33:39" - }, - "nativeSrc": "5883:33:39", - "nodeType": "YulExpressionStatement", - "src": "5883:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "5779:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "5820:6:39", - "nodeType": "YulTypedName", - "src": "5820:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "5828:3:39", - "nodeType": "YulTypedName", - "src": "5828:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "5836:5:39", - "nodeType": "YulTypedName", - "src": "5836:5:39", - "type": "" - } - ], - "src": "5779:143:39" - }, - { - "body": { - "nativeSrc": "6005:274:39", - "nodeType": "YulBlock", - "src": "6005:274:39", - "statements": [ - { - "body": { - "nativeSrc": "6051:83:39", - "nodeType": "YulBlock", - "src": "6051:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "6053:77:39", - "nodeType": "YulIdentifier", - "src": "6053:77:39" - }, - "nativeSrc": "6053:79:39", - "nodeType": "YulFunctionCall", - "src": "6053:79:39" - }, - "nativeSrc": "6053:79:39", - "nodeType": "YulExpressionStatement", - "src": "6053:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6026:7:39", - "nodeType": "YulIdentifier", - "src": "6026:7:39" - }, - { - "name": "headStart", - "nativeSrc": "6035:9:39", - "nodeType": "YulIdentifier", - "src": "6035:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6022:3:39", - "nodeType": "YulIdentifier", - "src": "6022:3:39" - }, - "nativeSrc": "6022:23:39", - "nodeType": "YulFunctionCall", - "src": "6022:23:39" - }, - { - "kind": "number", - "nativeSrc": "6047:2:39", - "nodeType": "YulLiteral", - "src": "6047:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6018:3:39", - "nodeType": "YulIdentifier", - "src": "6018:3:39" - }, - "nativeSrc": "6018:32:39", - "nodeType": "YulFunctionCall", - "src": "6018:32:39" - }, - "nativeSrc": "6015:119:39", - "nodeType": "YulIf", - "src": "6015:119:39" - }, - { - "nativeSrc": "6144:128:39", - "nodeType": "YulBlock", - "src": "6144:128:39", - "statements": [ - { - "nativeSrc": "6159:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6159:15:39", - "value": { - "kind": "number", - "nativeSrc": "6173:1:39", - "nodeType": "YulLiteral", - "src": "6173:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6163:6:39", - "nodeType": "YulTypedName", - "src": "6163:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6188:74:39", - "nodeType": "YulAssignment", - "src": "6188:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6234:9:39", - "nodeType": "YulIdentifier", - "src": "6234:9:39" - }, - { - "name": "offset", - "nativeSrc": "6245:6:39", - "nodeType": "YulIdentifier", - "src": "6245:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6230:3:39", - "nodeType": "YulIdentifier", - "src": "6230:3:39" - }, - "nativeSrc": "6230:22:39", - "nodeType": "YulFunctionCall", - "src": "6230:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6254:7:39", - "nodeType": "YulIdentifier", - "src": "6254:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "6198:31:39", - "nodeType": "YulIdentifier", - "src": "6198:31:39" - }, - "nativeSrc": "6198:64:39", - "nodeType": "YulFunctionCall", - "src": "6198:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6188:6:39", - "nodeType": "YulIdentifier", - "src": "6188:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "5928:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5975:9:39", - "nodeType": "YulTypedName", - "src": "5975:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "5986:7:39", - "nodeType": "YulTypedName", - "src": "5986:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "5998:6:39", - "nodeType": "YulTypedName", - "src": "5998:6:39", - "type": "" - } - ], - "src": "5928:351:39" - } - ] - }, - "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_$8101(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$8101(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$8101(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$8101(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IVerifier_$8101(value)\n }\n\n function abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8101(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_$8101(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_$7736_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7736_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7736_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_$8101_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$8101_to_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8101__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_$8101_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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "7230": [ - { - "length": 32, - "start": 410 - }, - { - "length": 32, - "start": 636 - } - ], - "7233": [ - { - "length": 32, - "start": 218 - }, - { - "length": 32, - "start": 374 - }, - { - "length": 32, - "start": 458 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea2646970667358221220c90dbfa0c27c6833e6ed98d1937d68c4ddcf4ef68d5d349eef2753821461b49064736f6c634300081c0033", - "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 0xC9 0xD 0xBF LOG0 0xC2 PUSH29 0x6833E6ED98D1937D68C4DDCF4EF68D5D349EEF2753821461B49064736F PUSH13 0x634300081C0033000000000000 ", - "sourceMap": "669:2681:32:-: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:32:-;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:39:-;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\":\"0x8e208b44d5dbf22552fe72d79b45c640855b84fbc9ee21f4c3bb4bfe81cbe8db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcf03e1a9386d80ff6b8e31870063424454f69d2626c0efb2c8cf55e69151489\",\"dweb:/ipfs/QmVYgfMSc1ve5JWePqiAGSXEfD76emw3oLsCM1krstmJq5\"]},\"@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 - }, - "@_7381": { - "entryPoint": null, - "id": 7381, - "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_3399": { - "entryPoint": 297, - "id": 3399, - "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:39", - "nodeType": "YulBlock", - "src": "0:2081:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "889:53:39", - "nodeType": "YulBlock", - "src": "889:53:39", - "statements": [ - { - "nativeSrc": "899:37:39", - "nodeType": "YulAssignment", - "src": "899:37:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "914:5:39", - "nodeType": "YulIdentifier", - "src": "914:5:39" - }, - { - "kind": "number", - "nativeSrc": "921:14:39", - "nodeType": "YulLiteral", - "src": "921:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "910:3:39", - "nodeType": "YulIdentifier", - "src": "910:3:39" - }, - "nativeSrc": "910:26:39", - "nodeType": "YulFunctionCall", - "src": "910:26:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "899:7:39", - "nodeType": "YulIdentifier", - "src": "899:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint48", - "nativeSrc": "845:97:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "871:5:39", - "nodeType": "YulTypedName", - "src": "871:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "881:7:39", - "nodeType": "YulTypedName", - "src": "881:7:39", - "type": "" - } - ], - "src": "845:97:39" - }, - { - "body": { - "nativeSrc": "990:78:39", - "nodeType": "YulBlock", - "src": "990:78:39", - "statements": [ - { - "body": { - "nativeSrc": "1046:16:39", - "nodeType": "YulBlock", - "src": "1046:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1055:1:39", - "nodeType": "YulLiteral", - "src": "1055:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1058:1:39", - "nodeType": "YulLiteral", - "src": "1058:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1048:6:39", - "nodeType": "YulIdentifier", - "src": "1048:6:39" - }, - "nativeSrc": "1048:12:39", - "nodeType": "YulFunctionCall", - "src": "1048:12:39" - }, - "nativeSrc": "1048:12:39", - "nodeType": "YulExpressionStatement", - "src": "1048:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1013:5:39", - "nodeType": "YulIdentifier", - "src": "1013:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1037:5:39", - "nodeType": "YulIdentifier", - "src": "1037:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "1020:16:39", - "nodeType": "YulIdentifier", - "src": "1020:16:39" - }, - "nativeSrc": "1020:23:39", - "nodeType": "YulFunctionCall", - "src": "1020:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1010:2:39", - "nodeType": "YulIdentifier", - "src": "1010:2:39" - }, - "nativeSrc": "1010:34:39", - "nodeType": "YulFunctionCall", - "src": "1010:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1003:6:39", - "nodeType": "YulIdentifier", - "src": "1003:6:39" - }, - "nativeSrc": "1003:42:39", - "nodeType": "YulFunctionCall", - "src": "1003:42:39" - }, - "nativeSrc": "1000:62:39", - "nodeType": "YulIf", - "src": "1000:62:39" - } - ] - }, - "name": "validator_revert_t_uint48", - "nativeSrc": "948:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "983:5:39", - "nodeType": "YulTypedName", - "src": "983:5:39", - "type": "" - } - ], - "src": "948:120:39" - }, - { - "body": { - "nativeSrc": "1136:79:39", - "nodeType": "YulBlock", - "src": "1136:79:39", - "statements": [ - { - "nativeSrc": "1146:22:39", - "nodeType": "YulAssignment", - "src": "1146:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1161:6:39", - "nodeType": "YulIdentifier", - "src": "1161:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "1155:5:39", - "nodeType": "YulIdentifier", - "src": "1155:5:39" - }, - "nativeSrc": "1155:13:39", - "nodeType": "YulFunctionCall", - "src": "1155:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1146:5:39", - "nodeType": "YulIdentifier", - "src": "1146:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1203:5:39", - "nodeType": "YulIdentifier", - "src": "1203:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint48", - "nativeSrc": "1177:25:39", - "nodeType": "YulIdentifier", - "src": "1177:25:39" - }, - "nativeSrc": "1177:32:39", - "nodeType": "YulFunctionCall", - "src": "1177:32:39" - }, - "nativeSrc": "1177:32:39", - "nodeType": "YulExpressionStatement", - "src": "1177:32:39" - } - ] - }, - "name": "abi_decode_t_uint48_fromMemory", - "nativeSrc": "1074:141:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1114:6:39", - "nodeType": "YulTypedName", - "src": "1114:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1122:3:39", - "nodeType": "YulTypedName", - "src": "1122:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1130:5:39", - "nodeType": "YulTypedName", - "src": "1130:5:39", - "type": "" - } - ], - "src": "1074:141:39" - }, - { - "body": { - "nativeSrc": "1314:412:39", - "nodeType": "YulBlock", - "src": "1314:412:39", - "statements": [ - { - "body": { - "nativeSrc": "1360:83:39", - "nodeType": "YulBlock", - "src": "1360:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1362:77:39", - "nodeType": "YulIdentifier", - "src": "1362:77:39" - }, - "nativeSrc": "1362:79:39", - "nodeType": "YulFunctionCall", - "src": "1362:79:39" - }, - "nativeSrc": "1362:79:39", - "nodeType": "YulExpressionStatement", - "src": "1362:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1335:7:39", - "nodeType": "YulIdentifier", - "src": "1335:7:39" - }, - { - "name": "headStart", - "nativeSrc": "1344:9:39", - "nodeType": "YulIdentifier", - "src": "1344:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1331:3:39", - "nodeType": "YulIdentifier", - "src": "1331:3:39" - }, - "nativeSrc": "1331:23:39", - "nodeType": "YulFunctionCall", - "src": "1331:23:39" - }, - { - "kind": "number", - "nativeSrc": "1356:2:39", - "nodeType": "YulLiteral", - "src": "1356:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1327:3:39", - "nodeType": "YulIdentifier", - "src": "1327:3:39" - }, - "nativeSrc": "1327:32:39", - "nodeType": "YulFunctionCall", - "src": "1327:32:39" - }, - "nativeSrc": "1324:119:39", - "nodeType": "YulIf", - "src": "1324:119:39" - }, - { - "nativeSrc": "1453:128:39", - "nodeType": "YulBlock", - "src": "1453:128:39", - "statements": [ - { - "nativeSrc": "1468:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1468:15:39", - "value": { - "kind": "number", - "nativeSrc": "1482:1:39", - "nodeType": "YulLiteral", - "src": "1482:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1472:6:39", - "nodeType": "YulTypedName", - "src": "1472:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1497:74:39", - "nodeType": "YulAssignment", - "src": "1497:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1543:9:39", - "nodeType": "YulIdentifier", - "src": "1543:9:39" - }, - { - "name": "offset", - "nativeSrc": "1554:6:39", - "nodeType": "YulIdentifier", - "src": "1554:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1539:3:39", - "nodeType": "YulIdentifier", - "src": "1539:3:39" - }, - "nativeSrc": "1539:22:39", - "nodeType": "YulFunctionCall", - "src": "1539:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1563:7:39", - "nodeType": "YulIdentifier", - "src": "1563:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1507:31:39", - "nodeType": "YulIdentifier", - "src": "1507:31:39" - }, - "nativeSrc": "1507:64:39", - "nodeType": "YulFunctionCall", - "src": "1507:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1497:6:39", - "nodeType": "YulIdentifier", - "src": "1497:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "1591:128:39", - "nodeType": "YulBlock", - "src": "1591:128:39", - "statements": [ - { - "nativeSrc": "1606:16:39", - "nodeType": "YulVariableDeclaration", - "src": "1606:16:39", - "value": { - "kind": "number", - "nativeSrc": "1620:2:39", - "nodeType": "YulLiteral", - "src": "1620:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1610:6:39", - "nodeType": "YulTypedName", - "src": "1610:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1636:73:39", - "nodeType": "YulAssignment", - "src": "1636:73:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1681:9:39", - "nodeType": "YulIdentifier", - "src": "1681:9:39" - }, - { - "name": "offset", - "nativeSrc": "1692:6:39", - "nodeType": "YulIdentifier", - "src": "1692:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1677:3:39", - "nodeType": "YulIdentifier", - "src": "1677:3:39" - }, - "nativeSrc": "1677:22:39", - "nodeType": "YulFunctionCall", - "src": "1677:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1701:7:39", - "nodeType": "YulIdentifier", - "src": "1701:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint48_fromMemory", - "nativeSrc": "1646:30:39", - "nodeType": "YulIdentifier", - "src": "1646:30:39" - }, - "nativeSrc": "1646:63:39", - "nodeType": "YulFunctionCall", - "src": "1646:63:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1636:6:39", - "nodeType": "YulIdentifier", - "src": "1636:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint48_fromMemory", - "nativeSrc": "1221:505:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1276:9:39", - "nodeType": "YulTypedName", - "src": "1276:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1287:7:39", - "nodeType": "YulTypedName", - "src": "1287:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1299:6:39", - "nodeType": "YulTypedName", - "src": "1299:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1307:6:39", - "nodeType": "YulTypedName", - "src": "1307:6:39", - "type": "" - } - ], - "src": "1221:505:39" - }, - { - "body": { - "nativeSrc": "1797:53:39", - "nodeType": "YulBlock", - "src": "1797:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1814:3:39", - "nodeType": "YulIdentifier", - "src": "1814:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1837:5:39", - "nodeType": "YulIdentifier", - "src": "1837:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1819:17:39", - "nodeType": "YulIdentifier", - "src": "1819:17:39" - }, - "nativeSrc": "1819:24:39", - "nodeType": "YulFunctionCall", - "src": "1819:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1807:6:39", - "nodeType": "YulIdentifier", - "src": "1807:6:39" - }, - "nativeSrc": "1807:37:39", - "nodeType": "YulFunctionCall", - "src": "1807:37:39" - }, - "nativeSrc": "1807:37:39", - "nodeType": "YulExpressionStatement", - "src": "1807:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1732:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1785:5:39", - "nodeType": "YulTypedName", - "src": "1785:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1792:3:39", - "nodeType": "YulTypedName", - "src": "1792:3:39", - "type": "" - } - ], - "src": "1732:118:39" - }, - { - "body": { - "nativeSrc": "1954:124:39", - "nodeType": "YulBlock", - "src": "1954:124:39", - "statements": [ - { - "nativeSrc": "1964:26:39", - "nodeType": "YulAssignment", - "src": "1964:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1976:9:39", - "nodeType": "YulIdentifier", - "src": "1976:9:39" - }, - { - "kind": "number", - "nativeSrc": "1987:2:39", - "nodeType": "YulLiteral", - "src": "1987:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1972:3:39", - "nodeType": "YulIdentifier", - "src": "1972:3:39" - }, - "nativeSrc": "1972:18:39", - "nodeType": "YulFunctionCall", - "src": "1972:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1964:4:39", - "nodeType": "YulIdentifier", - "src": "1964:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2044:6:39", - "nodeType": "YulIdentifier", - "src": "2044:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2057:9:39", - "nodeType": "YulIdentifier", - "src": "2057:9:39" - }, - { - "kind": "number", - "nativeSrc": "2068:1:39", - "nodeType": "YulLiteral", - "src": "2068:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2053:3:39", - "nodeType": "YulIdentifier", - "src": "2053:3:39" - }, - "nativeSrc": "2053:17:39", - "nodeType": "YulFunctionCall", - "src": "2053:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "2000:43:39", - "nodeType": "YulIdentifier", - "src": "2000:43:39" - }, - "nativeSrc": "2000:71:39", - "nodeType": "YulFunctionCall", - "src": "2000:71:39" - }, - "nativeSrc": "2000:71:39", - "nodeType": "YulExpressionStatement", - "src": "2000:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "1856:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1926:9:39", - "nodeType": "YulTypedName", - "src": "1926:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1938:6:39", - "nodeType": "YulTypedName", - "src": "1938:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1949:4:39", - "nodeType": "YulTypedName", - "src": "1949:4:39", - "type": "" - } - ], - "src": "1856:222:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60a060405234801561001057600080fd5b50604051611f85380380611f858339818101604052810190610032919061043c565b8061004161012960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b35760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100aa919061048b565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100eb6000801b8261013160201b60201c565b5050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506104a6565b600033905090565b60008060001b83036101f257600073ffffffffffffffffffffffffffffffffffffffff1661016361020a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146101b0576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610202838361023460201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610246838361033160201b60201c565b61032657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102c361012960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061032b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103cb826103a0565b9050919050565b6103db816103c0565b81146103e657600080fd5b50565b6000815190506103f8816103d2565b92915050565b600065ffffffffffff82169050919050565b610419816103fe565b811461042457600080fd5b50565b60008151905061043681610410565b92915050565b600080604083850312156104535761045261039b565b5b6000610461858286016103e9565b925050602061047285828601610427565b9150509250929050565b610485816103c0565b82525050565b60006020820190506104a0600083018461047c565b92915050565b608051611ab66104cf6000396000818161063e0152818161079601526109fb0152611ab66000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea2646970667358221220d44239aa553373132c81fc8c57e3b38437535b47175888a8cbee49e7e0b303e064736f6c634300081c0033", - "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1F85 CODESIZE SUB DUP1 PUSH2 0x1F85 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 0x1AB6 PUSH2 0x4CF PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x63E ADD MSTORE DUP2 DUP2 PUSH2 0x796 ADD MSTORE PUSH2 0x9FB ADD MSTORE PUSH2 0x1AB6 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 0x14BB JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x1503 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 0x153F 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 0x1590 JUMP JUMPDEST PUSH2 0x466 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x15CC 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 0x15CC 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 0x1645 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x223 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21E SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x4F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x1685 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x16DE JUMP JUMPDEST PUSH2 0x622 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x272 SWAP2 SWAP1 PUSH2 0x176A 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 0x1794 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 0x1794 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 0x1645 JUMP JUMPDEST PUSH2 0x699 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0x1503 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 0x17AF 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 0x15CC 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 0x17D8 JUMP JUMPDEST PUSH2 0x76A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x153F 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 0x1818 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 0x1645 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 0x187F 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 0x153F 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 0x18D2 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 0x1794 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 0x191C 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 0x1982 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 0x153F 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 0x1982 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 0x17AF 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 0x153F 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 0x18D2 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 0x1A1D 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 0x1A46 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 PUSH2 0x1430 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1438 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1443 DUP5 PUSH2 0x1452 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1498 DUP2 PUSH2 0x1463 JUMP JUMPDEST DUP2 EQ PUSH2 0x14A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14B5 DUP2 PUSH2 0x148F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D1 JUMPI PUSH2 0x14D0 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14DF DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14FD DUP2 PUSH2 0x14E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1518 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x14F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1539 DUP2 PUSH2 0x151E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1554 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x156D DUP2 PUSH2 0x155A JUMP JUMPDEST DUP2 EQ PUSH2 0x1578 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x158A DUP2 PUSH2 0x1564 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15A6 JUMPI PUSH2 0x15A5 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x15B4 DUP5 DUP3 DUP6 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15C6 DUP2 PUSH2 0x155A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15E1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1612 DUP3 PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1622 DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP2 EQ PUSH2 0x162D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x163F DUP2 PUSH2 0x1619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x165C JUMPI PUSH2 0x165B PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x166A DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x167B DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x169B JUMPI PUSH2 0x169A PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x16A9 DUP5 DUP3 DUP6 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16BB DUP2 PUSH2 0x151E JUMP JUMPDEST DUP2 EQ PUSH2 0x16C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16D8 DUP2 PUSH2 0x16B2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F4 JUMPI PUSH2 0x16F3 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1702 DUP5 DUP3 DUP6 ADD PUSH2 0x16C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1730 PUSH2 0x172B PUSH2 0x1726 DUP5 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1742 DUP3 PUSH2 0x1715 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1754 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1764 DUP2 PUSH2 0x1749 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x177F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x175B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178E DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17A9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1785 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17C4 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1530 JUMP JUMPDEST PUSH2 0x17D1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17EF JUMPI PUSH2 0x17EE PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17FD DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x180E DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x182D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x183A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x184C DUP3 PUSH2 0x1607 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x185C DUP2 PUSH2 0x1841 JUMP JUMPDEST DUP2 EQ PUSH2 0x1867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1879 DUP2 PUSH2 0x1853 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1898 JUMPI PUSH2 0x1897 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x18A6 DUP7 DUP3 DUP8 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x18B7 DUP7 DUP3 DUP8 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18C8 DUP7 DUP3 DUP8 ADD PUSH2 0x186A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x18E7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x18F4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1906 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1916 DUP2 PUSH2 0x18FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1931 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x193E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x15BD JUMP JUMPDEST PUSH2 0x194B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x190D 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 0x198D DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1998 DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19B6 JUMPI PUSH2 0x19B5 PUSH2 0x1953 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 0x19EE PUSH2 0x19E9 PUSH2 0x19E4 DUP5 PUSH2 0x19BC JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x19C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FE DUP2 PUSH2 0x19D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A17 DUP2 PUSH2 0x1A04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A32 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x19F5 JUMP JUMPDEST PUSH2 0x1A3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A0E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A51 DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1A5C DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7A JUMPI PUSH2 0x1A79 PUSH2 0x1953 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 TIMESTAMP CODECOPY 0xAA SSTORE CALLER PUSH20 0x132C81FC8C57E3B38437535B47175888A8CBEE49 0xE7 0xE0 0xB3 SUB 0xE0 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "743:1954:33:-: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:33::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:39:-;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:33:-;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@DEFAULT_ADMIN_ROLE_1222": { - "entryPoint": 1891, - "id": 1222, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@REGISTER_DOMAIN_ROLE_7358": { - "entryPoint": 1157, - "id": 7358, - "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_3399": { - "entryPoint": 3281, - "id": 3399, - "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_4003": { - "entryPoint": 5153, - "id": 4003, - "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_7423": { - "entryPoint": 2511, - "id": 7423, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@registerDomain_7400": { - "entryPoint": 1898, - "id": 7400, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@registry_7361": { - "entryPoint": 1596, - "id": 7361, - "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_3755": { - "entryPoint": 3543, - "id": 3755, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@ternary_3965": { - "entryPoint": 5176, - "id": 3965, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@toUint48_6129": { - "entryPoint": 4306, - "id": 6129, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@toUint_7138": { - "entryPoint": 5202, - "id": 7138, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_decode_t_address": { - "entryPoint": 5680, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes32": { - "entryPoint": 5499, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes4": { - "entryPoint": 5286, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_contract$_IVerifier_$8101": { - "entryPoint": 6250, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_uint48": { - "entryPoint": 5833, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 5765, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_bytes32": { - "entryPoint": 6104, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8101": { - "entryPoint": 6271, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_bytes32": { - "entryPoint": 5520, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32t_address": { - "entryPoint": 5701, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes4": { - "entryPoint": 5307, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint48": { - "entryPoint": 5854, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_address_to_t_address_fromStack": { - "entryPoint": 6021, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bool_to_t_bool_fromStack": { - "entryPoint": 5364, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bytes32_to_t_bytes32_fromStack": { - "entryPoint": 5565, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack": { - "entryPoint": 5979, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack": { - "entryPoint": 6413, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack": { - "entryPoint": 6645, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 6670, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint48_to_t_uint48_fromStack": { - "entryPoint": 5424, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": 6036, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { - "entryPoint": 6354, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8101__to_t_address_t_bytes32_t_address__fromStack_reversed": { - "entryPoint": 6428, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed": { - "entryPoint": 6168, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": 5379, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": 5580, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed": { - "entryPoint": 5994, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed": { - "entryPoint": 6685, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed": { - "entryPoint": 5439, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed": { - "entryPoint": 6063, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "checked_add_t_uint48": { - "entryPoint": 6530, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_sub_t_uint48": { - "entryPoint": 6726, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_address": { - "entryPoint": 5639, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bool": { - "entryPoint": 5352, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes32": { - "entryPoint": 5466, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes4": { - "entryPoint": 5219, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_contract$_IVerifier_$8101": { - "entryPoint": 6209, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_rational_48_by_1": { - "entryPoint": 6588, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 5607, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 6660, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint48": { - "entryPoint": 5406, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint8": { - "entryPoint": 6598, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_ISciRegistry_$7736_to_t_address": { - "entryPoint": 5961, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_IVerifier_$8101_to_t_address": { - "entryPoint": 6395, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_rational_48_by_1_to_t_uint8": { - "entryPoint": 6611, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_uint160_to_t_address": { - "entryPoint": 5943, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_uint160_to_t_uint160": { - "entryPoint": 5909, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "identity": { - "entryPoint": 5899, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x11": { - "entryPoint": 6483, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 5214, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "validator_revert_t_address": { - "entryPoint": 5657, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes32": { - "entryPoint": 5476, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes4": { - "entryPoint": 5263, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_contract$_IVerifier_$8101": { - "entryPoint": 6227, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint48": { - "entryPoint": 5810, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:11304:39", - "nodeType": "YulBlock", - "src": "0:11304:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "378:105:39", - "nodeType": "YulBlock", - "src": "378:105:39", - "statements": [ - { - "nativeSrc": "388:89:39", - "nodeType": "YulAssignment", - "src": "388:89:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "403:5:39", - "nodeType": "YulIdentifier", - "src": "403:5:39" - }, - { - "kind": "number", - "nativeSrc": "410:66:39", - "nodeType": "YulLiteral", - "src": "410:66:39", - "type": "", - "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "399:3:39", - "nodeType": "YulIdentifier", - "src": "399:3:39" - }, - "nativeSrc": "399:78:39", - "nodeType": "YulFunctionCall", - "src": "399:78:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "388:7:39", - "nodeType": "YulIdentifier", - "src": "388:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes4", - "nativeSrc": "334:149:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "360:5:39", - "nodeType": "YulTypedName", - "src": "360:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "370:7:39", - "nodeType": "YulTypedName", - "src": "370:7:39", - "type": "" - } - ], - "src": "334:149:39" - }, - { - "body": { - "nativeSrc": "531:78:39", - "nodeType": "YulBlock", - "src": "531:78:39", - "statements": [ - { - "body": { - "nativeSrc": "587:16:39", - "nodeType": "YulBlock", - "src": "587:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "596:1:39", - "nodeType": "YulLiteral", - "src": "596:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "599:1:39", - "nodeType": "YulLiteral", - "src": "599:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "589:6:39", - "nodeType": "YulIdentifier", - "src": "589:6:39" - }, - "nativeSrc": "589:12:39", - "nodeType": "YulFunctionCall", - "src": "589:12:39" - }, - "nativeSrc": "589:12:39", - "nodeType": "YulExpressionStatement", - "src": "589:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "554:5:39", - "nodeType": "YulIdentifier", - "src": "554:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "578:5:39", - "nodeType": "YulIdentifier", - "src": "578:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes4", - "nativeSrc": "561:16:39", - "nodeType": "YulIdentifier", - "src": "561:16:39" - }, - "nativeSrc": "561:23:39", - "nodeType": "YulFunctionCall", - "src": "561:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "551:2:39", - "nodeType": "YulIdentifier", - "src": "551:2:39" - }, - "nativeSrc": "551:34:39", - "nodeType": "YulFunctionCall", - "src": "551:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "544:6:39", - "nodeType": "YulIdentifier", - "src": "544:6:39" - }, - "nativeSrc": "544:42:39", - "nodeType": "YulFunctionCall", - "src": "544:42:39" - }, - "nativeSrc": "541:62:39", - "nodeType": "YulIf", - "src": "541:62:39" - } - ] - }, - "name": "validator_revert_t_bytes4", - "nativeSrc": "489:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "524:5:39", - "nodeType": "YulTypedName", - "src": "524:5:39", - "type": "" - } - ], - "src": "489:120:39" - }, - { - "body": { - "nativeSrc": "666:86:39", - "nodeType": "YulBlock", - "src": "666:86:39", - "statements": [ - { - "nativeSrc": "676:29:39", - "nodeType": "YulAssignment", - "src": "676:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "698:6:39", - "nodeType": "YulIdentifier", - "src": "698:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "685:12:39", - "nodeType": "YulIdentifier", - "src": "685:12:39" - }, - "nativeSrc": "685:20:39", - "nodeType": "YulFunctionCall", - "src": "685:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "676:5:39", - "nodeType": "YulIdentifier", - "src": "676:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "740:5:39", - "nodeType": "YulIdentifier", - "src": "740:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes4", - "nativeSrc": "714:25:39", - "nodeType": "YulIdentifier", - "src": "714:25:39" - }, - "nativeSrc": "714:32:39", - "nodeType": "YulFunctionCall", - "src": "714:32:39" - }, - "nativeSrc": "714:32:39", - "nodeType": "YulExpressionStatement", - "src": "714:32:39" - } - ] - }, - "name": "abi_decode_t_bytes4", - "nativeSrc": "615:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "644:6:39", - "nodeType": "YulTypedName", - "src": "644:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "652:3:39", - "nodeType": "YulTypedName", - "src": "652:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "660:5:39", - "nodeType": "YulTypedName", - "src": "660:5:39", - "type": "" - } - ], - "src": "615:137:39" - }, - { - "body": { - "nativeSrc": "823:262:39", - "nodeType": "YulBlock", - "src": "823:262:39", - "statements": [ - { - "body": { - "nativeSrc": "869:83:39", - "nodeType": "YulBlock", - "src": "869:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "871:77:39", - "nodeType": "YulIdentifier", - "src": "871:77:39" - }, - "nativeSrc": "871:79:39", - "nodeType": "YulFunctionCall", - "src": "871:79:39" - }, - "nativeSrc": "871:79:39", - "nodeType": "YulExpressionStatement", - "src": "871:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "844:7:39", - "nodeType": "YulIdentifier", - "src": "844:7:39" - }, - { - "name": "headStart", - "nativeSrc": "853:9:39", - "nodeType": "YulIdentifier", - "src": "853:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "840:3:39", - "nodeType": "YulIdentifier", - "src": "840:3:39" - }, - "nativeSrc": "840:23:39", - "nodeType": "YulFunctionCall", - "src": "840:23:39" - }, - { - "kind": "number", - "nativeSrc": "865:2:39", - "nodeType": "YulLiteral", - "src": "865:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "836:3:39", - "nodeType": "YulIdentifier", - "src": "836:3:39" - }, - "nativeSrc": "836:32:39", - "nodeType": "YulFunctionCall", - "src": "836:32:39" - }, - "nativeSrc": "833:119:39", - "nodeType": "YulIf", - "src": "833:119:39" - }, - { - "nativeSrc": "962:116:39", - "nodeType": "YulBlock", - "src": "962:116:39", - "statements": [ - { - "nativeSrc": "977:15:39", - "nodeType": "YulVariableDeclaration", - "src": "977:15:39", - "value": { - "kind": "number", - "nativeSrc": "991:1:39", - "nodeType": "YulLiteral", - "src": "991:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "981:6:39", - "nodeType": "YulTypedName", - "src": "981:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1006:62:39", - "nodeType": "YulAssignment", - "src": "1006:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1040:9:39", - "nodeType": "YulIdentifier", - "src": "1040:9:39" - }, - { - "name": "offset", - "nativeSrc": "1051:6:39", - "nodeType": "YulIdentifier", - "src": "1051:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1036:3:39", - "nodeType": "YulIdentifier", - "src": "1036:3:39" - }, - "nativeSrc": "1036:22:39", - "nodeType": "YulFunctionCall", - "src": "1036:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1060:7:39", - "nodeType": "YulIdentifier", - "src": "1060:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes4", - "nativeSrc": "1016:19:39", - "nodeType": "YulIdentifier", - "src": "1016:19:39" - }, - "nativeSrc": "1016:52:39", - "nodeType": "YulFunctionCall", - "src": "1016:52:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1006:6:39", - "nodeType": "YulIdentifier", - "src": "1006:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes4", - "nativeSrc": "758:327:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "793:9:39", - "nodeType": "YulTypedName", - "src": "793:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "804:7:39", - "nodeType": "YulTypedName", - "src": "804:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "816:6:39", - "nodeType": "YulTypedName", - "src": "816:6:39", - "type": "" - } - ], - "src": "758:327:39" - }, - { - "body": { - "nativeSrc": "1133:48:39", - "nodeType": "YulBlock", - "src": "1133:48:39", - "statements": [ - { - "nativeSrc": "1143:32:39", - "nodeType": "YulAssignment", - "src": "1143:32:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1168:5:39", - "nodeType": "YulIdentifier", - "src": "1168:5:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1161:6:39", - "nodeType": "YulIdentifier", - "src": "1161:6:39" - }, - "nativeSrc": "1161:13:39", - "nodeType": "YulFunctionCall", - "src": "1161:13:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1154:6:39", - "nodeType": "YulIdentifier", - "src": "1154:6:39" - }, - "nativeSrc": "1154:21:39", - "nodeType": "YulFunctionCall", - "src": "1154:21:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1143:7:39", - "nodeType": "YulIdentifier", - "src": "1143:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bool", - "nativeSrc": "1091:90:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1115:5:39", - "nodeType": "YulTypedName", - "src": "1115:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1125:7:39", - "nodeType": "YulTypedName", - "src": "1125:7:39", - "type": "" - } - ], - "src": "1091:90:39" - }, - { - "body": { - "nativeSrc": "1246:50:39", - "nodeType": "YulBlock", - "src": "1246:50:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1263:3:39", - "nodeType": "YulIdentifier", - "src": "1263:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1283:5:39", - "nodeType": "YulIdentifier", - "src": "1283:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "1268:14:39", - "nodeType": "YulIdentifier", - "src": "1268:14:39" - }, - "nativeSrc": "1268:21:39", - "nodeType": "YulFunctionCall", - "src": "1268:21:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1256:6:39", - "nodeType": "YulIdentifier", - "src": "1256:6:39" - }, - "nativeSrc": "1256:34:39", - "nodeType": "YulFunctionCall", - "src": "1256:34:39" - }, - "nativeSrc": "1256:34:39", - "nodeType": "YulExpressionStatement", - "src": "1256:34:39" - } - ] - }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "1187:109:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1234:5:39", - "nodeType": "YulTypedName", - "src": "1234:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1241:3:39", - "nodeType": "YulTypedName", - "src": "1241:3:39", - "type": "" - } - ], - "src": "1187:109:39" - }, - { - "body": { - "nativeSrc": "1394:118:39", - "nodeType": "YulBlock", - "src": "1394:118:39", - "statements": [ - { - "nativeSrc": "1404:26:39", - "nodeType": "YulAssignment", - "src": "1404:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1416:9:39", - "nodeType": "YulIdentifier", - "src": "1416:9:39" - }, - { - "kind": "number", - "nativeSrc": "1427:2:39", - "nodeType": "YulLiteral", - "src": "1427:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1412:3:39", - "nodeType": "YulIdentifier", - "src": "1412:3:39" - }, - "nativeSrc": "1412:18:39", - "nodeType": "YulFunctionCall", - "src": "1412:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1404:4:39", - "nodeType": "YulIdentifier", - "src": "1404:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1478:6:39", - "nodeType": "YulIdentifier", - "src": "1478:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1491:9:39", - "nodeType": "YulIdentifier", - "src": "1491:9:39" - }, - { - "kind": "number", - "nativeSrc": "1502:1:39", - "nodeType": "YulLiteral", - "src": "1502:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1487:3:39", - "nodeType": "YulIdentifier", - "src": "1487:3:39" - }, - "nativeSrc": "1487:17:39", - "nodeType": "YulFunctionCall", - "src": "1487:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "1440:37:39", - "nodeType": "YulIdentifier", - "src": "1440:37:39" - }, - "nativeSrc": "1440:65:39", - "nodeType": "YulFunctionCall", - "src": "1440:65:39" - }, - "nativeSrc": "1440:65:39", - "nodeType": "YulExpressionStatement", - "src": "1440:65:39" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "1302:210:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1366:9:39", - "nodeType": "YulTypedName", - "src": "1366:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1378:6:39", - "nodeType": "YulTypedName", - "src": "1378:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1389:4:39", - "nodeType": "YulTypedName", - "src": "1389:4:39", - "type": "" - } - ], - "src": "1302:210:39" - }, - { - "body": { - "nativeSrc": "1562:53:39", - "nodeType": "YulBlock", - "src": "1562:53:39", - "statements": [ - { - "nativeSrc": "1572:37:39", - "nodeType": "YulAssignment", - "src": "1572:37:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1587:5:39", - "nodeType": "YulIdentifier", - "src": "1587:5:39" - }, - { - "kind": "number", - "nativeSrc": "1594:14:39", - "nodeType": "YulLiteral", - "src": "1594:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1583:3:39", - "nodeType": "YulIdentifier", - "src": "1583:3:39" - }, - "nativeSrc": "1583:26:39", - "nodeType": "YulFunctionCall", - "src": "1583:26:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1572:7:39", - "nodeType": "YulIdentifier", - "src": "1572:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint48", - "nativeSrc": "1518:97:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1544:5:39", - "nodeType": "YulTypedName", - "src": "1544:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1554:7:39", - "nodeType": "YulTypedName", - "src": "1554:7:39", - "type": "" - } - ], - "src": "1518:97:39" - }, - { - "body": { - "nativeSrc": "1684:52:39", - "nodeType": "YulBlock", - "src": "1684:52:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1701:3:39", - "nodeType": "YulIdentifier", - "src": "1701:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1723:5:39", - "nodeType": "YulIdentifier", - "src": "1723:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "1706:16:39", - "nodeType": "YulIdentifier", - "src": "1706:16:39" - }, - "nativeSrc": "1706:23:39", - "nodeType": "YulFunctionCall", - "src": "1706:23:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1694:6:39", - "nodeType": "YulIdentifier", - "src": "1694:6:39" - }, - "nativeSrc": "1694:36:39", - "nodeType": "YulFunctionCall", - "src": "1694:36:39" - }, - "nativeSrc": "1694:36:39", - "nodeType": "YulExpressionStatement", - "src": "1694:36:39" - } - ] - }, - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "1621:115:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1672:5:39", - "nodeType": "YulTypedName", - "src": "1672:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1679:3:39", - "nodeType": "YulTypedName", - "src": "1679:3:39", - "type": "" - } - ], - "src": "1621:115:39" - }, - { - "body": { - "nativeSrc": "1838:122:39", - "nodeType": "YulBlock", - "src": "1838:122:39", - "statements": [ - { - "nativeSrc": "1848:26:39", - "nodeType": "YulAssignment", - "src": "1848:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1860:9:39", - "nodeType": "YulIdentifier", - "src": "1860:9:39" - }, - { - "kind": "number", - "nativeSrc": "1871:2:39", - "nodeType": "YulLiteral", - "src": "1871:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1856:3:39", - "nodeType": "YulIdentifier", - "src": "1856:3:39" - }, - "nativeSrc": "1856:18:39", - "nodeType": "YulFunctionCall", - "src": "1856:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1848:4:39", - "nodeType": "YulIdentifier", - "src": "1848:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1926:6:39", - "nodeType": "YulIdentifier", - "src": "1926:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1939:9:39", - "nodeType": "YulIdentifier", - "src": "1939:9:39" - }, - { - "kind": "number", - "nativeSrc": "1950:1:39", - "nodeType": "YulLiteral", - "src": "1950:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1935:3:39", - "nodeType": "YulIdentifier", - "src": "1935:3:39" - }, - "nativeSrc": "1935:17:39", - "nodeType": "YulFunctionCall", - "src": "1935:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "1884:41:39", - "nodeType": "YulIdentifier", - "src": "1884:41:39" - }, - "nativeSrc": "1884:69:39", - "nodeType": "YulFunctionCall", - "src": "1884:69:39" - }, - "nativeSrc": "1884:69:39", - "nodeType": "YulExpressionStatement", - "src": "1884:69:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed", - "nativeSrc": "1742:218:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1810:9:39", - "nodeType": "YulTypedName", - "src": "1810:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1822:6:39", - "nodeType": "YulTypedName", - "src": "1822:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1833:4:39", - "nodeType": "YulTypedName", - "src": "1833:4:39", - "type": "" - } - ], - "src": "1742:218:39" - }, - { - "body": { - "nativeSrc": "2011:32:39", - "nodeType": "YulBlock", - "src": "2011:32:39", - "statements": [ - { - "nativeSrc": "2021:16:39", - "nodeType": "YulAssignment", - "src": "2021:16:39", - "value": { - "name": "value", - "nativeSrc": "2032:5:39", - "nodeType": "YulIdentifier", - "src": "2032:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "2021:7:39", - "nodeType": "YulIdentifier", - "src": "2021:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "1966:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1993:5:39", - "nodeType": "YulTypedName", - "src": "1993:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "2003:7:39", - "nodeType": "YulTypedName", - "src": "2003:7:39", - "type": "" - } - ], - "src": "1966:77:39" - }, - { - "body": { - "nativeSrc": "2092:79:39", - "nodeType": "YulBlock", - "src": "2092:79:39", - "statements": [ - { - "body": { - "nativeSrc": "2149:16:39", - "nodeType": "YulBlock", - "src": "2149:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2158:1:39", - "nodeType": "YulLiteral", - "src": "2158:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2161:1:39", - "nodeType": "YulLiteral", - "src": "2161:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2151:6:39", - "nodeType": "YulIdentifier", - "src": "2151:6:39" - }, - "nativeSrc": "2151:12:39", - "nodeType": "YulFunctionCall", - "src": "2151:12:39" - }, - "nativeSrc": "2151:12:39", - "nodeType": "YulExpressionStatement", - "src": "2151:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2115:5:39", - "nodeType": "YulIdentifier", - "src": "2115:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2140:5:39", - "nodeType": "YulIdentifier", - "src": "2140:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "2122:17:39", - "nodeType": "YulIdentifier", - "src": "2122:17:39" - }, - "nativeSrc": "2122:24:39", - "nodeType": "YulFunctionCall", - "src": "2122:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "2112:2:39", - "nodeType": "YulIdentifier", - "src": "2112:2:39" - }, - "nativeSrc": "2112:35:39", - "nodeType": "YulFunctionCall", - "src": "2112:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2105:6:39", - "nodeType": "YulIdentifier", - "src": "2105:6:39" - }, - "nativeSrc": "2105:43:39", - "nodeType": "YulFunctionCall", - "src": "2105:43:39" - }, - "nativeSrc": "2102:63:39", - "nodeType": "YulIf", - "src": "2102:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "2049:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2085:5:39", - "nodeType": "YulTypedName", - "src": "2085:5:39", - "type": "" - } - ], - "src": "2049:122:39" - }, - { - "body": { - "nativeSrc": "2229:87:39", - "nodeType": "YulBlock", - "src": "2229:87:39", - "statements": [ - { - "nativeSrc": "2239:29:39", - "nodeType": "YulAssignment", - "src": "2239:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2261:6:39", - "nodeType": "YulIdentifier", - "src": "2261:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2248:12:39", - "nodeType": "YulIdentifier", - "src": "2248:12:39" - }, - "nativeSrc": "2248:20:39", - "nodeType": "YulFunctionCall", - "src": "2248:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "2239:5:39", - "nodeType": "YulIdentifier", - "src": "2239:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2304:5:39", - "nodeType": "YulIdentifier", - "src": "2304:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "2277:26:39", - "nodeType": "YulIdentifier", - "src": "2277:26:39" - }, - "nativeSrc": "2277:33:39", - "nodeType": "YulFunctionCall", - "src": "2277:33:39" - }, - "nativeSrc": "2277:33:39", - "nodeType": "YulExpressionStatement", - "src": "2277:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "2177:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2207:6:39", - "nodeType": "YulTypedName", - "src": "2207:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2215:3:39", - "nodeType": "YulTypedName", - "src": "2215:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "2223:5:39", - "nodeType": "YulTypedName", - "src": "2223:5:39", - "type": "" - } - ], - "src": "2177:139:39" - }, - { - "body": { - "nativeSrc": "2388:263:39", - "nodeType": "YulBlock", - "src": "2388:263:39", - "statements": [ - { - "body": { - "nativeSrc": "2434:83:39", - "nodeType": "YulBlock", - "src": "2434:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2436:77:39", - "nodeType": "YulIdentifier", - "src": "2436:77:39" - }, - "nativeSrc": "2436:79:39", - "nodeType": "YulFunctionCall", - "src": "2436:79:39" - }, - "nativeSrc": "2436:79:39", - "nodeType": "YulExpressionStatement", - "src": "2436:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2409:7:39", - "nodeType": "YulIdentifier", - "src": "2409:7:39" - }, - { - "name": "headStart", - "nativeSrc": "2418:9:39", - "nodeType": "YulIdentifier", - "src": "2418:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2405:3:39", - "nodeType": "YulIdentifier", - "src": "2405:3:39" - }, - "nativeSrc": "2405:23:39", - "nodeType": "YulFunctionCall", - "src": "2405:23:39" - }, - { - "kind": "number", - "nativeSrc": "2430:2:39", - "nodeType": "YulLiteral", - "src": "2430:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2401:3:39", - "nodeType": "YulIdentifier", - "src": "2401:3:39" - }, - "nativeSrc": "2401:32:39", - "nodeType": "YulFunctionCall", - "src": "2401:32:39" - }, - "nativeSrc": "2398:119:39", - "nodeType": "YulIf", - "src": "2398:119:39" - }, - { - "nativeSrc": "2527:117:39", - "nodeType": "YulBlock", - "src": "2527:117:39", - "statements": [ - { - "nativeSrc": "2542:15:39", - "nodeType": "YulVariableDeclaration", - "src": "2542:15:39", - "value": { - "kind": "number", - "nativeSrc": "2556:1:39", - "nodeType": "YulLiteral", - "src": "2556:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2546:6:39", - "nodeType": "YulTypedName", - "src": "2546:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2571:63:39", - "nodeType": "YulAssignment", - "src": "2571:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2606:9:39", - "nodeType": "YulIdentifier", - "src": "2606:9:39" - }, - { - "name": "offset", - "nativeSrc": "2617:6:39", - "nodeType": "YulIdentifier", - "src": "2617:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2602:3:39", - "nodeType": "YulIdentifier", - "src": "2602:3:39" - }, - "nativeSrc": "2602:22:39", - "nodeType": "YulFunctionCall", - "src": "2602:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2626:7:39", - "nodeType": "YulIdentifier", - "src": "2626:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "2581:20:39", - "nodeType": "YulIdentifier", - "src": "2581:20:39" - }, - "nativeSrc": "2581:53:39", - "nodeType": "YulFunctionCall", - "src": "2581:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2571:6:39", - "nodeType": "YulIdentifier", - "src": "2571:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "2322:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2358:9:39", - "nodeType": "YulTypedName", - "src": "2358:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "2369:7:39", - "nodeType": "YulTypedName", - "src": "2369:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "2381:6:39", - "nodeType": "YulTypedName", - "src": "2381:6:39", - "type": "" - } - ], - "src": "2322:329:39" - }, - { - "body": { - "nativeSrc": "2722:53:39", - "nodeType": "YulBlock", - "src": "2722:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2739:3:39", - "nodeType": "YulIdentifier", - "src": "2739:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2762:5:39", - "nodeType": "YulIdentifier", - "src": "2762:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "2744:17:39", - "nodeType": "YulIdentifier", - "src": "2744:17:39" - }, - "nativeSrc": "2744:24:39", - "nodeType": "YulFunctionCall", - "src": "2744:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2732:6:39", - "nodeType": "YulIdentifier", - "src": "2732:6:39" - }, - "nativeSrc": "2732:37:39", - "nodeType": "YulFunctionCall", - "src": "2732:37:39" - }, - "nativeSrc": "2732:37:39", - "nodeType": "YulExpressionStatement", - "src": "2732:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2657:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2710:5:39", - "nodeType": "YulTypedName", - "src": "2710:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2717:3:39", - "nodeType": "YulTypedName", - "src": "2717:3:39", - "type": "" - } - ], - "src": "2657:118:39" - }, - { - "body": { - "nativeSrc": "2879:124:39", - "nodeType": "YulBlock", - "src": "2879:124:39", - "statements": [ - { - "nativeSrc": "2889:26:39", - "nodeType": "YulAssignment", - "src": "2889:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2901:9:39", - "nodeType": "YulIdentifier", - "src": "2901:9:39" - }, - { - "kind": "number", - "nativeSrc": "2912:2:39", - "nodeType": "YulLiteral", - "src": "2912:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2897:3:39", - "nodeType": "YulIdentifier", - "src": "2897:3:39" - }, - "nativeSrc": "2897:18:39", - "nodeType": "YulFunctionCall", - "src": "2897:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2889:4:39", - "nodeType": "YulIdentifier", - "src": "2889:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2969:6:39", - "nodeType": "YulIdentifier", - "src": "2969:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2982:9:39", - "nodeType": "YulIdentifier", - "src": "2982:9:39" - }, - { - "kind": "number", - "nativeSrc": "2993:1:39", - "nodeType": "YulLiteral", - "src": "2993:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2978:3:39", - "nodeType": "YulIdentifier", - "src": "2978:3:39" - }, - "nativeSrc": "2978:17:39", - "nodeType": "YulFunctionCall", - "src": "2978:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2925:43:39", - "nodeType": "YulIdentifier", - "src": "2925:43:39" - }, - "nativeSrc": "2925:71:39", - "nodeType": "YulFunctionCall", - "src": "2925:71:39" - }, - "nativeSrc": "2925:71:39", - "nodeType": "YulExpressionStatement", - "src": "2925:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "2781:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2851:9:39", - "nodeType": "YulTypedName", - "src": "2851:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2863:6:39", - "nodeType": "YulTypedName", - "src": "2863:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2874:4:39", - "nodeType": "YulTypedName", - "src": "2874:4:39", - "type": "" - } - ], - "src": "2781:222:39" - }, - { - "body": { - "nativeSrc": "3054:81:39", - "nodeType": "YulBlock", - "src": "3054:81:39", - "statements": [ - { - "nativeSrc": "3064:65:39", - "nodeType": "YulAssignment", - "src": "3064:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3079:5:39", - "nodeType": "YulIdentifier", - "src": "3079:5:39" - }, - { - "kind": "number", - "nativeSrc": "3086:42:39", - "nodeType": "YulLiteral", - "src": "3086:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "3075:3:39", - "nodeType": "YulIdentifier", - "src": "3075:3:39" - }, - "nativeSrc": "3075:54:39", - "nodeType": "YulFunctionCall", - "src": "3075:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "3064:7:39", - "nodeType": "YulIdentifier", - "src": "3064:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "3009:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3036:5:39", - "nodeType": "YulTypedName", - "src": "3036:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "3046:7:39", - "nodeType": "YulTypedName", - "src": "3046:7:39", - "type": "" - } - ], - "src": "3009:126:39" - }, - { - "body": { - "nativeSrc": "3186:51:39", - "nodeType": "YulBlock", - "src": "3186:51:39", - "statements": [ - { - "nativeSrc": "3196:35:39", - "nodeType": "YulAssignment", - "src": "3196:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3225:5:39", - "nodeType": "YulIdentifier", - "src": "3225:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "3207:17:39", - "nodeType": "YulIdentifier", - "src": "3207:17:39" - }, - "nativeSrc": "3207:24:39", - "nodeType": "YulFunctionCall", - "src": "3207:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "3196:7:39", - "nodeType": "YulIdentifier", - "src": "3196:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "3141:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3168:5:39", - "nodeType": "YulTypedName", - "src": "3168:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "3178:7:39", - "nodeType": "YulTypedName", - "src": "3178:7:39", - "type": "" - } - ], - "src": "3141:96:39" - }, - { - "body": { - "nativeSrc": "3286:79:39", - "nodeType": "YulBlock", - "src": "3286:79:39", - "statements": [ - { - "body": { - "nativeSrc": "3343:16:39", - "nodeType": "YulBlock", - "src": "3343:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3352:1:39", - "nodeType": "YulLiteral", - "src": "3352:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3355:1:39", - "nodeType": "YulLiteral", - "src": "3355:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3345:6:39", - "nodeType": "YulIdentifier", - "src": "3345:6:39" - }, - "nativeSrc": "3345:12:39", - "nodeType": "YulFunctionCall", - "src": "3345:12:39" - }, - "nativeSrc": "3345:12:39", - "nodeType": "YulExpressionStatement", - "src": "3345:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3309:5:39", - "nodeType": "YulIdentifier", - "src": "3309:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3334:5:39", - "nodeType": "YulIdentifier", - "src": "3334:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "3316:17:39", - "nodeType": "YulIdentifier", - "src": "3316:17:39" - }, - "nativeSrc": "3316:24:39", - "nodeType": "YulFunctionCall", - "src": "3316:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3306:2:39", - "nodeType": "YulIdentifier", - "src": "3306:2:39" - }, - "nativeSrc": "3306:35:39", - "nodeType": "YulFunctionCall", - "src": "3306:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3299:6:39", - "nodeType": "YulIdentifier", - "src": "3299:6:39" - }, - "nativeSrc": "3299:43:39", - "nodeType": "YulFunctionCall", - "src": "3299:43:39" - }, - "nativeSrc": "3296:63:39", - "nodeType": "YulIf", - "src": "3296:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "3243:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3279:5:39", - "nodeType": "YulTypedName", - "src": "3279:5:39", - "type": "" - } - ], - "src": "3243:122:39" - }, - { - "body": { - "nativeSrc": "3423:87:39", - "nodeType": "YulBlock", - "src": "3423:87:39", - "statements": [ - { - "nativeSrc": "3433:29:39", - "nodeType": "YulAssignment", - "src": "3433:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3455:6:39", - "nodeType": "YulIdentifier", - "src": "3455:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3442:12:39", - "nodeType": "YulIdentifier", - "src": "3442:12:39" - }, - "nativeSrc": "3442:20:39", - "nodeType": "YulFunctionCall", - "src": "3442:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "3433:5:39", - "nodeType": "YulIdentifier", - "src": "3433:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3498:5:39", - "nodeType": "YulIdentifier", - "src": "3498:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "3471:26:39", - "nodeType": "YulIdentifier", - "src": "3471:26:39" - }, - "nativeSrc": "3471:33:39", - "nodeType": "YulFunctionCall", - "src": "3471:33:39" - }, - "nativeSrc": "3471:33:39", - "nodeType": "YulExpressionStatement", - "src": "3471:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "3371:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3401:6:39", - "nodeType": "YulTypedName", - "src": "3401:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3409:3:39", - "nodeType": "YulTypedName", - "src": "3409:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "3417:5:39", - "nodeType": "YulTypedName", - "src": "3417:5:39", - "type": "" - } - ], - "src": "3371:139:39" - }, - { - "body": { - "nativeSrc": "3599:391:39", - "nodeType": "YulBlock", - "src": "3599:391:39", - "statements": [ - { - "body": { - "nativeSrc": "3645:83:39", - "nodeType": "YulBlock", - "src": "3645:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3647:77:39", - "nodeType": "YulIdentifier", - "src": "3647:77:39" - }, - "nativeSrc": "3647:79:39", - "nodeType": "YulFunctionCall", - "src": "3647:79:39" - }, - "nativeSrc": "3647:79:39", - "nodeType": "YulExpressionStatement", - "src": "3647:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3620:7:39", - "nodeType": "YulIdentifier", - "src": "3620:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3629:9:39", - "nodeType": "YulIdentifier", - "src": "3629:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3616:3:39", - "nodeType": "YulIdentifier", - "src": "3616:3:39" - }, - "nativeSrc": "3616:23:39", - "nodeType": "YulFunctionCall", - "src": "3616:23:39" - }, - { - "kind": "number", - "nativeSrc": "3641:2:39", - "nodeType": "YulLiteral", - "src": "3641:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3612:3:39", - "nodeType": "YulIdentifier", - "src": "3612:3:39" - }, - "nativeSrc": "3612:32:39", - "nodeType": "YulFunctionCall", - "src": "3612:32:39" - }, - "nativeSrc": "3609:119:39", - "nodeType": "YulIf", - "src": "3609:119:39" - }, - { - "nativeSrc": "3738:117:39", - "nodeType": "YulBlock", - "src": "3738:117:39", - "statements": [ - { - "nativeSrc": "3753:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3753:15:39", - "value": { - "kind": "number", - "nativeSrc": "3767:1:39", - "nodeType": "YulLiteral", - "src": "3767:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3757:6:39", - "nodeType": "YulTypedName", - "src": "3757:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3782:63:39", - "nodeType": "YulAssignment", - "src": "3782:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3817:9:39", - "nodeType": "YulIdentifier", - "src": "3817:9:39" - }, - { - "name": "offset", - "nativeSrc": "3828:6:39", - "nodeType": "YulIdentifier", - "src": "3828:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3813:3:39", - "nodeType": "YulIdentifier", - "src": "3813:3:39" - }, - "nativeSrc": "3813:22:39", - "nodeType": "YulFunctionCall", - "src": "3813:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3837:7:39", - "nodeType": "YulIdentifier", - "src": "3837:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "3792:20:39", - "nodeType": "YulIdentifier", - "src": "3792:20:39" - }, - "nativeSrc": "3792:53:39", - "nodeType": "YulFunctionCall", - "src": "3792:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3782:6:39", - "nodeType": "YulIdentifier", - "src": "3782:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3865:118:39", - "nodeType": "YulBlock", - "src": "3865:118:39", - "statements": [ - { - "nativeSrc": "3880:16:39", - "nodeType": "YulVariableDeclaration", - "src": "3880:16:39", - "value": { - "kind": "number", - "nativeSrc": "3894:2:39", - "nodeType": "YulLiteral", - "src": "3894:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3884:6:39", - "nodeType": "YulTypedName", - "src": "3884:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3910:63:39", - "nodeType": "YulAssignment", - "src": "3910:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3945:9:39", - "nodeType": "YulIdentifier", - "src": "3945:9:39" - }, - { - "name": "offset", - "nativeSrc": "3956:6:39", - "nodeType": "YulIdentifier", - "src": "3956:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3941:3:39", - "nodeType": "YulIdentifier", - "src": "3941:3:39" - }, - "nativeSrc": "3941:22:39", - "nodeType": "YulFunctionCall", - "src": "3941:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3965:7:39", - "nodeType": "YulIdentifier", - "src": "3965:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "3920:20:39", - "nodeType": "YulIdentifier", - "src": "3920:20:39" - }, - "nativeSrc": "3920:53:39", - "nodeType": "YulFunctionCall", - "src": "3920:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3910:6:39", - "nodeType": "YulIdentifier", - "src": "3910:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_address", - "nativeSrc": "3516:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3561:9:39", - "nodeType": "YulTypedName", - "src": "3561:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3572:7:39", - "nodeType": "YulTypedName", - "src": "3572:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3584:6:39", - "nodeType": "YulTypedName", - "src": "3584:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3592:6:39", - "nodeType": "YulTypedName", - "src": "3592:6:39", - "type": "" - } - ], - "src": "3516:474:39" - }, - { - "body": { - "nativeSrc": "4062:263:39", - "nodeType": "YulBlock", - "src": "4062:263:39", - "statements": [ - { - "body": { - "nativeSrc": "4108:83:39", - "nodeType": "YulBlock", - "src": "4108:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4110:77:39", - "nodeType": "YulIdentifier", - "src": "4110:77:39" - }, - "nativeSrc": "4110:79:39", - "nodeType": "YulFunctionCall", - "src": "4110:79:39" - }, - "nativeSrc": "4110:79:39", - "nodeType": "YulExpressionStatement", - "src": "4110:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4083:7:39", - "nodeType": "YulIdentifier", - "src": "4083:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4092:9:39", - "nodeType": "YulIdentifier", - "src": "4092:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4079:3:39", - "nodeType": "YulIdentifier", - "src": "4079:3:39" - }, - "nativeSrc": "4079:23:39", - "nodeType": "YulFunctionCall", - "src": "4079:23:39" - }, - { - "kind": "number", - "nativeSrc": "4104:2:39", - "nodeType": "YulLiteral", - "src": "4104:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4075:3:39", - "nodeType": "YulIdentifier", - "src": "4075:3:39" - }, - "nativeSrc": "4075:32:39", - "nodeType": "YulFunctionCall", - "src": "4075:32:39" - }, - "nativeSrc": "4072:119:39", - "nodeType": "YulIf", - "src": "4072:119:39" - }, - { - "nativeSrc": "4201:117:39", - "nodeType": "YulBlock", - "src": "4201:117:39", - "statements": [ - { - "nativeSrc": "4216:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4216:15:39", - "value": { - "kind": "number", - "nativeSrc": "4230:1:39", - "nodeType": "YulLiteral", - "src": "4230:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4220:6:39", - "nodeType": "YulTypedName", - "src": "4220:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4245:63:39", - "nodeType": "YulAssignment", - "src": "4245:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4280:9:39", - "nodeType": "YulIdentifier", - "src": "4280:9:39" - }, - { - "name": "offset", - "nativeSrc": "4291:6:39", - "nodeType": "YulIdentifier", - "src": "4291:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4276:3:39", - "nodeType": "YulIdentifier", - "src": "4276:3:39" - }, - "nativeSrc": "4276:22:39", - "nodeType": "YulFunctionCall", - "src": "4276:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4300:7:39", - "nodeType": "YulIdentifier", - "src": "4300:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "4255:20:39", - "nodeType": "YulIdentifier", - "src": "4255:20:39" - }, - "nativeSrc": "4255:53:39", - "nodeType": "YulFunctionCall", - "src": "4255:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4245:6:39", - "nodeType": "YulIdentifier", - "src": "4245:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "3996:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4032:9:39", - "nodeType": "YulTypedName", - "src": "4032:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4043:7:39", - "nodeType": "YulTypedName", - "src": "4043:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4055:6:39", - "nodeType": "YulTypedName", - "src": "4055:6:39", - "type": "" - } - ], - "src": "3996:329:39" - }, - { - "body": { - "nativeSrc": "4373:78:39", - "nodeType": "YulBlock", - "src": "4373:78:39", - "statements": [ - { - "body": { - "nativeSrc": "4429:16:39", - "nodeType": "YulBlock", - "src": "4429:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4438:1:39", - "nodeType": "YulLiteral", - "src": "4438:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "4441:1:39", - "nodeType": "YulLiteral", - "src": "4441:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "4431:6:39", - "nodeType": "YulIdentifier", - "src": "4431:6:39" - }, - "nativeSrc": "4431:12:39", - "nodeType": "YulFunctionCall", - "src": "4431:12:39" - }, - "nativeSrc": "4431:12:39", - "nodeType": "YulExpressionStatement", - "src": "4431:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4396:5:39", - "nodeType": "YulIdentifier", - "src": "4396:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4420:5:39", - "nodeType": "YulIdentifier", - "src": "4420:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "4403:16:39", - "nodeType": "YulIdentifier", - "src": "4403:16:39" - }, - "nativeSrc": "4403:23:39", - "nodeType": "YulFunctionCall", - "src": "4403:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "4393:2:39", - "nodeType": "YulIdentifier", - "src": "4393:2:39" - }, - "nativeSrc": "4393:34:39", - "nodeType": "YulFunctionCall", - "src": "4393:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "4386:6:39", - "nodeType": "YulIdentifier", - "src": "4386:6:39" - }, - "nativeSrc": "4386:42:39", - "nodeType": "YulFunctionCall", - "src": "4386:42:39" - }, - "nativeSrc": "4383:62:39", - "nodeType": "YulIf", - "src": "4383:62:39" - } - ] - }, - "name": "validator_revert_t_uint48", - "nativeSrc": "4331:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4366:5:39", - "nodeType": "YulTypedName", - "src": "4366:5:39", - "type": "" - } - ], - "src": "4331:120:39" - }, - { - "body": { - "nativeSrc": "4508:86:39", - "nodeType": "YulBlock", - "src": "4508:86:39", - "statements": [ - { - "nativeSrc": "4518:29:39", - "nodeType": "YulAssignment", - "src": "4518:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "4540:6:39", - "nodeType": "YulIdentifier", - "src": "4540:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4527:12:39", - "nodeType": "YulIdentifier", - "src": "4527:12:39" - }, - "nativeSrc": "4527:20:39", - "nodeType": "YulFunctionCall", - "src": "4527:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "4518:5:39", - "nodeType": "YulIdentifier", - "src": "4518:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4582:5:39", - "nodeType": "YulIdentifier", - "src": "4582:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint48", - "nativeSrc": "4556:25:39", - "nodeType": "YulIdentifier", - "src": "4556:25:39" - }, - "nativeSrc": "4556:32:39", - "nodeType": "YulFunctionCall", - "src": "4556:32:39" - }, - "nativeSrc": "4556:32:39", - "nodeType": "YulExpressionStatement", - "src": "4556:32:39" - } - ] - }, - "name": "abi_decode_t_uint48", - "nativeSrc": "4457:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "4486:6:39", - "nodeType": "YulTypedName", - "src": "4486:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "4494:3:39", - "nodeType": "YulTypedName", - "src": "4494:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "4502:5:39", - "nodeType": "YulTypedName", - "src": "4502:5:39", - "type": "" - } - ], - "src": "4457:137:39" - }, - { - "body": { - "nativeSrc": "4665:262:39", - "nodeType": "YulBlock", - "src": "4665:262:39", - "statements": [ - { - "body": { - "nativeSrc": "4711:83:39", - "nodeType": "YulBlock", - "src": "4711:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4713:77:39", - "nodeType": "YulIdentifier", - "src": "4713:77:39" - }, - "nativeSrc": "4713:79:39", - "nodeType": "YulFunctionCall", - "src": "4713:79:39" - }, - "nativeSrc": "4713:79:39", - "nodeType": "YulExpressionStatement", - "src": "4713:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4686:7:39", - "nodeType": "YulIdentifier", - "src": "4686:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4695:9:39", - "nodeType": "YulIdentifier", - "src": "4695:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4682:3:39", - "nodeType": "YulIdentifier", - "src": "4682:3:39" - }, - "nativeSrc": "4682:23:39", - "nodeType": "YulFunctionCall", - "src": "4682:23:39" - }, - { - "kind": "number", - "nativeSrc": "4707:2:39", - "nodeType": "YulLiteral", - "src": "4707:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4678:3:39", - "nodeType": "YulIdentifier", - "src": "4678:3:39" - }, - "nativeSrc": "4678:32:39", - "nodeType": "YulFunctionCall", - "src": "4678:32:39" - }, - "nativeSrc": "4675:119:39", - "nodeType": "YulIf", - "src": "4675:119:39" - }, - { - "nativeSrc": "4804:116:39", - "nodeType": "YulBlock", - "src": "4804:116:39", - "statements": [ - { - "nativeSrc": "4819:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4819:15:39", - "value": { - "kind": "number", - "nativeSrc": "4833:1:39", - "nodeType": "YulLiteral", - "src": "4833:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4823:6:39", - "nodeType": "YulTypedName", - "src": "4823:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4848:62:39", - "nodeType": "YulAssignment", - "src": "4848:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4882:9:39", - "nodeType": "YulIdentifier", - "src": "4882:9:39" - }, - { - "name": "offset", - "nativeSrc": "4893:6:39", - "nodeType": "YulIdentifier", - "src": "4893:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4878:3:39", - "nodeType": "YulIdentifier", - "src": "4878:3:39" - }, - "nativeSrc": "4878:22:39", - "nodeType": "YulFunctionCall", - "src": "4878:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4902:7:39", - "nodeType": "YulIdentifier", - "src": "4902:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint48", - "nativeSrc": "4858:19:39", - "nodeType": "YulIdentifier", - "src": "4858:19:39" - }, - "nativeSrc": "4858:52:39", - "nodeType": "YulFunctionCall", - "src": "4858:52:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4848:6:39", - "nodeType": "YulIdentifier", - "src": "4848:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint48", - "nativeSrc": "4600:327:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4635:9:39", - "nodeType": "YulTypedName", - "src": "4635:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4646:7:39", - "nodeType": "YulTypedName", - "src": "4646:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4658:6:39", - "nodeType": "YulTypedName", - "src": "4658:6:39", - "type": "" - } - ], - "src": "4600:327:39" - }, - { - "body": { - "nativeSrc": "4965:28:39", - "nodeType": "YulBlock", - "src": "4965:28:39", - "statements": [ - { - "nativeSrc": "4975:12:39", - "nodeType": "YulAssignment", - "src": "4975:12:39", - "value": { - "name": "value", - "nativeSrc": "4982:5:39", - "nodeType": "YulIdentifier", - "src": "4982:5:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "4975:3:39", - "nodeType": "YulIdentifier", - "src": "4975:3:39" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "4933:60:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4951:5:39", - "nodeType": "YulTypedName", - "src": "4951:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "4961:3:39", - "nodeType": "YulTypedName", - "src": "4961:3:39", - "type": "" - } - ], - "src": "4933:60:39" - }, - { - "body": { - "nativeSrc": "5059:82:39", - "nodeType": "YulBlock", - "src": "5059:82:39", - "statements": [ - { - "nativeSrc": "5069:66:39", - "nodeType": "YulAssignment", - "src": "5069:66:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5127:5:39", - "nodeType": "YulIdentifier", - "src": "5127:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "5109:17:39", - "nodeType": "YulIdentifier", - "src": "5109:17:39" - }, - "nativeSrc": "5109:24:39", - "nodeType": "YulFunctionCall", - "src": "5109:24:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "5100:8:39", - "nodeType": "YulIdentifier", - "src": "5100:8:39" - }, - "nativeSrc": "5100:34:39", - "nodeType": "YulFunctionCall", - "src": "5100:34:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "5082:17:39", - "nodeType": "YulIdentifier", - "src": "5082:17:39" - }, - "nativeSrc": "5082:53:39", - "nodeType": "YulFunctionCall", - "src": "5082:53:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5069:9:39", - "nodeType": "YulIdentifier", - "src": "5069:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "4999:142:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5039:5:39", - "nodeType": "YulTypedName", - "src": "5039:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5049:9:39", - "nodeType": "YulTypedName", - "src": "5049:9:39", - "type": "" - } - ], - "src": "4999:142:39" - }, - { - "body": { - "nativeSrc": "5207:66:39", - "nodeType": "YulBlock", - "src": "5207:66:39", - "statements": [ - { - "nativeSrc": "5217:50:39", - "nodeType": "YulAssignment", - "src": "5217:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5261:5:39", - "nodeType": "YulIdentifier", - "src": "5261:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "5230:30:39", - "nodeType": "YulIdentifier", - "src": "5230:30:39" - }, - "nativeSrc": "5230:37:39", - "nodeType": "YulFunctionCall", - "src": "5230:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5217:9:39", - "nodeType": "YulIdentifier", - "src": "5217:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "5147:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5187:5:39", - "nodeType": "YulTypedName", - "src": "5187:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5197:9:39", - "nodeType": "YulTypedName", - "src": "5197:9:39", - "type": "" - } - ], - "src": "5147:126:39" - }, - { - "body": { - "nativeSrc": "5360:66:39", - "nodeType": "YulBlock", - "src": "5360:66:39", - "statements": [ - { - "nativeSrc": "5370:50:39", - "nodeType": "YulAssignment", - "src": "5370:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5414:5:39", - "nodeType": "YulIdentifier", - "src": "5414:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "5383:30:39", - "nodeType": "YulIdentifier", - "src": "5383:30:39" - }, - "nativeSrc": "5383:37:39", - "nodeType": "YulFunctionCall", - "src": "5383:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5370:9:39", - "nodeType": "YulIdentifier", - "src": "5370:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "5279:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5340:5:39", - "nodeType": "YulTypedName", - "src": "5340:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5350:9:39", - "nodeType": "YulTypedName", - "src": "5350:9:39", - "type": "" - } - ], - "src": "5279:147:39" - }, - { - "body": { - "nativeSrc": "5518:87:39", - "nodeType": "YulBlock", - "src": "5518:87:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5535:3:39", - "nodeType": "YulIdentifier", - "src": "5535:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5592:5:39", - "nodeType": "YulIdentifier", - "src": "5592:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "5540:51:39", - "nodeType": "YulIdentifier", - "src": "5540:51:39" - }, - "nativeSrc": "5540:58:39", - "nodeType": "YulFunctionCall", - "src": "5540:58:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5528:6:39", - "nodeType": "YulIdentifier", - "src": "5528:6:39" - }, - "nativeSrc": "5528:71:39", - "nodeType": "YulFunctionCall", - "src": "5528:71:39" - }, - "nativeSrc": "5528:71:39", - "nodeType": "YulExpressionStatement", - "src": "5528:71:39" - } - ] - }, - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "5432:173:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5506:5:39", - "nodeType": "YulTypedName", - "src": "5506:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5513:3:39", - "nodeType": "YulTypedName", - "src": "5513:3:39", - "type": "" - } - ], - "src": "5432:173:39" - }, - { - "body": { - "nativeSrc": "5730:145:39", - "nodeType": "YulBlock", - "src": "5730:145:39", - "statements": [ - { - "nativeSrc": "5740:26:39", - "nodeType": "YulAssignment", - "src": "5740:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5752:9:39", - "nodeType": "YulIdentifier", - "src": "5752:9:39" - }, - { - "kind": "number", - "nativeSrc": "5763:2:39", - "nodeType": "YulLiteral", - "src": "5763:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5748:3:39", - "nodeType": "YulIdentifier", - "src": "5748:3:39" - }, - "nativeSrc": "5748:18:39", - "nodeType": "YulFunctionCall", - "src": "5748:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5740:4:39", - "nodeType": "YulIdentifier", - "src": "5740:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5841:6:39", - "nodeType": "YulIdentifier", - "src": "5841:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5854:9:39", - "nodeType": "YulIdentifier", - "src": "5854:9:39" - }, - { - "kind": "number", - "nativeSrc": "5865:1:39", - "nodeType": "YulLiteral", - "src": "5865:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5850:3:39", - "nodeType": "YulIdentifier", - "src": "5850:3:39" - }, - "nativeSrc": "5850:17:39", - "nodeType": "YulFunctionCall", - "src": "5850:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "5776:64:39", - "nodeType": "YulIdentifier", - "src": "5776:64:39" - }, - "nativeSrc": "5776:92:39", - "nodeType": "YulFunctionCall", - "src": "5776:92:39" - }, - "nativeSrc": "5776:92:39", - "nodeType": "YulExpressionStatement", - "src": "5776:92:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed", - "nativeSrc": "5611:264:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5702:9:39", - "nodeType": "YulTypedName", - "src": "5702:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5714:6:39", - "nodeType": "YulTypedName", - "src": "5714:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5725:4:39", - "nodeType": "YulTypedName", - "src": "5725:4:39", - "type": "" - } - ], - "src": "5611:264:39" - }, - { - "body": { - "nativeSrc": "5946:53:39", - "nodeType": "YulBlock", - "src": "5946:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5963:3:39", - "nodeType": "YulIdentifier", - "src": "5963:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5986:5:39", - "nodeType": "YulIdentifier", - "src": "5986:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "5968:17:39", - "nodeType": "YulIdentifier", - "src": "5968:17:39" - }, - "nativeSrc": "5968:24:39", - "nodeType": "YulFunctionCall", - "src": "5968:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5956:6:39", - "nodeType": "YulIdentifier", - "src": "5956:6:39" - }, - "nativeSrc": "5956:37:39", - "nodeType": "YulFunctionCall", - "src": "5956:37:39" - }, - "nativeSrc": "5956:37:39", - "nodeType": "YulExpressionStatement", - "src": "5956:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "5881:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5934:5:39", - "nodeType": "YulTypedName", - "src": "5934:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5941:3:39", - "nodeType": "YulTypedName", - "src": "5941:3:39", - "type": "" - } - ], - "src": "5881:118:39" - }, - { - "body": { - "nativeSrc": "6103:124:39", - "nodeType": "YulBlock", - "src": "6103:124:39", - "statements": [ - { - "nativeSrc": "6113:26:39", - "nodeType": "YulAssignment", - "src": "6113:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6125:9:39", - "nodeType": "YulIdentifier", - "src": "6125:9:39" - }, - { - "kind": "number", - "nativeSrc": "6136:2:39", - "nodeType": "YulLiteral", - "src": "6136:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6121:3:39", - "nodeType": "YulIdentifier", - "src": "6121:3:39" - }, - "nativeSrc": "6121:18:39", - "nodeType": "YulFunctionCall", - "src": "6121:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6113:4:39", - "nodeType": "YulIdentifier", - "src": "6113:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6193:6:39", - "nodeType": "YulIdentifier", - "src": "6193:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6206:9:39", - "nodeType": "YulIdentifier", - "src": "6206:9:39" - }, - { - "kind": "number", - "nativeSrc": "6217:1:39", - "nodeType": "YulLiteral", - "src": "6217:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6202:3:39", - "nodeType": "YulIdentifier", - "src": "6202:3:39" - }, - "nativeSrc": "6202:17:39", - "nodeType": "YulFunctionCall", - "src": "6202:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "6149:43:39", - "nodeType": "YulIdentifier", - "src": "6149:43:39" - }, - "nativeSrc": "6149:71:39", - "nodeType": "YulFunctionCall", - "src": "6149:71:39" - }, - "nativeSrc": "6149:71:39", - "nodeType": "YulExpressionStatement", - "src": "6149:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "6005:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6075:9:39", - "nodeType": "YulTypedName", - "src": "6075:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "6087:6:39", - "nodeType": "YulTypedName", - "src": "6087:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "6098:4:39", - "nodeType": "YulTypedName", - "src": "6098:4:39", - "type": "" - } - ], - "src": "6005:222:39" - }, - { - "body": { - "nativeSrc": "6355:202:39", - "nodeType": "YulBlock", - "src": "6355:202:39", - "statements": [ - { - "nativeSrc": "6365:26:39", - "nodeType": "YulAssignment", - "src": "6365:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6377:9:39", - "nodeType": "YulIdentifier", - "src": "6377:9:39" - }, - { - "kind": "number", - "nativeSrc": "6388:2:39", - "nodeType": "YulLiteral", - "src": "6388:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6373:3:39", - "nodeType": "YulIdentifier", - "src": "6373:3:39" - }, - "nativeSrc": "6373:18:39", - "nodeType": "YulFunctionCall", - "src": "6373:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6365:4:39", - "nodeType": "YulIdentifier", - "src": "6365:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6443:6:39", - "nodeType": "YulIdentifier", - "src": "6443:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6456:9:39", - "nodeType": "YulIdentifier", - "src": "6456:9:39" - }, - { - "kind": "number", - "nativeSrc": "6467:1:39", - "nodeType": "YulLiteral", - "src": "6467:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6452:3:39", - "nodeType": "YulIdentifier", - "src": "6452:3:39" - }, - "nativeSrc": "6452:17:39", - "nodeType": "YulFunctionCall", - "src": "6452:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "6401:41:39", - "nodeType": "YulIdentifier", - "src": "6401:41:39" - }, - "nativeSrc": "6401:69:39", - "nodeType": "YulFunctionCall", - "src": "6401:69:39" - }, - "nativeSrc": "6401:69:39", - "nodeType": "YulExpressionStatement", - "src": "6401:69:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "6522:6:39", - "nodeType": "YulIdentifier", - "src": "6522:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6535:9:39", - "nodeType": "YulIdentifier", - "src": "6535:9:39" - }, - { - "kind": "number", - "nativeSrc": "6546:2:39", - "nodeType": "YulLiteral", - "src": "6546:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6531:3:39", - "nodeType": "YulIdentifier", - "src": "6531:3:39" - }, - "nativeSrc": "6531:18:39", - "nodeType": "YulFunctionCall", - "src": "6531:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "6480:41:39", - "nodeType": "YulIdentifier", - "src": "6480:41:39" - }, - "nativeSrc": "6480:70:39", - "nodeType": "YulFunctionCall", - "src": "6480:70:39" - }, - "nativeSrc": "6480:70:39", - "nodeType": "YulExpressionStatement", - "src": "6480:70:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed", - "nativeSrc": "6233:324:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6319:9:39", - "nodeType": "YulTypedName", - "src": "6319:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "6331:6:39", - "nodeType": "YulTypedName", - "src": "6331:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "6339:6:39", - "nodeType": "YulTypedName", - "src": "6339:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "6350:4:39", - "nodeType": "YulTypedName", - "src": "6350:4:39", - "type": "" - } - ], - "src": "6233:324:39" - }, - { - "body": { - "nativeSrc": "6646:391:39", - "nodeType": "YulBlock", - "src": "6646:391:39", - "statements": [ - { - "body": { - "nativeSrc": "6692:83:39", - "nodeType": "YulBlock", - "src": "6692:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "6694:77:39", - "nodeType": "YulIdentifier", - "src": "6694:77:39" - }, - "nativeSrc": "6694:79:39", - "nodeType": "YulFunctionCall", - "src": "6694:79:39" - }, - "nativeSrc": "6694:79:39", - "nodeType": "YulExpressionStatement", - "src": "6694:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6667:7:39", - "nodeType": "YulIdentifier", - "src": "6667:7:39" - }, - { - "name": "headStart", - "nativeSrc": "6676:9:39", - "nodeType": "YulIdentifier", - "src": "6676:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6663:3:39", - "nodeType": "YulIdentifier", - "src": "6663:3:39" - }, - "nativeSrc": "6663:23:39", - "nodeType": "YulFunctionCall", - "src": "6663:23:39" - }, - { - "kind": "number", - "nativeSrc": "6688:2:39", - "nodeType": "YulLiteral", - "src": "6688:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6659:3:39", - "nodeType": "YulIdentifier", - "src": "6659:3:39" - }, - "nativeSrc": "6659:32:39", - "nodeType": "YulFunctionCall", - "src": "6659:32:39" - }, - "nativeSrc": "6656:119:39", - "nodeType": "YulIf", - "src": "6656:119:39" - }, - { - "nativeSrc": "6785:117:39", - "nodeType": "YulBlock", - "src": "6785:117:39", - "statements": [ - { - "nativeSrc": "6800:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6800:15:39", - "value": { - "kind": "number", - "nativeSrc": "6814:1:39", - "nodeType": "YulLiteral", - "src": "6814:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6804:6:39", - "nodeType": "YulTypedName", - "src": "6804:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6829:63:39", - "nodeType": "YulAssignment", - "src": "6829:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6864:9:39", - "nodeType": "YulIdentifier", - "src": "6864:9:39" - }, - { - "name": "offset", - "nativeSrc": "6875:6:39", - "nodeType": "YulIdentifier", - "src": "6875:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6860:3:39", - "nodeType": "YulIdentifier", - "src": "6860:3:39" - }, - "nativeSrc": "6860:22:39", - "nodeType": "YulFunctionCall", - "src": "6860:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6884:7:39", - "nodeType": "YulIdentifier", - "src": "6884:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6839:20:39", - "nodeType": "YulIdentifier", - "src": "6839:20:39" - }, - "nativeSrc": "6839:53:39", - "nodeType": "YulFunctionCall", - "src": "6839:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6829:6:39", - "nodeType": "YulIdentifier", - "src": "6829:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "6912:118:39", - "nodeType": "YulBlock", - "src": "6912:118:39", - "statements": [ - { - "nativeSrc": "6927:16:39", - "nodeType": "YulVariableDeclaration", - "src": "6927:16:39", - "value": { - "kind": "number", - "nativeSrc": "6941:2:39", - "nodeType": "YulLiteral", - "src": "6941:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6931:6:39", - "nodeType": "YulTypedName", - "src": "6931:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6957:63:39", - "nodeType": "YulAssignment", - "src": "6957:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6992:9:39", - "nodeType": "YulIdentifier", - "src": "6992:9:39" - }, - { - "name": "offset", - "nativeSrc": "7003:6:39", - "nodeType": "YulIdentifier", - "src": "7003:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6988:3:39", - "nodeType": "YulIdentifier", - "src": "6988:3:39" - }, - "nativeSrc": "6988:22:39", - "nodeType": "YulFunctionCall", - "src": "6988:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "7012:7:39", - "nodeType": "YulIdentifier", - "src": "7012:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "6967:20:39", - "nodeType": "YulIdentifier", - "src": "6967:20:39" - }, - "nativeSrc": "6967:53:39", - "nodeType": "YulFunctionCall", - "src": "6967:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "6957:6:39", - "nodeType": "YulIdentifier", - "src": "6957:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32", - "nativeSrc": "6563:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6608:9:39", - "nodeType": "YulTypedName", - "src": "6608:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "6619:7:39", - "nodeType": "YulTypedName", - "src": "6619:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "6631:6:39", - "nodeType": "YulTypedName", - "src": "6631:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "6639:6:39", - "nodeType": "YulTypedName", - "src": "6639:6:39", - "type": "" - } - ], - "src": "6563:474:39" - }, - { - "body": { - "nativeSrc": "7167:204:39", - "nodeType": "YulBlock", - "src": "7167:204:39", - "statements": [ - { - "nativeSrc": "7177:26:39", - "nodeType": "YulAssignment", - "src": "7177:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7189:9:39", - "nodeType": "YulIdentifier", - "src": "7189:9:39" - }, - { - "kind": "number", - "nativeSrc": "7200:2:39", - "nodeType": "YulLiteral", - "src": "7200:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7185:3:39", - "nodeType": "YulIdentifier", - "src": "7185:3:39" - }, - "nativeSrc": "7185:18:39", - "nodeType": "YulFunctionCall", - "src": "7185:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7177:4:39", - "nodeType": "YulIdentifier", - "src": "7177:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7257:6:39", - "nodeType": "YulIdentifier", - "src": "7257:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7270:9:39", - "nodeType": "YulIdentifier", - "src": "7270:9:39" - }, - { - "kind": "number", - "nativeSrc": "7281:1:39", - "nodeType": "YulLiteral", - "src": "7281:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7266:3:39", - "nodeType": "YulIdentifier", - "src": "7266:3:39" - }, - "nativeSrc": "7266:17:39", - "nodeType": "YulFunctionCall", - "src": "7266:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "7213:43:39", - "nodeType": "YulIdentifier", - "src": "7213:43:39" - }, - "nativeSrc": "7213:71:39", - "nodeType": "YulFunctionCall", - "src": "7213:71:39" - }, - "nativeSrc": "7213:71:39", - "nodeType": "YulExpressionStatement", - "src": "7213:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "7336:6:39", - "nodeType": "YulIdentifier", - "src": "7336:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7349:9:39", - "nodeType": "YulIdentifier", - "src": "7349:9:39" - }, - { - "kind": "number", - "nativeSrc": "7360:2:39", - "nodeType": "YulLiteral", - "src": "7360:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7345:3:39", - "nodeType": "YulIdentifier", - "src": "7345:3:39" - }, - "nativeSrc": "7345:18:39", - "nodeType": "YulFunctionCall", - "src": "7345:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "7294:41:39", - "nodeType": "YulIdentifier", - "src": "7294:41:39" - }, - "nativeSrc": "7294:70:39", - "nodeType": "YulFunctionCall", - "src": "7294:70:39" - }, - "nativeSrc": "7294:70:39", - "nodeType": "YulExpressionStatement", - "src": "7294:70:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed", - "nativeSrc": "7043:328:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7131:9:39", - "nodeType": "YulTypedName", - "src": "7131:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7143:6:39", - "nodeType": "YulTypedName", - "src": "7143:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7151:6:39", - "nodeType": "YulTypedName", - "src": "7151:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7162:4:39", - "nodeType": "YulTypedName", - "src": "7162:4:39", - "type": "" - } - ], - "src": "7043:328:39" - }, - { - "body": { - "nativeSrc": "7440:51:39", - "nodeType": "YulBlock", - "src": "7440:51:39", - "statements": [ - { - "nativeSrc": "7450:35:39", - "nodeType": "YulAssignment", - "src": "7450:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "7479:5:39", - "nodeType": "YulIdentifier", - "src": "7479:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "7461:17:39", - "nodeType": "YulIdentifier", - "src": "7461:17:39" - }, - "nativeSrc": "7461:24:39", - "nodeType": "YulFunctionCall", - "src": "7461:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "7450:7:39", - "nodeType": "YulIdentifier", - "src": "7450:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "7377:114:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7422:5:39", - "nodeType": "YulTypedName", - "src": "7422:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "7432:7:39", - "nodeType": "YulTypedName", - "src": "7432:7:39", - "type": "" - } - ], - "src": "7377:114:39" - }, - { - "body": { - "nativeSrc": "7558:97:39", - "nodeType": "YulBlock", - "src": "7558:97:39", - "statements": [ - { - "body": { - "nativeSrc": "7633:16:39", - "nodeType": "YulBlock", - "src": "7633:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7642:1:39", - "nodeType": "YulLiteral", - "src": "7642:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7645:1:39", - "nodeType": "YulLiteral", - "src": "7645:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7635:6:39", - "nodeType": "YulIdentifier", - "src": "7635:6:39" - }, - "nativeSrc": "7635:12:39", - "nodeType": "YulFunctionCall", - "src": "7635:12:39" - }, - "nativeSrc": "7635:12:39", - "nodeType": "YulExpressionStatement", - "src": "7635:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "7581:5:39", - "nodeType": "YulIdentifier", - "src": "7581:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "7624:5:39", - "nodeType": "YulIdentifier", - "src": "7624:5:39" - } - ], - "functionName": { - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "7588:35:39", - "nodeType": "YulIdentifier", - "src": "7588:35:39" - }, - "nativeSrc": "7588:42:39", - "nodeType": "YulFunctionCall", - "src": "7588:42:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "7578:2:39", - "nodeType": "YulIdentifier", - "src": "7578:2:39" - }, - "nativeSrc": "7578:53:39", - "nodeType": "YulFunctionCall", - "src": "7578:53:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "7571:6:39", - "nodeType": "YulIdentifier", - "src": "7571:6:39" - }, - "nativeSrc": "7571:61:39", - "nodeType": "YulFunctionCall", - "src": "7571:61:39" - }, - "nativeSrc": "7568:81:39", - "nodeType": "YulIf", - "src": "7568:81:39" - } - ] - }, - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "7497:158:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7551:5:39", - "nodeType": "YulTypedName", - "src": "7551:5:39", - "type": "" - } - ], - "src": "7497:158:39" - }, - { - "body": { - "nativeSrc": "7731:105:39", - "nodeType": "YulBlock", - "src": "7731:105:39", - "statements": [ - { - "nativeSrc": "7741:29:39", - "nodeType": "YulAssignment", - "src": "7741:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7763:6:39", - "nodeType": "YulIdentifier", - "src": "7763:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7750:12:39", - "nodeType": "YulIdentifier", - "src": "7750:12:39" - }, - "nativeSrc": "7750:20:39", - "nodeType": "YulFunctionCall", - "src": "7750:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "7741:5:39", - "nodeType": "YulIdentifier", - "src": "7741:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "7824:5:39", - "nodeType": "YulIdentifier", - "src": "7824:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "7779:44:39", - "nodeType": "YulIdentifier", - "src": "7779:44:39" - }, - "nativeSrc": "7779:51:39", - "nodeType": "YulFunctionCall", - "src": "7779:51:39" - }, - "nativeSrc": "7779:51:39", - "nodeType": "YulExpressionStatement", - "src": "7779:51:39" - } - ] - }, - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "7661:175:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "7709:6:39", - "nodeType": "YulTypedName", - "src": "7709:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "7717:3:39", - "nodeType": "YulTypedName", - "src": "7717:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "7725:5:39", - "nodeType": "YulTypedName", - "src": "7725:5:39", - "type": "" - } - ], - "src": "7661:175:39" - }, - { - "body": { - "nativeSrc": "7960:537:39", - "nodeType": "YulBlock", - "src": "7960:537:39", - "statements": [ - { - "body": { - "nativeSrc": "8006:83:39", - "nodeType": "YulBlock", - "src": "8006:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "8008:77:39", - "nodeType": "YulIdentifier", - "src": "8008:77:39" - }, - "nativeSrc": "8008:79:39", - "nodeType": "YulFunctionCall", - "src": "8008:79:39" - }, - "nativeSrc": "8008:79:39", - "nodeType": "YulExpressionStatement", - "src": "8008:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "7981:7:39", - "nodeType": "YulIdentifier", - "src": "7981:7:39" - }, - { - "name": "headStart", - "nativeSrc": "7990:9:39", - "nodeType": "YulIdentifier", - "src": "7990:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7977:3:39", - "nodeType": "YulIdentifier", - "src": "7977:3:39" - }, - "nativeSrc": "7977:23:39", - "nodeType": "YulFunctionCall", - "src": "7977:23:39" - }, - { - "kind": "number", - "nativeSrc": "8002:2:39", - "nodeType": "YulLiteral", - "src": "8002:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "7973:3:39", - "nodeType": "YulIdentifier", - "src": "7973:3:39" - }, - "nativeSrc": "7973:32:39", - "nodeType": "YulFunctionCall", - "src": "7973:32:39" - }, - "nativeSrc": "7970:119:39", - "nodeType": "YulIf", - "src": "7970:119:39" - }, - { - "nativeSrc": "8099:117:39", - "nodeType": "YulBlock", - "src": "8099:117:39", - "statements": [ - { - "nativeSrc": "8114:15:39", - "nodeType": "YulVariableDeclaration", - "src": "8114:15:39", - "value": { - "kind": "number", - "nativeSrc": "8128:1:39", - "nodeType": "YulLiteral", - "src": "8128:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8118:6:39", - "nodeType": "YulTypedName", - "src": "8118:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8143:63:39", - "nodeType": "YulAssignment", - "src": "8143:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8178:9:39", - "nodeType": "YulIdentifier", - "src": "8178:9:39" - }, - { - "name": "offset", - "nativeSrc": "8189:6:39", - "nodeType": "YulIdentifier", - "src": "8189:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8174:3:39", - "nodeType": "YulIdentifier", - "src": "8174:3:39" - }, - "nativeSrc": "8174:22:39", - "nodeType": "YulFunctionCall", - "src": "8174:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8198:7:39", - "nodeType": "YulIdentifier", - "src": "8198:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "8153:20:39", - "nodeType": "YulIdentifier", - "src": "8153:20:39" - }, - "nativeSrc": "8153:53:39", - "nodeType": "YulFunctionCall", - "src": "8153:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "8143:6:39", - "nodeType": "YulIdentifier", - "src": "8143:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "8226:118:39", - "nodeType": "YulBlock", - "src": "8226:118:39", - "statements": [ - { - "nativeSrc": "8241:16:39", - "nodeType": "YulVariableDeclaration", - "src": "8241:16:39", - "value": { - "kind": "number", - "nativeSrc": "8255:2:39", - "nodeType": "YulLiteral", - "src": "8255:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8245:6:39", - "nodeType": "YulTypedName", - "src": "8245:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8271:63:39", - "nodeType": "YulAssignment", - "src": "8271:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8306:9:39", - "nodeType": "YulIdentifier", - "src": "8306:9:39" - }, - { - "name": "offset", - "nativeSrc": "8317:6:39", - "nodeType": "YulIdentifier", - "src": "8317:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8302:3:39", - "nodeType": "YulIdentifier", - "src": "8302:3:39" - }, - "nativeSrc": "8302:22:39", - "nodeType": "YulFunctionCall", - "src": "8302:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8326:7:39", - "nodeType": "YulIdentifier", - "src": "8326:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "8281:20:39", - "nodeType": "YulIdentifier", - "src": "8281:20:39" - }, - "nativeSrc": "8281:53:39", - "nodeType": "YulFunctionCall", - "src": "8281:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "8271:6:39", - "nodeType": "YulIdentifier", - "src": "8271:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "8354:136:39", - "nodeType": "YulBlock", - "src": "8354:136:39", - "statements": [ - { - "nativeSrc": "8369:16:39", - "nodeType": "YulVariableDeclaration", - "src": "8369:16:39", - "value": { - "kind": "number", - "nativeSrc": "8383:2:39", - "nodeType": "YulLiteral", - "src": "8383:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8373:6:39", - "nodeType": "YulTypedName", - "src": "8373:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8399:81:39", - "nodeType": "YulAssignment", - "src": "8399:81:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8452:9:39", - "nodeType": "YulIdentifier", - "src": "8452:9:39" - }, - { - "name": "offset", - "nativeSrc": "8463:6:39", - "nodeType": "YulIdentifier", - "src": "8463:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8448:3:39", - "nodeType": "YulIdentifier", - "src": "8448:3:39" - }, - "nativeSrc": "8448:22:39", - "nodeType": "YulFunctionCall", - "src": "8448:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8472:7:39", - "nodeType": "YulIdentifier", - "src": "8472:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "8409:38:39", - "nodeType": "YulIdentifier", - "src": "8409:38:39" - }, - "nativeSrc": "8409:71:39", - "nodeType": "YulFunctionCall", - "src": "8409:71:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "8399:6:39", - "nodeType": "YulIdentifier", - "src": "8399:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8101", - "nativeSrc": "7842:655:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7914:9:39", - "nodeType": "YulTypedName", - "src": "7914:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "7925:7:39", - "nodeType": "YulTypedName", - "src": "7925:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "7937:6:39", - "nodeType": "YulTypedName", - "src": "7937:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7945:6:39", - "nodeType": "YulTypedName", - "src": "7945:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "7953:6:39", - "nodeType": "YulTypedName", - "src": "7953:6:39", - "type": "" - } - ], - "src": "7842:655:39" - }, - { - "body": { - "nativeSrc": "8629:206:39", - "nodeType": "YulBlock", - "src": "8629:206:39", - "statements": [ - { - "nativeSrc": "8639:26:39", - "nodeType": "YulAssignment", - "src": "8639:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8651:9:39", - "nodeType": "YulIdentifier", - "src": "8651:9:39" - }, - { - "kind": "number", - "nativeSrc": "8662:2:39", - "nodeType": "YulLiteral", - "src": "8662:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8647:3:39", - "nodeType": "YulIdentifier", - "src": "8647:3:39" - }, - "nativeSrc": "8647:18:39", - "nodeType": "YulFunctionCall", - "src": "8647:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8639:4:39", - "nodeType": "YulIdentifier", - "src": "8639:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8719:6:39", - "nodeType": "YulIdentifier", - "src": "8719:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8732:9:39", - "nodeType": "YulIdentifier", - "src": "8732:9:39" - }, - { - "kind": "number", - "nativeSrc": "8743:1:39", - "nodeType": "YulLiteral", - "src": "8743:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8728:3:39", - "nodeType": "YulIdentifier", - "src": "8728:3:39" - }, - "nativeSrc": "8728:17:39", - "nodeType": "YulFunctionCall", - "src": "8728:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "8675:43:39", - "nodeType": "YulIdentifier", - "src": "8675:43:39" - }, - "nativeSrc": "8675:71:39", - "nodeType": "YulFunctionCall", - "src": "8675:71:39" - }, - "nativeSrc": "8675:71:39", - "nodeType": "YulExpressionStatement", - "src": "8675:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "8800:6:39", - "nodeType": "YulIdentifier", - "src": "8800:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8813:9:39", - "nodeType": "YulIdentifier", - "src": "8813:9:39" - }, - { - "kind": "number", - "nativeSrc": "8824:2:39", - "nodeType": "YulLiteral", - "src": "8824:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8809:3:39", - "nodeType": "YulIdentifier", - "src": "8809:3:39" - }, - "nativeSrc": "8809:18:39", - "nodeType": "YulFunctionCall", - "src": "8809:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "8756:43:39", - "nodeType": "YulIdentifier", - "src": "8756:43:39" - }, - "nativeSrc": "8756:72:39", - "nodeType": "YulFunctionCall", - "src": "8756:72:39" - }, - "nativeSrc": "8756:72:39", - "nodeType": "YulExpressionStatement", - "src": "8756:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "8503:332:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8593:9:39", - "nodeType": "YulTypedName", - "src": "8593:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8605:6:39", - "nodeType": "YulTypedName", - "src": "8605:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8613:6:39", - "nodeType": "YulTypedName", - "src": "8613:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8624:4:39", - "nodeType": "YulTypedName", - "src": "8624:4:39", - "type": "" - } - ], - "src": "8503:332:39" - }, - { - "body": { - "nativeSrc": "8919:66:39", - "nodeType": "YulBlock", - "src": "8919:66:39", - "statements": [ - { - "nativeSrc": "8929:50:39", - "nodeType": "YulAssignment", - "src": "8929:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8973:5:39", - "nodeType": "YulIdentifier", - "src": "8973:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "8942:30:39", - "nodeType": "YulIdentifier", - "src": "8942:30:39" - }, - "nativeSrc": "8942:37:39", - "nodeType": "YulFunctionCall", - "src": "8942:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "8929:9:39", - "nodeType": "YulIdentifier", - "src": "8929:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "8841:144:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8899:5:39", - "nodeType": "YulTypedName", - "src": "8899:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "8909:9:39", - "nodeType": "YulTypedName", - "src": "8909:9:39", - "type": "" - } - ], - "src": "8841:144:39" - }, - { - "body": { - "nativeSrc": "9074:84:39", - "nodeType": "YulBlock", - "src": "9074:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9091:3:39", - "nodeType": "YulIdentifier", - "src": "9091:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "9145:5:39", - "nodeType": "YulIdentifier", - "src": "9145:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "9096:48:39", - "nodeType": "YulIdentifier", - "src": "9096:48:39" - }, - "nativeSrc": "9096:55:39", - "nodeType": "YulFunctionCall", - "src": "9096:55:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9084:6:39", - "nodeType": "YulIdentifier", - "src": "9084:6:39" - }, - "nativeSrc": "9084:68:39", - "nodeType": "YulFunctionCall", - "src": "9084:68:39" - }, - "nativeSrc": "9084:68:39", - "nodeType": "YulExpressionStatement", - "src": "9084:68:39" - } - ] - }, - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "8991:167:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "9062:5:39", - "nodeType": "YulTypedName", - "src": "9062:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "9069:3:39", - "nodeType": "YulTypedName", - "src": "9069:3:39", - "type": "" - } - ], - "src": "8991:167:39" - }, - { - "body": { - "nativeSrc": "9336:306:39", - "nodeType": "YulBlock", - "src": "9336:306:39", - "statements": [ - { - "nativeSrc": "9346:26:39", - "nodeType": "YulAssignment", - "src": "9346:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9358:9:39", - "nodeType": "YulIdentifier", - "src": "9358:9:39" - }, - { - "kind": "number", - "nativeSrc": "9369:2:39", - "nodeType": "YulLiteral", - "src": "9369:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9354:3:39", - "nodeType": "YulIdentifier", - "src": "9354:3:39" - }, - "nativeSrc": "9354:18:39", - "nodeType": "YulFunctionCall", - "src": "9354:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "9346:4:39", - "nodeType": "YulIdentifier", - "src": "9346:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "9426:6:39", - "nodeType": "YulIdentifier", - "src": "9426:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9439:9:39", - "nodeType": "YulIdentifier", - "src": "9439:9:39" - }, - { - "kind": "number", - "nativeSrc": "9450:1:39", - "nodeType": "YulLiteral", - "src": "9450:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9435:3:39", - "nodeType": "YulIdentifier", - "src": "9435:3:39" - }, - "nativeSrc": "9435:17:39", - "nodeType": "YulFunctionCall", - "src": "9435:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "9382:43:39", - "nodeType": "YulIdentifier", - "src": "9382:43:39" - }, - "nativeSrc": "9382:71:39", - "nodeType": "YulFunctionCall", - "src": "9382:71:39" - }, - "nativeSrc": "9382:71:39", - "nodeType": "YulExpressionStatement", - "src": "9382:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "9507:6:39", - "nodeType": "YulIdentifier", - "src": "9507:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9520:9:39", - "nodeType": "YulIdentifier", - "src": "9520:9:39" - }, - { - "kind": "number", - "nativeSrc": "9531:2:39", - "nodeType": "YulLiteral", - "src": "9531:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9516:3:39", - "nodeType": "YulIdentifier", - "src": "9516:3:39" - }, - "nativeSrc": "9516:18:39", - "nodeType": "YulFunctionCall", - "src": "9516:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "9463:43:39", - "nodeType": "YulIdentifier", - "src": "9463:43:39" - }, - "nativeSrc": "9463:72:39", - "nodeType": "YulFunctionCall", - "src": "9463:72:39" - }, - "nativeSrc": "9463:72:39", - "nodeType": "YulExpressionStatement", - "src": "9463:72:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "9607:6:39", - "nodeType": "YulIdentifier", - "src": "9607:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9620:9:39", - "nodeType": "YulIdentifier", - "src": "9620:9:39" - }, - { - "kind": "number", - "nativeSrc": "9631:2:39", - "nodeType": "YulLiteral", - "src": "9631:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9616:3:39", - "nodeType": "YulIdentifier", - "src": "9616:3:39" - }, - "nativeSrc": "9616:18:39", - "nodeType": "YulFunctionCall", - "src": "9616:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "9545:61:39", - "nodeType": "YulIdentifier", - "src": "9545:61:39" - }, - "nativeSrc": "9545:90:39", - "nodeType": "YulFunctionCall", - "src": "9545:90:39" - }, - "nativeSrc": "9545:90:39", - "nodeType": "YulExpressionStatement", - "src": "9545:90:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8101__to_t_address_t_bytes32_t_address__fromStack_reversed", - "nativeSrc": "9164:478:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9292:9:39", - "nodeType": "YulTypedName", - "src": "9292:9:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "9304:6:39", - "nodeType": "YulTypedName", - "src": "9304:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "9312:6:39", - "nodeType": "YulTypedName", - "src": "9312:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "9320:6:39", - "nodeType": "YulTypedName", - "src": "9320:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "9331:4:39", - "nodeType": "YulTypedName", - "src": "9331:4:39", - "type": "" - } - ], - "src": "9164:478:39" - }, - { - "body": { - "nativeSrc": "9676:152:39", - "nodeType": "YulBlock", - "src": "9676:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9693:1:39", - "nodeType": "YulLiteral", - "src": "9693:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "9696:77:39", - "nodeType": "YulLiteral", - "src": "9696:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9686:6:39", - "nodeType": "YulIdentifier", - "src": "9686:6:39" - }, - "nativeSrc": "9686:88:39", - "nodeType": "YulFunctionCall", - "src": "9686:88:39" - }, - "nativeSrc": "9686:88:39", - "nodeType": "YulExpressionStatement", - "src": "9686:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9790:1:39", - "nodeType": "YulLiteral", - "src": "9790:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "9793:4:39", - "nodeType": "YulLiteral", - "src": "9793:4:39", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9783:6:39", - "nodeType": "YulIdentifier", - "src": "9783:6:39" - }, - "nativeSrc": "9783:15:39", - "nodeType": "YulFunctionCall", - "src": "9783:15:39" - }, - "nativeSrc": "9783:15:39", - "nodeType": "YulExpressionStatement", - "src": "9783:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9814:1:39", - "nodeType": "YulLiteral", - "src": "9814:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "9817:4:39", - "nodeType": "YulLiteral", - "src": "9817:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "9807:6:39", - "nodeType": "YulIdentifier", - "src": "9807:6:39" - }, - "nativeSrc": "9807:15:39", - "nodeType": "YulFunctionCall", - "src": "9807:15:39" - }, - "nativeSrc": "9807:15:39", - "nodeType": "YulExpressionStatement", - "src": "9807:15:39" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "9648:180:39", - "nodeType": "YulFunctionDefinition", - "src": "9648:180:39" - }, - { - "body": { - "nativeSrc": "9877:158:39", - "nodeType": "YulBlock", - "src": "9877:158:39", - "statements": [ - { - "nativeSrc": "9887:24:39", - "nodeType": "YulAssignment", - "src": "9887:24:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "9909:1:39", - "nodeType": "YulIdentifier", - "src": "9909:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "9892:16:39", - "nodeType": "YulIdentifier", - "src": "9892:16:39" - }, - "nativeSrc": "9892:19:39", - "nodeType": "YulFunctionCall", - "src": "9892:19:39" - }, - "variableNames": [ - { - "name": "x", - "nativeSrc": "9887:1:39", - "nodeType": "YulIdentifier", - "src": "9887:1:39" - } - ] - }, - { - "nativeSrc": "9920:24:39", - "nodeType": "YulAssignment", - "src": "9920:24:39", - "value": { - "arguments": [ - { - "name": "y", - "nativeSrc": "9942:1:39", - "nodeType": "YulIdentifier", - "src": "9942:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "9925:16:39", - "nodeType": "YulIdentifier", - "src": "9925:16:39" - }, - "nativeSrc": "9925:19:39", - "nodeType": "YulFunctionCall", - "src": "9925:19:39" - }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "9920:1:39", - "nodeType": "YulIdentifier", - "src": "9920:1:39" - } - ] - }, - { - "nativeSrc": "9953:16:39", - "nodeType": "YulAssignment", - "src": "9953:16:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "9964:1:39", - "nodeType": "YulIdentifier", - "src": "9964:1:39" - }, - { - "name": "y", - "nativeSrc": "9967:1:39", - "nodeType": "YulIdentifier", - "src": "9967:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9960:3:39", - "nodeType": "YulIdentifier", - "src": "9960:3:39" - }, - "nativeSrc": "9960:9:39", - "nodeType": "YulFunctionCall", - "src": "9960:9:39" - }, - "variableNames": [ - { - "name": "sum", - "nativeSrc": "9953:3:39", - "nodeType": "YulIdentifier", - "src": "9953:3:39" - } - ] - }, - { - "body": { - "nativeSrc": "10006:22:39", - "nodeType": "YulBlock", - "src": "10006:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "10008:16:39", - "nodeType": "YulIdentifier", - "src": "10008:16:39" - }, - "nativeSrc": "10008:18:39", - "nodeType": "YulFunctionCall", - "src": "10008:18:39" - }, - "nativeSrc": "10008:18:39", - "nodeType": "YulExpressionStatement", - "src": "10008:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "sum", - "nativeSrc": "9985:3:39", - "nodeType": "YulIdentifier", - "src": "9985:3:39" - }, - { - "kind": "number", - "nativeSrc": "9990:14:39", - "nodeType": "YulLiteral", - "src": "9990:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "9982:2:39", - "nodeType": "YulIdentifier", - "src": "9982:2:39" - }, - "nativeSrc": "9982:23:39", - "nodeType": "YulFunctionCall", - "src": "9982:23:39" - }, - "nativeSrc": "9979:49:39", - "nodeType": "YulIf", - "src": "9979:49:39" - } - ] - }, - "name": "checked_add_t_uint48", - "nativeSrc": "9834:201:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "9864:1:39", - "nodeType": "YulTypedName", - "src": "9864:1:39", - "type": "" - }, - { - "name": "y", - "nativeSrc": "9867:1:39", - "nodeType": "YulTypedName", - "src": "9867:1:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nativeSrc": "9873:3:39", - "nodeType": "YulTypedName", - "src": "9873:3:39", - "type": "" - } - ], - "src": "9834:201:39" - }, - { - "body": { - "nativeSrc": "10095:32:39", - "nodeType": "YulBlock", - "src": "10095:32:39", - "statements": [ - { - "nativeSrc": "10105:16:39", - "nodeType": "YulAssignment", - "src": "10105:16:39", - "value": { - "name": "value", - "nativeSrc": "10116:5:39", - "nodeType": "YulIdentifier", - "src": "10116:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "10105:7:39", - "nodeType": "YulIdentifier", - "src": "10105:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_rational_48_by_1", - "nativeSrc": "10041:86:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10077:5:39", - "nodeType": "YulTypedName", - "src": "10077:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "10087:7:39", - "nodeType": "YulTypedName", - "src": "10087:7:39", - "type": "" - } - ], - "src": "10041:86:39" - }, - { - "body": { - "nativeSrc": "10176:43:39", - "nodeType": "YulBlock", - "src": "10176:43:39", - "statements": [ - { - "nativeSrc": "10186:27:39", - "nodeType": "YulAssignment", - "src": "10186:27:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "10201:5:39", - "nodeType": "YulIdentifier", - "src": "10201:5:39" - }, - { - "kind": "number", - "nativeSrc": "10208:4:39", - "nodeType": "YulLiteral", - "src": "10208:4:39", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "10197:3:39", - "nodeType": "YulIdentifier", - "src": "10197:3:39" - }, - "nativeSrc": "10197:16:39", - "nodeType": "YulFunctionCall", - "src": "10197:16:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "10186:7:39", - "nodeType": "YulIdentifier", - "src": "10186:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint8", - "nativeSrc": "10133:86:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10158:5:39", - "nodeType": "YulTypedName", - "src": "10158:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "10168:7:39", - "nodeType": "YulTypedName", - "src": "10168:7:39", - "type": "" - } - ], - "src": "10133:86:39" - }, - { - "body": { - "nativeSrc": "10292:89:39", - "nodeType": "YulBlock", - "src": "10292:89:39", - "statements": [ - { - "nativeSrc": "10302:73:39", - "nodeType": "YulAssignment", - "src": "10302:73:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "10367:5:39", - "nodeType": "YulIdentifier", - "src": "10367:5:39" - } - ], - "functionName": { - "name": "cleanup_t_rational_48_by_1", - "nativeSrc": "10340:26:39", - "nodeType": "YulIdentifier", - "src": "10340:26:39" - }, - "nativeSrc": "10340:33:39", - "nodeType": "YulFunctionCall", - "src": "10340:33:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "10331:8:39", - "nodeType": "YulIdentifier", - "src": "10331:8:39" - }, - "nativeSrc": "10331:43:39", - "nodeType": "YulFunctionCall", - "src": "10331:43:39" - } - ], - "functionName": { - "name": "cleanup_t_uint8", - "nativeSrc": "10315:15:39", - "nodeType": "YulIdentifier", - "src": "10315:15:39" - }, - "nativeSrc": "10315:60:39", - "nodeType": "YulFunctionCall", - "src": "10315:60:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "10302:9:39", - "nodeType": "YulIdentifier", - "src": "10302:9:39" - } - ] - } - ] - }, - "name": "convert_t_rational_48_by_1_to_t_uint8", - "nativeSrc": "10225:156:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10272:5:39", - "nodeType": "YulTypedName", - "src": "10272:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "10282:9:39", - "nodeType": "YulTypedName", - "src": "10282:9:39", - "type": "" - } - ], - "src": "10225:156:39" - }, - { - "body": { - "nativeSrc": "10459:73:39", - "nodeType": "YulBlock", - "src": "10459:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "10476:3:39", - "nodeType": "YulIdentifier", - "src": "10476:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "10519:5:39", - "nodeType": "YulIdentifier", - "src": "10519:5:39" - } - ], - "functionName": { - "name": "convert_t_rational_48_by_1_to_t_uint8", - "nativeSrc": "10481:37:39", - "nodeType": "YulIdentifier", - "src": "10481:37:39" - }, - "nativeSrc": "10481:44:39", - "nodeType": "YulFunctionCall", - "src": "10481:44:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10469:6:39", - "nodeType": "YulIdentifier", - "src": "10469:6:39" - }, - "nativeSrc": "10469:57:39", - "nodeType": "YulFunctionCall", - "src": "10469:57:39" - }, - "nativeSrc": "10469:57:39", - "nodeType": "YulExpressionStatement", - "src": "10469:57:39" - } - ] - }, - "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", - "nativeSrc": "10387:145:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10447:5:39", - "nodeType": "YulTypedName", - "src": "10447:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "10454:3:39", - "nodeType": "YulTypedName", - "src": "10454:3:39", - "type": "" - } - ], - "src": "10387:145:39" - }, - { - "body": { - "nativeSrc": "10583:32:39", - "nodeType": "YulBlock", - "src": "10583:32:39", - "statements": [ - { - "nativeSrc": "10593:16:39", - "nodeType": "YulAssignment", - "src": "10593:16:39", - "value": { - "name": "value", - "nativeSrc": "10604:5:39", - "nodeType": "YulIdentifier", - "src": "10604:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "10593:7:39", - "nodeType": "YulIdentifier", - "src": "10593:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "10538:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10565:5:39", - "nodeType": "YulTypedName", - "src": "10565:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "10575:7:39", - "nodeType": "YulTypedName", - "src": "10575:7:39", - "type": "" - } - ], - "src": "10538:77:39" - }, - { - "body": { - "nativeSrc": "10686:53:39", - "nodeType": "YulBlock", - "src": "10686:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "10703:3:39", - "nodeType": "YulIdentifier", - "src": "10703:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "10726:5:39", - "nodeType": "YulIdentifier", - "src": "10726:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "10708:17:39", - "nodeType": "YulIdentifier", - "src": "10708:17:39" - }, - "nativeSrc": "10708:24:39", - "nodeType": "YulFunctionCall", - "src": "10708:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10696:6:39", - "nodeType": "YulIdentifier", - "src": "10696:6:39" - }, - "nativeSrc": "10696:37:39", - "nodeType": "YulFunctionCall", - "src": "10696:37:39" - }, - "nativeSrc": "10696:37:39", - "nodeType": "YulExpressionStatement", - "src": "10696:37:39" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "10621:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "10674:5:39", - "nodeType": "YulTypedName", - "src": "10674:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "10681:3:39", - "nodeType": "YulTypedName", - "src": "10681:3:39", - "type": "" - } - ], - "src": "10621:118:39" - }, - { - "body": { - "nativeSrc": "10878:213:39", - "nodeType": "YulBlock", - "src": "10878:213:39", - "statements": [ - { - "nativeSrc": "10888:26:39", - "nodeType": "YulAssignment", - "src": "10888:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10900:9:39", - "nodeType": "YulIdentifier", - "src": "10900:9:39" - }, - { - "kind": "number", - "nativeSrc": "10911:2:39", - "nodeType": "YulLiteral", - "src": "10911:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10896:3:39", - "nodeType": "YulIdentifier", - "src": "10896:3:39" - }, - "nativeSrc": "10896:18:39", - "nodeType": "YulFunctionCall", - "src": "10896:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "10888:4:39", - "nodeType": "YulIdentifier", - "src": "10888:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "10975:6:39", - "nodeType": "YulIdentifier", - "src": "10975:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10988:9:39", - "nodeType": "YulIdentifier", - "src": "10988:9:39" - }, - { - "kind": "number", - "nativeSrc": "10999:1:39", - "nodeType": "YulLiteral", - "src": "10999:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10984:3:39", - "nodeType": "YulIdentifier", - "src": "10984:3:39" - }, - "nativeSrc": "10984:17:39", - "nodeType": "YulFunctionCall", - "src": "10984:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", - "nativeSrc": "10924:50:39", - "nodeType": "YulIdentifier", - "src": "10924:50:39" - }, - "nativeSrc": "10924:78:39", - "nodeType": "YulFunctionCall", - "src": "10924:78:39" - }, - "nativeSrc": "10924:78:39", - "nodeType": "YulExpressionStatement", - "src": "10924:78:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "11056:6:39", - "nodeType": "YulIdentifier", - "src": "11056:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11069:9:39", - "nodeType": "YulIdentifier", - "src": "11069:9:39" - }, - { - "kind": "number", - "nativeSrc": "11080:2:39", - "nodeType": "YulLiteral", - "src": "11080:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11065:3:39", - "nodeType": "YulIdentifier", - "src": "11065:3:39" - }, - "nativeSrc": "11065:18:39", - "nodeType": "YulFunctionCall", - "src": "11065:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "11012:43:39", - "nodeType": "YulIdentifier", - "src": "11012:43:39" - }, - "nativeSrc": "11012:72:39", - "nodeType": "YulFunctionCall", - "src": "11012:72:39" - }, - "nativeSrc": "11012:72:39", - "nodeType": "YulExpressionStatement", - "src": "11012:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed", - "nativeSrc": "10745:346:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10842:9:39", - "nodeType": "YulTypedName", - "src": "10842:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "10854:6:39", - "nodeType": "YulTypedName", - "src": "10854:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "10862:6:39", - "nodeType": "YulTypedName", - "src": "10862:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "10873:4:39", - "nodeType": "YulTypedName", - "src": "10873:4:39", - "type": "" - } - ], - "src": "10745:346:39" - }, - { - "body": { - "nativeSrc": "11141:160:39", - "nodeType": "YulBlock", - "src": "11141:160:39", - "statements": [ - { - "nativeSrc": "11151:24:39", - "nodeType": "YulAssignment", - "src": "11151:24:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "11173:1:39", - "nodeType": "YulIdentifier", - "src": "11173:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "11156:16:39", - "nodeType": "YulIdentifier", - "src": "11156:16:39" - }, - "nativeSrc": "11156:19:39", - "nodeType": "YulFunctionCall", - "src": "11156:19:39" - }, - "variableNames": [ - { - "name": "x", - "nativeSrc": "11151:1:39", - "nodeType": "YulIdentifier", - "src": "11151:1:39" - } - ] - }, - { - "nativeSrc": "11184:24:39", - "nodeType": "YulAssignment", - "src": "11184:24:39", - "value": { - "arguments": [ - { - "name": "y", - "nativeSrc": "11206:1:39", - "nodeType": "YulIdentifier", - "src": "11206:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "11189:16:39", - "nodeType": "YulIdentifier", - "src": "11189:16:39" - }, - "nativeSrc": "11189:19:39", - "nodeType": "YulFunctionCall", - "src": "11189:19:39" - }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "11184:1:39", - "nodeType": "YulIdentifier", - "src": "11184:1:39" - } - ] - }, - { - "nativeSrc": "11217:17:39", - "nodeType": "YulAssignment", - "src": "11217:17:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "11229:1:39", - "nodeType": "YulIdentifier", - "src": "11229:1:39" - }, - { - "name": "y", - "nativeSrc": "11232:1:39", - "nodeType": "YulIdentifier", - "src": "11232:1:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11225:3:39", - "nodeType": "YulIdentifier", - "src": "11225:3:39" - }, - "nativeSrc": "11225:9:39", - "nodeType": "YulFunctionCall", - "src": "11225:9:39" - }, - "variableNames": [ - { - "name": "diff", - "nativeSrc": "11217:4:39", - "nodeType": "YulIdentifier", - "src": "11217:4:39" - } - ] - }, - { - "body": { - "nativeSrc": "11272:22:39", - "nodeType": "YulBlock", - "src": "11272:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "11274:16:39", - "nodeType": "YulIdentifier", - "src": "11274:16:39" - }, - "nativeSrc": "11274:18:39", - "nodeType": "YulFunctionCall", - "src": "11274:18:39" - }, - "nativeSrc": "11274:18:39", - "nodeType": "YulExpressionStatement", - "src": "11274:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "diff", - "nativeSrc": "11250:4:39", - "nodeType": "YulIdentifier", - "src": "11250:4:39" - }, - { - "kind": "number", - "nativeSrc": "11256:14:39", - "nodeType": "YulLiteral", - "src": "11256:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "11247:2:39", - "nodeType": "YulIdentifier", - "src": "11247:2:39" - }, - "nativeSrc": "11247:24:39", - "nodeType": "YulFunctionCall", - "src": "11247:24:39" - }, - "nativeSrc": "11244:50:39", - "nodeType": "YulIf", - "src": "11244:50:39" - } - ] - }, - "name": "checked_sub_t_uint48", - "nativeSrc": "11097:204:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "11127:1:39", - "nodeType": "YulTypedName", - "src": "11127:1:39", - "type": "" - }, - { - "name": "y", - "nativeSrc": "11130:1:39", - "nodeType": "YulTypedName", - "src": "11130:1:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "diff", - "nativeSrc": "11136:4:39", - "nodeType": "YulTypedName", - "src": "11136:4:39", - "type": "" - } - ], - "src": "11097:204:39" - } - ] - }, - "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_$7736_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7736_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7736_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_$8101(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$8101(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$8101(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$8101(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IVerifier_$8101(value)\n }\n\n function abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8101(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_$8101(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_$8101_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$8101_to_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8101__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_$8101_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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "7361": [ - { - "length": 32, - "start": 1598 - }, - { - "length": 32, - "start": 1942 - }, - { - "length": 32, - "start": 2555 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea2646970667358221220d44239aa553373132c81fc8c57e3b38437535b47175888a8cbee49e7e0b303e064736f6c634300081c0033", - "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 0x14BB JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x1503 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 0x153F 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 0x1590 JUMP JUMPDEST PUSH2 0x466 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x15CC 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 0x15CC 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 0x1645 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x223 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21E SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x4F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x1685 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x16DE JUMP JUMPDEST PUSH2 0x622 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x272 SWAP2 SWAP1 PUSH2 0x176A 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 0x1794 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 0x1794 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 0x1645 JUMP JUMPDEST PUSH2 0x699 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0x1503 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 0x17AF 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 0x15CC 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 0x17D8 JUMP JUMPDEST PUSH2 0x76A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x153F 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 0x1818 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 0x1645 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 0x187F 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 0x153F 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 0x18D2 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 0x1794 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 0x191C 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 0x1982 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 0x153F 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 0x1982 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 0x17AF 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 0x153F 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 0x18D2 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 0x1A1D 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 0x1A46 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 PUSH2 0x1430 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1438 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1443 DUP5 PUSH2 0x1452 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1498 DUP2 PUSH2 0x1463 JUMP JUMPDEST DUP2 EQ PUSH2 0x14A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14B5 DUP2 PUSH2 0x148F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D1 JUMPI PUSH2 0x14D0 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14DF DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14FD DUP2 PUSH2 0x14E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1518 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x14F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1539 DUP2 PUSH2 0x151E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1554 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x156D DUP2 PUSH2 0x155A JUMP JUMPDEST DUP2 EQ PUSH2 0x1578 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x158A DUP2 PUSH2 0x1564 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15A6 JUMPI PUSH2 0x15A5 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x15B4 DUP5 DUP3 DUP6 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15C6 DUP2 PUSH2 0x155A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15E1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1612 DUP3 PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1622 DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP2 EQ PUSH2 0x162D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x163F DUP2 PUSH2 0x1619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x165C JUMPI PUSH2 0x165B PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x166A DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x167B DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x169B JUMPI PUSH2 0x169A PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x16A9 DUP5 DUP3 DUP6 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16BB DUP2 PUSH2 0x151E JUMP JUMPDEST DUP2 EQ PUSH2 0x16C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16D8 DUP2 PUSH2 0x16B2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F4 JUMPI PUSH2 0x16F3 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1702 DUP5 DUP3 DUP6 ADD PUSH2 0x16C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1730 PUSH2 0x172B PUSH2 0x1726 DUP5 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1742 DUP3 PUSH2 0x1715 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1754 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1764 DUP2 PUSH2 0x1749 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x177F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x175B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178E DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17A9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1785 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17C4 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1530 JUMP JUMPDEST PUSH2 0x17D1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17EF JUMPI PUSH2 0x17EE PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17FD DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x180E DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x182D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x183A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x184C DUP3 PUSH2 0x1607 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x185C DUP2 PUSH2 0x1841 JUMP JUMPDEST DUP2 EQ PUSH2 0x1867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1879 DUP2 PUSH2 0x1853 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1898 JUMPI PUSH2 0x1897 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x18A6 DUP7 DUP3 DUP8 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x18B7 DUP7 DUP3 DUP8 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18C8 DUP7 DUP3 DUP8 ADD PUSH2 0x186A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x18E7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x18F4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1906 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1916 DUP2 PUSH2 0x18FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1931 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x193E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x15BD JUMP JUMPDEST PUSH2 0x194B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x190D 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 0x198D DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1998 DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19B6 JUMPI PUSH2 0x19B5 PUSH2 0x1953 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 0x19EE PUSH2 0x19E9 PUSH2 0x19E4 DUP5 PUSH2 0x19BC JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x19C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FE DUP2 PUSH2 0x19D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A17 DUP2 PUSH2 0x1A04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A32 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x19F5 JUMP JUMPDEST PUSH2 0x1A3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A0E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A51 DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1A5C DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7A JUMPI PUSH2 0x1A79 PUSH2 0x1953 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 TIMESTAMP CODECOPY 0xAA SSTORE CALLER PUSH20 0x132C81FC8C57E3B38437535B47175888A8CBEE49 0xE7 0xE0 0xB3 SUB 0xE0 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ", - "sourceMap": "743:1954:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:219:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:126;;;:::i;:::-;;3810:120:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;849:80:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3198:265:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:566;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8068:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;936:38:33;;;:::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:33;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7130:229:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9146:344;;;:::i;:::-;;6886:171;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3563:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8706:128;;;:::i;:::-;;2453:242:33;;;;;;;;;;;;;:::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:33:-;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:33:-;;;:::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:33:-;896:33;2464:16:6;2475:4;2464:10;:16::i;:::-;1920:8:33::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:33:-;896:33;2464:16:6;2475:4;2464:10;:16::i;:::-;2624:8:33::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;763:146:25:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763: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;14296:213:28:-;14352:6;14382:16;14374:24;;:5;:24;14370:103;;;14452:2;14456:5;14421:41;;;;;;;;;;;;:::i;:::-;;;;;;;;14370:103;14496:5;14482:20;;14296: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;3371:111:27:-;3429:7;3455:20;3467:1;3463;:5;3470:1;3473;3455:7;:20::i;:::-;3448:27;;3371:111;;;;:::o;2825:294::-;2903:7;3075:26;3091:9;3075:15;:26::i;:::-;3070:1;3066;:5;3065:36;3060:1;:42;3053:49;;2825:294;;;;;:::o;34795:145:28:-;34842:9;34921:1;34914:9;34907:17;34902:22;;34795:145;;;:::o;88:117:39:-;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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@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/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"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": "6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "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 0x27 0x2C 0xE1 CHAINID MUL 0xF7 JUMP EQ 0xB1 DUP13 CALLCODE 0xBF NOT 0xAB PUSH9 0xC14B11F226E3A446F PUSH23 0xE4FE0C0E360DC764736F6C634300081C00330000000000 ", - "sourceMap": "708:3783:34:-: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_7492": { - "entryPoint": 1293, - "id": 7492, - "parameterSlots": 1, - "returnSlots": 4 - }, - "@initialize_7471": { - "entryPoint": 876, - "id": 7471, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@isVerifiedForDomainHash_7591": { - "entryPoint": 515, - "id": 7591, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@isVerifiedForMultipleDomainHashes_7550": { - "entryPoint": 1723, - "id": 7550, - "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_7442": { - "entryPoint": 1631, - "id": 7442, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@renounceOwnership_834": { - "entryPoint": 1468, - "id": 834, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@setRegistry_7618": { - "entryPoint": 1912, - "id": 7618, - "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_$8101_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_$8101t_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_$7736_to_t_address_fromStack": { - "entryPoint": 3815, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_IVerifier_$8101_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_$8101_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_$7736__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_$8101": { - "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_$7736_to_t_address": { - "entryPoint": 3797, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_IVerifier_$8101_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_$8101": { - "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:39", - "nodeType": "YulBlock", - "src": "0:14873:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:32:39", - "nodeType": "YulBlock", - "src": "379:32:39", - "statements": [ - { - "nativeSrc": "389:16:39", - "nodeType": "YulAssignment", - "src": "389:16:39", - "value": { - "name": "value", - "nativeSrc": "400:5:39", - "nodeType": "YulIdentifier", - "src": "400:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "334:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:77:39" - }, - { - "body": { - "nativeSrc": "460:79:39", - "nodeType": "YulBlock", - "src": "460:79:39", - "statements": [ - { - "body": { - "nativeSrc": "517:16:39", - "nodeType": "YulBlock", - "src": "517:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "526:1:39", - "nodeType": "YulLiteral", - "src": "526:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "529:1:39", - "nodeType": "YulLiteral", - "src": "529:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "519:6:39", - "nodeType": "YulIdentifier", - "src": "519:6:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulFunctionCall", - "src": "519:12:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulExpressionStatement", - "src": "519:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "483:5:39", - "nodeType": "YulIdentifier", - "src": "483:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "508:5:39", - "nodeType": "YulIdentifier", - "src": "508:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "490:17:39", - "nodeType": "YulIdentifier", - "src": "490:17:39" - }, - "nativeSrc": "490:24:39", - "nodeType": "YulFunctionCall", - "src": "490:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "480:2:39", - "nodeType": "YulIdentifier", - "src": "480:2:39" - }, - "nativeSrc": "480:35:39", - "nodeType": "YulFunctionCall", - "src": "480:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "473:6:39", - "nodeType": "YulIdentifier", - "src": "473:6:39" - }, - "nativeSrc": "473:43:39", - "nodeType": "YulFunctionCall", - "src": "473:43:39" - }, - "nativeSrc": "470:63:39", - "nodeType": "YulIf", - "src": "470:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "417:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "453:5:39", - "nodeType": "YulTypedName", - "src": "453:5:39", - "type": "" - } - ], - "src": "417:122:39" - }, - { - "body": { - "nativeSrc": "597:87:39", - "nodeType": "YulBlock", - "src": "597:87:39", - "statements": [ - { - "nativeSrc": "607:29:39", - "nodeType": "YulAssignment", - "src": "607:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "629:6:39", - "nodeType": "YulIdentifier", - "src": "629:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "616:12:39", - "nodeType": "YulIdentifier", - "src": "616:12:39" - }, - "nativeSrc": "616:20:39", - "nodeType": "YulFunctionCall", - "src": "616:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "607:5:39", - "nodeType": "YulIdentifier", - "src": "607:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "672:5:39", - "nodeType": "YulIdentifier", - "src": "672:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "645:26:39", - "nodeType": "YulIdentifier", - "src": "645:26:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulFunctionCall", - "src": "645:33:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulExpressionStatement", - "src": "645:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "545:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "575:6:39", - "nodeType": "YulTypedName", - "src": "575:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "583:3:39", - "nodeType": "YulTypedName", - "src": "583:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "591:5:39", - "nodeType": "YulTypedName", - "src": "591:5:39", - "type": "" - } - ], - "src": "545:139:39" - }, - { - "body": { - "nativeSrc": "735:81:39", - "nodeType": "YulBlock", - "src": "735:81:39", - "statements": [ - { - "nativeSrc": "745:65:39", - "nodeType": "YulAssignment", - "src": "745:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "760:5:39", - "nodeType": "YulIdentifier", - "src": "760:5:39" - }, - { - "kind": "number", - "nativeSrc": "767:42:39", - "nodeType": "YulLiteral", - "src": "767:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "756:3:39", - "nodeType": "YulIdentifier", - "src": "756:3:39" - }, - "nativeSrc": "756:54:39", - "nodeType": "YulFunctionCall", - "src": "756:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "745:7:39", - "nodeType": "YulIdentifier", - "src": "745:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "690:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "717:5:39", - "nodeType": "YulTypedName", - "src": "717:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "727:7:39", - "nodeType": "YulTypedName", - "src": "727:7:39", - "type": "" - } - ], - "src": "690:126:39" - }, - { - "body": { - "nativeSrc": "867:51:39", - "nodeType": "YulBlock", - "src": "867:51:39", - "statements": [ - { - "nativeSrc": "877:35:39", - "nodeType": "YulAssignment", - "src": "877:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "906:5:39", - "nodeType": "YulIdentifier", - "src": "906:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "888:17:39", - "nodeType": "YulIdentifier", - "src": "888:17:39" - }, - "nativeSrc": "888:24:39", - "nodeType": "YulFunctionCall", - "src": "888:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "877:7:39", - "nodeType": "YulIdentifier", - "src": "877:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "822:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "849:5:39", - "nodeType": "YulTypedName", - "src": "849:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "859:7:39", - "nodeType": "YulTypedName", - "src": "859:7:39", - "type": "" - } - ], - "src": "822:96:39" - }, - { - "body": { - "nativeSrc": "967:79:39", - "nodeType": "YulBlock", - "src": "967:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1024:16:39", - "nodeType": "YulBlock", - "src": "1024:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1033:1:39", - "nodeType": "YulLiteral", - "src": "1033:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1036:1:39", - "nodeType": "YulLiteral", - "src": "1036:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1026:6:39", - "nodeType": "YulIdentifier", - "src": "1026:6:39" - }, - "nativeSrc": "1026:12:39", - "nodeType": "YulFunctionCall", - "src": "1026:12:39" - }, - "nativeSrc": "1026:12:39", - "nodeType": "YulExpressionStatement", - "src": "1026:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "990:5:39", - "nodeType": "YulIdentifier", - "src": "990:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1015:5:39", - "nodeType": "YulIdentifier", - "src": "1015:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "997:17:39", - "nodeType": "YulIdentifier", - "src": "997:17:39" - }, - "nativeSrc": "997:24:39", - "nodeType": "YulFunctionCall", - "src": "997:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "987:2:39", - "nodeType": "YulIdentifier", - "src": "987:2:39" - }, - "nativeSrc": "987:35:39", - "nodeType": "YulFunctionCall", - "src": "987:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "980:6:39", - "nodeType": "YulIdentifier", - "src": "980:6:39" - }, - "nativeSrc": "980:43:39", - "nodeType": "YulFunctionCall", - "src": "980:43:39" - }, - "nativeSrc": "977:63:39", - "nodeType": "YulIf", - "src": "977:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "924:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "960:5:39", - "nodeType": "YulTypedName", - "src": "960:5:39", - "type": "" - } - ], - "src": "924:122:39" - }, - { - "body": { - "nativeSrc": "1104:87:39", - "nodeType": "YulBlock", - "src": "1104:87:39", - "statements": [ - { - "nativeSrc": "1114:29:39", - "nodeType": "YulAssignment", - "src": "1114:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1136:6:39", - "nodeType": "YulIdentifier", - "src": "1136:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1123:12:39", - "nodeType": "YulIdentifier", - "src": "1123:12:39" - }, - "nativeSrc": "1123:20:39", - "nodeType": "YulFunctionCall", - "src": "1123:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1114:5:39", - "nodeType": "YulIdentifier", - "src": "1114:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1179:5:39", - "nodeType": "YulIdentifier", - "src": "1179:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "1152:26:39", - "nodeType": "YulIdentifier", - "src": "1152:26:39" - }, - "nativeSrc": "1152:33:39", - "nodeType": "YulFunctionCall", - "src": "1152:33:39" - }, - "nativeSrc": "1152:33:39", - "nodeType": "YulExpressionStatement", - "src": "1152:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "1052:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1082:6:39", - "nodeType": "YulTypedName", - "src": "1082:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1090:3:39", - "nodeType": "YulTypedName", - "src": "1090:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1098:5:39", - "nodeType": "YulTypedName", - "src": "1098:5:39", - "type": "" - } - ], - "src": "1052:139:39" - }, - { - "body": { - "nativeSrc": "1242:32:39", - "nodeType": "YulBlock", - "src": "1242:32:39", - "statements": [ - { - "nativeSrc": "1252:16:39", - "nodeType": "YulAssignment", - "src": "1252:16:39", - "value": { - "name": "value", - "nativeSrc": "1263:5:39", - "nodeType": "YulIdentifier", - "src": "1263:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1252:7:39", - "nodeType": "YulIdentifier", - "src": "1252:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "1197:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1224:5:39", - "nodeType": "YulTypedName", - "src": "1224:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1234:7:39", - "nodeType": "YulTypedName", - "src": "1234:7:39", - "type": "" - } - ], - "src": "1197:77:39" - }, - { - "body": { - "nativeSrc": "1323:79:39", - "nodeType": "YulBlock", - "src": "1323:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1380:16:39", - "nodeType": "YulBlock", - "src": "1380:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1389:1:39", - "nodeType": "YulLiteral", - "src": "1389:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1392:1:39", - "nodeType": "YulLiteral", - "src": "1392:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1382:6:39", - "nodeType": "YulIdentifier", - "src": "1382:6:39" - }, - "nativeSrc": "1382:12:39", - "nodeType": "YulFunctionCall", - "src": "1382:12:39" - }, - "nativeSrc": "1382:12:39", - "nodeType": "YulExpressionStatement", - "src": "1382:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1346:5:39", - "nodeType": "YulIdentifier", - "src": "1346:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1371:5:39", - "nodeType": "YulIdentifier", - "src": "1371:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "1353:17:39", - "nodeType": "YulIdentifier", - "src": "1353:17:39" - }, - "nativeSrc": "1353:24:39", - "nodeType": "YulFunctionCall", - "src": "1353:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1343:2:39", - "nodeType": "YulIdentifier", - "src": "1343:2:39" - }, - "nativeSrc": "1343:35:39", - "nodeType": "YulFunctionCall", - "src": "1343:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1336:6:39", - "nodeType": "YulIdentifier", - "src": "1336:6:39" - }, - "nativeSrc": "1336:43:39", - "nodeType": "YulFunctionCall", - "src": "1336:43:39" - }, - "nativeSrc": "1333:63:39", - "nodeType": "YulIf", - "src": "1333:63:39" - } - ] - }, - "name": "validator_revert_t_uint256", - "nativeSrc": "1280:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1316:5:39", - "nodeType": "YulTypedName", - "src": "1316:5:39", - "type": "" - } - ], - "src": "1280:122:39" - }, - { - "body": { - "nativeSrc": "1460:87:39", - "nodeType": "YulBlock", - "src": "1460:87:39", - "statements": [ - { - "nativeSrc": "1470:29:39", - "nodeType": "YulAssignment", - "src": "1470:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1492:6:39", - "nodeType": "YulIdentifier", - "src": "1492:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1479:12:39", - "nodeType": "YulIdentifier", - "src": "1479:12:39" - }, - "nativeSrc": "1479:20:39", - "nodeType": "YulFunctionCall", - "src": "1479:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1470:5:39", - "nodeType": "YulIdentifier", - "src": "1470:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1535:5:39", - "nodeType": "YulIdentifier", - "src": "1535:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "1508:26:39", - "nodeType": "YulIdentifier", - "src": "1508:26:39" - }, - "nativeSrc": "1508:33:39", - "nodeType": "YulFunctionCall", - "src": "1508:33:39" - }, - "nativeSrc": "1508:33:39", - "nodeType": "YulExpressionStatement", - "src": "1508:33:39" - } - ] - }, - "name": "abi_decode_t_uint256", - "nativeSrc": "1408:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1438:6:39", - "nodeType": "YulTypedName", - "src": "1438:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1446:3:39", - "nodeType": "YulTypedName", - "src": "1446:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1454:5:39", - "nodeType": "YulTypedName", - "src": "1454:5:39", - "type": "" - } - ], - "src": "1408:139:39" - }, - { - "body": { - "nativeSrc": "1653:519:39", - "nodeType": "YulBlock", - "src": "1653:519:39", - "statements": [ - { - "body": { - "nativeSrc": "1699:83:39", - "nodeType": "YulBlock", - "src": "1699:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1701:77:39", - "nodeType": "YulIdentifier", - "src": "1701:77:39" - }, - "nativeSrc": "1701:79:39", - "nodeType": "YulFunctionCall", - "src": "1701:79:39" - }, - "nativeSrc": "1701:79:39", - "nodeType": "YulExpressionStatement", - "src": "1701:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1674:7:39", - "nodeType": "YulIdentifier", - "src": "1674:7:39" - }, - { - "name": "headStart", - "nativeSrc": "1683:9:39", - "nodeType": "YulIdentifier", - "src": "1683:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1670:3:39", - "nodeType": "YulIdentifier", - "src": "1670:3:39" - }, - "nativeSrc": "1670:23:39", - "nodeType": "YulFunctionCall", - "src": "1670:23:39" - }, - { - "kind": "number", - "nativeSrc": "1695:2:39", - "nodeType": "YulLiteral", - "src": "1695:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1666:3:39", - "nodeType": "YulIdentifier", - "src": "1666:3:39" - }, - "nativeSrc": "1666:32:39", - "nodeType": "YulFunctionCall", - "src": "1666:32:39" - }, - "nativeSrc": "1663:119:39", - "nodeType": "YulIf", - "src": "1663:119:39" - }, - { - "nativeSrc": "1792:117:39", - "nodeType": "YulBlock", - "src": "1792:117:39", - "statements": [ - { - "nativeSrc": "1807:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1807:15:39", - "value": { - "kind": "number", - "nativeSrc": "1821:1:39", - "nodeType": "YulLiteral", - "src": "1821:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1811:6:39", - "nodeType": "YulTypedName", - "src": "1811:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1836:63:39", - "nodeType": "YulAssignment", - "src": "1836:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1871:9:39", - "nodeType": "YulIdentifier", - "src": "1871:9:39" - }, - { - "name": "offset", - "nativeSrc": "1882:6:39", - "nodeType": "YulIdentifier", - "src": "1882:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1867:3:39", - "nodeType": "YulIdentifier", - "src": "1867:3:39" - }, - "nativeSrc": "1867:22:39", - "nodeType": "YulFunctionCall", - "src": "1867:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1891:7:39", - "nodeType": "YulIdentifier", - "src": "1891:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "1846:20:39", - "nodeType": "YulIdentifier", - "src": "1846:20:39" - }, - "nativeSrc": "1846:53:39", - "nodeType": "YulFunctionCall", - "src": "1846:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1836:6:39", - "nodeType": "YulIdentifier", - "src": "1836:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "1919:118:39", - "nodeType": "YulBlock", - "src": "1919:118:39", - "statements": [ - { - "nativeSrc": "1934:16:39", - "nodeType": "YulVariableDeclaration", - "src": "1934:16:39", - "value": { - "kind": "number", - "nativeSrc": "1948:2:39", - "nodeType": "YulLiteral", - "src": "1948:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1938:6:39", - "nodeType": "YulTypedName", - "src": "1938:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1964:63:39", - "nodeType": "YulAssignment", - "src": "1964:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1999:9:39", - "nodeType": "YulIdentifier", - "src": "1999:9:39" - }, - { - "name": "offset", - "nativeSrc": "2010:6:39", - "nodeType": "YulIdentifier", - "src": "2010:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1995:3:39", - "nodeType": "YulIdentifier", - "src": "1995:3:39" - }, - "nativeSrc": "1995:22:39", - "nodeType": "YulFunctionCall", - "src": "1995:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2019:7:39", - "nodeType": "YulIdentifier", - "src": "2019:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "1974:20:39", - "nodeType": "YulIdentifier", - "src": "1974:20:39" - }, - "nativeSrc": "1974:53:39", - "nodeType": "YulFunctionCall", - "src": "1974:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1964:6:39", - "nodeType": "YulIdentifier", - "src": "1964:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "2047:118:39", - "nodeType": "YulBlock", - "src": "2047:118:39", - "statements": [ - { - "nativeSrc": "2062:16:39", - "nodeType": "YulVariableDeclaration", - "src": "2062:16:39", - "value": { - "kind": "number", - "nativeSrc": "2076:2:39", - "nodeType": "YulLiteral", - "src": "2076:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2066:6:39", - "nodeType": "YulTypedName", - "src": "2066:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2092:63:39", - "nodeType": "YulAssignment", - "src": "2092:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2127:9:39", - "nodeType": "YulIdentifier", - "src": "2127:9:39" - }, - { - "name": "offset", - "nativeSrc": "2138:6:39", - "nodeType": "YulIdentifier", - "src": "2138:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2123:3:39", - "nodeType": "YulIdentifier", - "src": "2123:3:39" - }, - "nativeSrc": "2123:22:39", - "nodeType": "YulFunctionCall", - "src": "2123:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2147:7:39", - "nodeType": "YulIdentifier", - "src": "2147:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "2102:20:39", - "nodeType": "YulIdentifier", - "src": "2102:20:39" - }, - "nativeSrc": "2102:53:39", - "nodeType": "YulFunctionCall", - "src": "2102:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "2092:6:39", - "nodeType": "YulIdentifier", - "src": "2092:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_addresst_uint256", - "nativeSrc": "1553:619:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1607:9:39", - "nodeType": "YulTypedName", - "src": "1607:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1618:7:39", - "nodeType": "YulTypedName", - "src": "1618:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1630:6:39", - "nodeType": "YulTypedName", - "src": "1630:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1638:6:39", - "nodeType": "YulTypedName", - "src": "1638:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1646:6:39", - "nodeType": "YulTypedName", - "src": "1646:6:39", - "type": "" - } - ], - "src": "1553:619:39" - }, - { - "body": { - "nativeSrc": "2243:53:39", - "nodeType": "YulBlock", - "src": "2243:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2260:3:39", - "nodeType": "YulIdentifier", - "src": "2260:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2283:5:39", - "nodeType": "YulIdentifier", - "src": "2283:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "2265:17:39", - "nodeType": "YulIdentifier", - "src": "2265:17:39" - }, - "nativeSrc": "2265:24:39", - "nodeType": "YulFunctionCall", - "src": "2265:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2253:6:39", - "nodeType": "YulIdentifier", - "src": "2253:6:39" - }, - "nativeSrc": "2253:37:39", - "nodeType": "YulFunctionCall", - "src": "2253:37:39" - }, - "nativeSrc": "2253:37:39", - "nodeType": "YulExpressionStatement", - "src": "2253:37:39" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "2178:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2231:5:39", - "nodeType": "YulTypedName", - "src": "2231:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2238:3:39", - "nodeType": "YulTypedName", - "src": "2238:3:39", - "type": "" - } - ], - "src": "2178:118:39" - }, - { - "body": { - "nativeSrc": "2400:124:39", - "nodeType": "YulBlock", - "src": "2400:124:39", - "statements": [ - { - "nativeSrc": "2410:26:39", - "nodeType": "YulAssignment", - "src": "2410:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2422:9:39", - "nodeType": "YulIdentifier", - "src": "2422:9:39" - }, - { - "kind": "number", - "nativeSrc": "2433:2:39", - "nodeType": "YulLiteral", - "src": "2433:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2418:3:39", - "nodeType": "YulIdentifier", - "src": "2418:3:39" - }, - "nativeSrc": "2418:18:39", - "nodeType": "YulFunctionCall", - "src": "2418:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2410:4:39", - "nodeType": "YulIdentifier", - "src": "2410:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2490:6:39", - "nodeType": "YulIdentifier", - "src": "2490:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2503:9:39", - "nodeType": "YulIdentifier", - "src": "2503:9:39" - }, - { - "kind": "number", - "nativeSrc": "2514:1:39", - "nodeType": "YulLiteral", - "src": "2514:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2499:3:39", - "nodeType": "YulIdentifier", - "src": "2499:3:39" - }, - "nativeSrc": "2499:17:39", - "nodeType": "YulFunctionCall", - "src": "2499:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "2446:43:39", - "nodeType": "YulIdentifier", - "src": "2446:43:39" - }, - "nativeSrc": "2446:71:39", - "nodeType": "YulFunctionCall", - "src": "2446:71:39" - }, - "nativeSrc": "2446:71:39", - "nodeType": "YulExpressionStatement", - "src": "2446:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "2302:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2372:9:39", - "nodeType": "YulTypedName", - "src": "2372:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2384:6:39", - "nodeType": "YulTypedName", - "src": "2384:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2395:4:39", - "nodeType": "YulTypedName", - "src": "2395:4:39", - "type": "" - } - ], - "src": "2302:222:39" - }, - { - "body": { - "nativeSrc": "2613:391:39", - "nodeType": "YulBlock", - "src": "2613:391:39", - "statements": [ - { - "body": { - "nativeSrc": "2659:83:39", - "nodeType": "YulBlock", - "src": "2659:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2661:77:39", - "nodeType": "YulIdentifier", - "src": "2661:77:39" - }, - "nativeSrc": "2661:79:39", - "nodeType": "YulFunctionCall", - "src": "2661:79:39" - }, - "nativeSrc": "2661:79:39", - "nodeType": "YulExpressionStatement", - "src": "2661:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2634:7:39", - "nodeType": "YulIdentifier", - "src": "2634:7:39" - }, - { - "name": "headStart", - "nativeSrc": "2643:9:39", - "nodeType": "YulIdentifier", - "src": "2643:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2630:3:39", - "nodeType": "YulIdentifier", - "src": "2630:3:39" - }, - "nativeSrc": "2630:23:39", - "nodeType": "YulFunctionCall", - "src": "2630:23:39" - }, - { - "kind": "number", - "nativeSrc": "2655:2:39", - "nodeType": "YulLiteral", - "src": "2655:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2626:3:39", - "nodeType": "YulIdentifier", - "src": "2626:3:39" - }, - "nativeSrc": "2626:32:39", - "nodeType": "YulFunctionCall", - "src": "2626:32:39" - }, - "nativeSrc": "2623:119:39", - "nodeType": "YulIf", - "src": "2623:119:39" - }, - { - "nativeSrc": "2752:117:39", - "nodeType": "YulBlock", - "src": "2752:117:39", - "statements": [ - { - "nativeSrc": "2767:15:39", - "nodeType": "YulVariableDeclaration", - "src": "2767:15:39", - "value": { - "kind": "number", - "nativeSrc": "2781:1:39", - "nodeType": "YulLiteral", - "src": "2781:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2771:6:39", - "nodeType": "YulTypedName", - "src": "2771:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2796:63:39", - "nodeType": "YulAssignment", - "src": "2796:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2831:9:39", - "nodeType": "YulIdentifier", - "src": "2831:9:39" - }, - { - "name": "offset", - "nativeSrc": "2842:6:39", - "nodeType": "YulIdentifier", - "src": "2842:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2827:3:39", - "nodeType": "YulIdentifier", - "src": "2827:3:39" - }, - "nativeSrc": "2827:22:39", - "nodeType": "YulFunctionCall", - "src": "2827:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2851:7:39", - "nodeType": "YulIdentifier", - "src": "2851:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "2806:20:39", - "nodeType": "YulIdentifier", - "src": "2806:20:39" - }, - "nativeSrc": "2806:53:39", - "nodeType": "YulFunctionCall", - "src": "2806:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2796:6:39", - "nodeType": "YulIdentifier", - "src": "2796:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "2879:118:39", - "nodeType": "YulBlock", - "src": "2879:118:39", - "statements": [ - { - "nativeSrc": "2894:16:39", - "nodeType": "YulVariableDeclaration", - "src": "2894:16:39", - "value": { - "kind": "number", - "nativeSrc": "2908:2:39", - "nodeType": "YulLiteral", - "src": "2908:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2898:6:39", - "nodeType": "YulTypedName", - "src": "2898:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2924:63:39", - "nodeType": "YulAssignment", - "src": "2924:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2959:9:39", - "nodeType": "YulIdentifier", - "src": "2959:9:39" - }, - { - "name": "offset", - "nativeSrc": "2970:6:39", - "nodeType": "YulIdentifier", - "src": "2970:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2955:3:39", - "nodeType": "YulIdentifier", - "src": "2955:3:39" - }, - "nativeSrc": "2955:22:39", - "nodeType": "YulFunctionCall", - "src": "2955:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2979:7:39", - "nodeType": "YulIdentifier", - "src": "2979:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "2934:20:39", - "nodeType": "YulIdentifier", - "src": "2934:20:39" - }, - "nativeSrc": "2934:53:39", - "nodeType": "YulFunctionCall", - "src": "2934:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "2924:6:39", - "nodeType": "YulIdentifier", - "src": "2924:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_address", - "nativeSrc": "2530:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2575:9:39", - "nodeType": "YulTypedName", - "src": "2575:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "2586:7:39", - "nodeType": "YulTypedName", - "src": "2586:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "2598:6:39", - "nodeType": "YulTypedName", - "src": "2598:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "2606:6:39", - "nodeType": "YulTypedName", - "src": "2606:6:39", - "type": "" - } - ], - "src": "2530:474:39" - }, - { - "body": { - "nativeSrc": "3076:263:39", - "nodeType": "YulBlock", - "src": "3076:263:39", - "statements": [ - { - "body": { - "nativeSrc": "3122:83:39", - "nodeType": "YulBlock", - "src": "3122:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3124:77:39", - "nodeType": "YulIdentifier", - "src": "3124:77:39" - }, - "nativeSrc": "3124:79:39", - "nodeType": "YulFunctionCall", - "src": "3124:79:39" - }, - "nativeSrc": "3124:79:39", - "nodeType": "YulExpressionStatement", - "src": "3124:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3097:7:39", - "nodeType": "YulIdentifier", - "src": "3097:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3106:9:39", - "nodeType": "YulIdentifier", - "src": "3106:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3093:3:39", - "nodeType": "YulIdentifier", - "src": "3093:3:39" - }, - "nativeSrc": "3093:23:39", - "nodeType": "YulFunctionCall", - "src": "3093:23:39" - }, - { - "kind": "number", - "nativeSrc": "3118:2:39", - "nodeType": "YulLiteral", - "src": "3118:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3089:3:39", - "nodeType": "YulIdentifier", - "src": "3089:3:39" - }, - "nativeSrc": "3089:32:39", - "nodeType": "YulFunctionCall", - "src": "3089:32:39" - }, - "nativeSrc": "3086:119:39", - "nodeType": "YulIf", - "src": "3086:119:39" - }, - { - "nativeSrc": "3215:117:39", - "nodeType": "YulBlock", - "src": "3215:117:39", - "statements": [ - { - "nativeSrc": "3230:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3230:15:39", - "value": { - "kind": "number", - "nativeSrc": "3244:1:39", - "nodeType": "YulLiteral", - "src": "3244:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3234:6:39", - "nodeType": "YulTypedName", - "src": "3234:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3259:63:39", - "nodeType": "YulAssignment", - "src": "3259:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3294:9:39", - "nodeType": "YulIdentifier", - "src": "3294:9:39" - }, - { - "name": "offset", - "nativeSrc": "3305:6:39", - "nodeType": "YulIdentifier", - "src": "3305:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3290:3:39", - "nodeType": "YulIdentifier", - "src": "3290:3:39" - }, - "nativeSrc": "3290:22:39", - "nodeType": "YulFunctionCall", - "src": "3290:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3314:7:39", - "nodeType": "YulIdentifier", - "src": "3314:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "3269:20:39", - "nodeType": "YulIdentifier", - "src": "3269:20:39" - }, - "nativeSrc": "3269:53:39", - "nodeType": "YulFunctionCall", - "src": "3269:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3259:6:39", - "nodeType": "YulIdentifier", - "src": "3259:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "3010:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3046:9:39", - "nodeType": "YulTypedName", - "src": "3046:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3057:7:39", - "nodeType": "YulTypedName", - "src": "3057:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3069:6:39", - "nodeType": "YulTypedName", - "src": "3069:6:39", - "type": "" - } - ], - "src": "3010:329:39" - }, - { - "body": { - "nativeSrc": "3410:53:39", - "nodeType": "YulBlock", - "src": "3410:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3427:3:39", - "nodeType": "YulIdentifier", - "src": "3427:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3450:5:39", - "nodeType": "YulIdentifier", - "src": "3450:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "3432:17:39", - "nodeType": "YulIdentifier", - "src": "3432:17:39" - }, - "nativeSrc": "3432:24:39", - "nodeType": "YulFunctionCall", - "src": "3432:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3420:6:39", - "nodeType": "YulIdentifier", - "src": "3420:6:39" - }, - "nativeSrc": "3420:37:39", - "nodeType": "YulFunctionCall", - "src": "3420:37:39" - }, - "nativeSrc": "3420:37:39", - "nodeType": "YulExpressionStatement", - "src": "3420:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "3345:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3398:5:39", - "nodeType": "YulTypedName", - "src": "3398:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "3405:3:39", - "nodeType": "YulTypedName", - "src": "3405:3:39", - "type": "" - } - ], - "src": "3345:118:39" - }, - { - "body": { - "nativeSrc": "3501:28:39", - "nodeType": "YulBlock", - "src": "3501:28:39", - "statements": [ - { - "nativeSrc": "3511:12:39", - "nodeType": "YulAssignment", - "src": "3511:12:39", - "value": { - "name": "value", - "nativeSrc": "3518:5:39", - "nodeType": "YulIdentifier", - "src": "3518:5:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "3511:3:39", - "nodeType": "YulIdentifier", - "src": "3511:3:39" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "3469:60:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3487:5:39", - "nodeType": "YulTypedName", - "src": "3487:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "3497:3:39", - "nodeType": "YulTypedName", - "src": "3497:3:39", - "type": "" - } - ], - "src": "3469:60:39" - }, - { - "body": { - "nativeSrc": "3595:82:39", - "nodeType": "YulBlock", - "src": "3595:82:39", - "statements": [ - { - "nativeSrc": "3605:66:39", - "nodeType": "YulAssignment", - "src": "3605:66:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3663:5:39", - "nodeType": "YulIdentifier", - "src": "3663:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "3645:17:39", - "nodeType": "YulIdentifier", - "src": "3645:17:39" - }, - "nativeSrc": "3645:24:39", - "nodeType": "YulFunctionCall", - "src": "3645:24:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "3636:8:39", - "nodeType": "YulIdentifier", - "src": "3636:8:39" - }, - "nativeSrc": "3636:34:39", - "nodeType": "YulFunctionCall", - "src": "3636:34:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "3618:17:39", - "nodeType": "YulIdentifier", - "src": "3618:17:39" - }, - "nativeSrc": "3618:53:39", - "nodeType": "YulFunctionCall", - "src": "3618:53:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "3605:9:39", - "nodeType": "YulIdentifier", - "src": "3605:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "3535:142:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3575:5:39", - "nodeType": "YulTypedName", - "src": "3575:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "3585:9:39", - "nodeType": "YulTypedName", - "src": "3585:9:39", - "type": "" - } - ], - "src": "3535:142:39" - }, - { - "body": { - "nativeSrc": "3743:66:39", - "nodeType": "YulBlock", - "src": "3743:66:39", - "statements": [ - { - "nativeSrc": "3753:50:39", - "nodeType": "YulAssignment", - "src": "3753:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3797:5:39", - "nodeType": "YulIdentifier", - "src": "3797:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "3766:30:39", - "nodeType": "YulIdentifier", - "src": "3766:30:39" - }, - "nativeSrc": "3766:37:39", - "nodeType": "YulFunctionCall", - "src": "3766:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "3753:9:39", - "nodeType": "YulIdentifier", - "src": "3753:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "3683:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3723:5:39", - "nodeType": "YulTypedName", - "src": "3723:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "3733:9:39", - "nodeType": "YulTypedName", - "src": "3733:9:39", - "type": "" - } - ], - "src": "3683:126:39" - }, - { - "body": { - "nativeSrc": "3893:66:39", - "nodeType": "YulBlock", - "src": "3893:66:39", - "statements": [ - { - "nativeSrc": "3903:50:39", - "nodeType": "YulAssignment", - "src": "3903:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3947:5:39", - "nodeType": "YulIdentifier", - "src": "3947:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "3916:30:39", - "nodeType": "YulIdentifier", - "src": "3916:30:39" - }, - "nativeSrc": "3916:37:39", - "nodeType": "YulFunctionCall", - "src": "3916:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "3903:9:39", - "nodeType": "YulIdentifier", - "src": "3903:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "3815:144:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3873:5:39", - "nodeType": "YulTypedName", - "src": "3873:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "3883:9:39", - "nodeType": "YulTypedName", - "src": "3883:9:39", - "type": "" - } - ], - "src": "3815:144:39" - }, - { - "body": { - "nativeSrc": "4048:84:39", - "nodeType": "YulBlock", - "src": "4048:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4065:3:39", - "nodeType": "YulIdentifier", - "src": "4065:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4119:5:39", - "nodeType": "YulIdentifier", - "src": "4119:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "4070:48:39", - "nodeType": "YulIdentifier", - "src": "4070:48:39" - }, - "nativeSrc": "4070:55:39", - "nodeType": "YulFunctionCall", - "src": "4070:55:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4058:6:39", - "nodeType": "YulIdentifier", - "src": "4058:6:39" - }, - "nativeSrc": "4058:68:39", - "nodeType": "YulFunctionCall", - "src": "4058:68:39" - }, - "nativeSrc": "4058:68:39", - "nodeType": "YulExpressionStatement", - "src": "4058:68:39" - } - ] - }, - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "3965:167:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4036:5:39", - "nodeType": "YulTypedName", - "src": "4036:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4043:3:39", - "nodeType": "YulTypedName", - "src": "4043:3:39", - "type": "" - } - ], - "src": "3965:167:39" - }, - { - "body": { - "nativeSrc": "4338:389:39", - "nodeType": "YulBlock", - "src": "4338:389:39", - "statements": [ - { - "nativeSrc": "4348:27:39", - "nodeType": "YulAssignment", - "src": "4348:27:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4360:9:39", - "nodeType": "YulIdentifier", - "src": "4360:9:39" - }, - { - "kind": "number", - "nativeSrc": "4371:3:39", - "nodeType": "YulLiteral", - "src": "4371:3:39", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4356:3:39", - "nodeType": "YulIdentifier", - "src": "4356:3:39" - }, - "nativeSrc": "4356:19:39", - "nodeType": "YulFunctionCall", - "src": "4356:19:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4348:4:39", - "nodeType": "YulIdentifier", - "src": "4348:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4429:6:39", - "nodeType": "YulIdentifier", - "src": "4429:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4442:9:39", - "nodeType": "YulIdentifier", - "src": "4442:9:39" - }, - { - "kind": "number", - "nativeSrc": "4453:1:39", - "nodeType": "YulLiteral", - "src": "4453:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4438:3:39", - "nodeType": "YulIdentifier", - "src": "4438:3:39" - }, - "nativeSrc": "4438:17:39", - "nodeType": "YulFunctionCall", - "src": "4438:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4385:43:39", - "nodeType": "YulIdentifier", - "src": "4385:43:39" - }, - "nativeSrc": "4385:71:39", - "nodeType": "YulFunctionCall", - "src": "4385:71:39" - }, - "nativeSrc": "4385:71:39", - "nodeType": "YulExpressionStatement", - "src": "4385:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "4528:6:39", - "nodeType": "YulIdentifier", - "src": "4528:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4541:9:39", - "nodeType": "YulIdentifier", - "src": "4541:9:39" - }, - { - "kind": "number", - "nativeSrc": "4552:2:39", - "nodeType": "YulLiteral", - "src": "4552:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4537:3:39", - "nodeType": "YulIdentifier", - "src": "4537:3:39" - }, - "nativeSrc": "4537:18:39", - "nodeType": "YulFunctionCall", - "src": "4537:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "4466:61:39", - "nodeType": "YulIdentifier", - "src": "4466:61:39" - }, - "nativeSrc": "4466:90:39", - "nodeType": "YulFunctionCall", - "src": "4466:90:39" - }, - "nativeSrc": "4466:90:39", - "nodeType": "YulExpressionStatement", - "src": "4466:90:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "4610:6:39", - "nodeType": "YulIdentifier", - "src": "4610:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4623:9:39", - "nodeType": "YulIdentifier", - "src": "4623:9:39" - }, - { - "kind": "number", - "nativeSrc": "4634:2:39", - "nodeType": "YulLiteral", - "src": "4634:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4619:3:39", - "nodeType": "YulIdentifier", - "src": "4619:3:39" - }, - "nativeSrc": "4619:18:39", - "nodeType": "YulFunctionCall", - "src": "4619:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "4566:43:39", - "nodeType": "YulIdentifier", - "src": "4566:43:39" - }, - "nativeSrc": "4566:72:39", - "nodeType": "YulFunctionCall", - "src": "4566:72:39" - }, - "nativeSrc": "4566:72:39", - "nodeType": "YulExpressionStatement", - "src": "4566:72:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nativeSrc": "4692:6:39", - "nodeType": "YulIdentifier", - "src": "4692:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4705:9:39", - "nodeType": "YulIdentifier", - "src": "4705:9:39" - }, - { - "kind": "number", - "nativeSrc": "4716:2:39", - "nodeType": "YulLiteral", - "src": "4716:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4701:3:39", - "nodeType": "YulIdentifier", - "src": "4701:3:39" - }, - "nativeSrc": "4701:18:39", - "nodeType": "YulFunctionCall", - "src": "4701:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "4648:43:39", - "nodeType": "YulIdentifier", - "src": "4648:43:39" - }, - "nativeSrc": "4648:72:39", - "nodeType": "YulFunctionCall", - "src": "4648:72:39" - }, - "nativeSrc": "4648:72:39", - "nodeType": "YulExpressionStatement", - "src": "4648:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_contract$_IVerifier_$8101_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "4138:589:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4286:9:39", - "nodeType": "YulTypedName", - "src": "4286:9:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "4298:6:39", - "nodeType": "YulTypedName", - "src": "4298:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4306:6:39", - "nodeType": "YulTypedName", - "src": "4306:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4314:6:39", - "nodeType": "YulTypedName", - "src": "4314:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4322:6:39", - "nodeType": "YulTypedName", - "src": "4322:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4333:4:39", - "nodeType": "YulTypedName", - "src": "4333:4:39", - "type": "" - } - ], - "src": "4138:589:39" - }, - { - "body": { - "nativeSrc": "4814:66:39", - "nodeType": "YulBlock", - "src": "4814:66:39", - "statements": [ - { - "nativeSrc": "4824:50:39", - "nodeType": "YulAssignment", - "src": "4824:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4868:5:39", - "nodeType": "YulIdentifier", - "src": "4868:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "4837:30:39", - "nodeType": "YulIdentifier", - "src": "4837:30:39" - }, - "nativeSrc": "4837:37:39", - "nodeType": "YulFunctionCall", - "src": "4837:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "4824:9:39", - "nodeType": "YulIdentifier", - "src": "4824:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "4733:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4794:5:39", - "nodeType": "YulTypedName", - "src": "4794:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "4804:9:39", - "nodeType": "YulTypedName", - "src": "4804:9:39", - "type": "" - } - ], - "src": "4733:147:39" - }, - { - "body": { - "nativeSrc": "4972:87:39", - "nodeType": "YulBlock", - "src": "4972:87:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4989:3:39", - "nodeType": "YulIdentifier", - "src": "4989:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5046:5:39", - "nodeType": "YulIdentifier", - "src": "5046:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "4994:51:39", - "nodeType": "YulIdentifier", - "src": "4994:51:39" - }, - "nativeSrc": "4994:58:39", - "nodeType": "YulFunctionCall", - "src": "4994:58:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4982:6:39", - "nodeType": "YulIdentifier", - "src": "4982:6:39" - }, - "nativeSrc": "4982:71:39", - "nodeType": "YulFunctionCall", - "src": "4982:71:39" - }, - "nativeSrc": "4982:71:39", - "nodeType": "YulExpressionStatement", - "src": "4982:71:39" - } - ] - }, - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "4886:173:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4960:5:39", - "nodeType": "YulTypedName", - "src": "4960:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4967:3:39", - "nodeType": "YulTypedName", - "src": "4967:3:39", - "type": "" - } - ], - "src": "4886:173:39" - }, - { - "body": { - "nativeSrc": "5184:145:39", - "nodeType": "YulBlock", - "src": "5184:145:39", - "statements": [ - { - "nativeSrc": "5194:26:39", - "nodeType": "YulAssignment", - "src": "5194:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5206:9:39", - "nodeType": "YulIdentifier", - "src": "5206:9:39" - }, - { - "kind": "number", - "nativeSrc": "5217:2:39", - "nodeType": "YulLiteral", - "src": "5217:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5202:3:39", - "nodeType": "YulIdentifier", - "src": "5202:3:39" - }, - "nativeSrc": "5202:18:39", - "nodeType": "YulFunctionCall", - "src": "5202:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5194:4:39", - "nodeType": "YulIdentifier", - "src": "5194:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5295:6:39", - "nodeType": "YulIdentifier", - "src": "5295:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5308:9:39", - "nodeType": "YulIdentifier", - "src": "5308:9:39" - }, - { - "kind": "number", - "nativeSrc": "5319:1:39", - "nodeType": "YulLiteral", - "src": "5319:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5304:3:39", - "nodeType": "YulIdentifier", - "src": "5304:3:39" - }, - "nativeSrc": "5304:17:39", - "nodeType": "YulFunctionCall", - "src": "5304:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "5230:64:39", - "nodeType": "YulIdentifier", - "src": "5230:64:39" - }, - "nativeSrc": "5230:92:39", - "nodeType": "YulFunctionCall", - "src": "5230:92:39" - }, - "nativeSrc": "5230:92:39", - "nodeType": "YulExpressionStatement", - "src": "5230:92:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed", - "nativeSrc": "5065:264:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5156:9:39", - "nodeType": "YulTypedName", - "src": "5156:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5168:6:39", - "nodeType": "YulTypedName", - "src": "5168:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5179:4:39", - "nodeType": "YulTypedName", - "src": "5179:4:39", - "type": "" - } - ], - "src": "5065:264:39" - }, - { - "body": { - "nativeSrc": "5433:124:39", - "nodeType": "YulBlock", - "src": "5433:124:39", - "statements": [ - { - "nativeSrc": "5443:26:39", - "nodeType": "YulAssignment", - "src": "5443:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5455:9:39", - "nodeType": "YulIdentifier", - "src": "5455:9:39" - }, - { - "kind": "number", - "nativeSrc": "5466:2:39", - "nodeType": "YulLiteral", - "src": "5466:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5451:3:39", - "nodeType": "YulIdentifier", - "src": "5451:3:39" - }, - "nativeSrc": "5451:18:39", - "nodeType": "YulFunctionCall", - "src": "5451:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5443:4:39", - "nodeType": "YulIdentifier", - "src": "5443:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5523:6:39", - "nodeType": "YulIdentifier", - "src": "5523:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5536:9:39", - "nodeType": "YulIdentifier", - "src": "5536:9:39" - }, - { - "kind": "number", - "nativeSrc": "5547:1:39", - "nodeType": "YulLiteral", - "src": "5547:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5532:3:39", - "nodeType": "YulIdentifier", - "src": "5532:3:39" - }, - "nativeSrc": "5532:17:39", - "nodeType": "YulFunctionCall", - "src": "5532:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "5479:43:39", - "nodeType": "YulIdentifier", - "src": "5479:43:39" - }, - "nativeSrc": "5479:71:39", - "nodeType": "YulFunctionCall", - "src": "5479:71:39" - }, - "nativeSrc": "5479:71:39", - "nodeType": "YulExpressionStatement", - "src": "5479:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "5335:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5405:9:39", - "nodeType": "YulTypedName", - "src": "5405:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5417:6:39", - "nodeType": "YulTypedName", - "src": "5417:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5428:4:39", - "nodeType": "YulTypedName", - "src": "5428:4:39", - "type": "" - } - ], - "src": "5335:222:39" - }, - { - "body": { - "nativeSrc": "5652:28:39", - "nodeType": "YulBlock", - "src": "5652:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5669:1:39", - "nodeType": "YulLiteral", - "src": "5669:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5672:1:39", - "nodeType": "YulLiteral", - "src": "5672:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5662:6:39", - "nodeType": "YulIdentifier", - "src": "5662:6:39" - }, - "nativeSrc": "5662:12:39", - "nodeType": "YulFunctionCall", - "src": "5662:12:39" - }, - "nativeSrc": "5662:12:39", - "nodeType": "YulExpressionStatement", - "src": "5662:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "5563:117:39", - "nodeType": "YulFunctionDefinition", - "src": "5563:117:39" - }, - { - "body": { - "nativeSrc": "5734:54:39", - "nodeType": "YulBlock", - "src": "5734:54:39", - "statements": [ - { - "nativeSrc": "5744:38:39", - "nodeType": "YulAssignment", - "src": "5744:38:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5762:5:39", - "nodeType": "YulIdentifier", - "src": "5762:5:39" - }, - { - "kind": "number", - "nativeSrc": "5769:2:39", - "nodeType": "YulLiteral", - "src": "5769:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5758:3:39", - "nodeType": "YulIdentifier", - "src": "5758:3:39" - }, - "nativeSrc": "5758:14:39", - "nodeType": "YulFunctionCall", - "src": "5758:14:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5778:2:39", - "nodeType": "YulLiteral", - "src": "5778:2:39", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "5774:3:39", - "nodeType": "YulIdentifier", - "src": "5774:3:39" - }, - "nativeSrc": "5774:7:39", - "nodeType": "YulFunctionCall", - "src": "5774:7:39" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "5754:3:39", - "nodeType": "YulIdentifier", - "src": "5754:3:39" - }, - "nativeSrc": "5754:28:39", - "nodeType": "YulFunctionCall", - "src": "5754:28:39" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "5744:6:39", - "nodeType": "YulIdentifier", - "src": "5744:6:39" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "5686:102:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5717:5:39", - "nodeType": "YulTypedName", - "src": "5717:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "5727:6:39", - "nodeType": "YulTypedName", - "src": "5727:6:39", - "type": "" - } - ], - "src": "5686:102:39" - }, - { - "body": { - "nativeSrc": "5822:152:39", - "nodeType": "YulBlock", - "src": "5822:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5839:1:39", - "nodeType": "YulLiteral", - "src": "5839:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5842:77:39", - "nodeType": "YulLiteral", - "src": "5842:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5832:6:39", - "nodeType": "YulIdentifier", - "src": "5832:6:39" - }, - "nativeSrc": "5832:88:39", - "nodeType": "YulFunctionCall", - "src": "5832:88:39" - }, - "nativeSrc": "5832:88:39", - "nodeType": "YulExpressionStatement", - "src": "5832:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5936:1:39", - "nodeType": "YulLiteral", - "src": "5936:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "5939:4:39", - "nodeType": "YulLiteral", - "src": "5939:4:39", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5929:6:39", - "nodeType": "YulIdentifier", - "src": "5929:6:39" - }, - "nativeSrc": "5929:15:39", - "nodeType": "YulFunctionCall", - "src": "5929:15:39" - }, - "nativeSrc": "5929:15:39", - "nodeType": "YulExpressionStatement", - "src": "5929:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5960:1:39", - "nodeType": "YulLiteral", - "src": "5960:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5963:4:39", - "nodeType": "YulLiteral", - "src": "5963:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5953:6:39", - "nodeType": "YulIdentifier", - "src": "5953:6:39" - }, - "nativeSrc": "5953:15:39", - "nodeType": "YulFunctionCall", - "src": "5953:15:39" - }, - "nativeSrc": "5953:15:39", - "nodeType": "YulExpressionStatement", - "src": "5953:15:39" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "5794:180:39", - "nodeType": "YulFunctionDefinition", - "src": "5794:180:39" - }, - { - "body": { - "nativeSrc": "6023:238:39", - "nodeType": "YulBlock", - "src": "6023:238:39", - "statements": [ - { - "nativeSrc": "6033:58:39", - "nodeType": "YulVariableDeclaration", - "src": "6033:58:39", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "6055:6:39", - "nodeType": "YulIdentifier", - "src": "6055:6:39" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "6085:4:39", - "nodeType": "YulIdentifier", - "src": "6085:4:39" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "6063:21:39", - "nodeType": "YulIdentifier", - "src": "6063:21:39" - }, - "nativeSrc": "6063:27:39", - "nodeType": "YulFunctionCall", - "src": "6063:27:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6051:3:39", - "nodeType": "YulIdentifier", - "src": "6051:3:39" - }, - "nativeSrc": "6051:40:39", - "nodeType": "YulFunctionCall", - "src": "6051:40:39" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "6037:10:39", - "nodeType": "YulTypedName", - "src": "6037:10:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "6202:22:39", - "nodeType": "YulBlock", - "src": "6202:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "6204:16:39", - "nodeType": "YulIdentifier", - "src": "6204:16:39" - }, - "nativeSrc": "6204:18:39", - "nodeType": "YulFunctionCall", - "src": "6204:18:39" - }, - "nativeSrc": "6204:18:39", - "nodeType": "YulExpressionStatement", - "src": "6204:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "6145:10:39", - "nodeType": "YulIdentifier", - "src": "6145:10:39" - }, - { - "kind": "number", - "nativeSrc": "6157:18:39", - "nodeType": "YulLiteral", - "src": "6157:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "6142:2:39", - "nodeType": "YulIdentifier", - "src": "6142:2:39" - }, - "nativeSrc": "6142:34:39", - "nodeType": "YulFunctionCall", - "src": "6142:34:39" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "6181:10:39", - "nodeType": "YulIdentifier", - "src": "6181:10:39" - }, - { - "name": "memPtr", - "nativeSrc": "6193:6:39", - "nodeType": "YulIdentifier", - "src": "6193:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "6178:2:39", - "nodeType": "YulIdentifier", - "src": "6178:2:39" - }, - "nativeSrc": "6178:22:39", - "nodeType": "YulFunctionCall", - "src": "6178:22:39" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "6139:2:39", - "nodeType": "YulIdentifier", - "src": "6139:2:39" - }, - "nativeSrc": "6139:62:39", - "nodeType": "YulFunctionCall", - "src": "6139:62:39" - }, - "nativeSrc": "6136:88:39", - "nodeType": "YulIf", - "src": "6136:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6240:2:39", - "nodeType": "YulLiteral", - "src": "6240:2:39", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "6244:10:39", - "nodeType": "YulIdentifier", - "src": "6244:10:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6233:6:39", - "nodeType": "YulIdentifier", - "src": "6233:6:39" - }, - "nativeSrc": "6233:22:39", - "nodeType": "YulFunctionCall", - "src": "6233:22:39" - }, - "nativeSrc": "6233:22:39", - "nodeType": "YulExpressionStatement", - "src": "6233:22:39" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "5980:281:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "6009:6:39", - "nodeType": "YulTypedName", - "src": "6009:6:39", - "type": "" - }, - { - "name": "size", - "nativeSrc": "6017:4:39", - "nodeType": "YulTypedName", - "src": "6017:4:39", - "type": "" - } - ], - "src": "5980:281:39" - }, - { - "body": { - "nativeSrc": "6308:88:39", - "nodeType": "YulBlock", - "src": "6308:88:39", - "statements": [ - { - "nativeSrc": "6318:30:39", - "nodeType": "YulAssignment", - "src": "6318:30:39", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "6328:18:39", - "nodeType": "YulIdentifier", - "src": "6328:18:39" - }, - "nativeSrc": "6328:20:39", - "nodeType": "YulFunctionCall", - "src": "6328:20:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "6318:6:39", - "nodeType": "YulIdentifier", - "src": "6318:6:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "6377:6:39", - "nodeType": "YulIdentifier", - "src": "6377:6:39" - }, - { - "name": "size", - "nativeSrc": "6385:4:39", - "nodeType": "YulIdentifier", - "src": "6385:4:39" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "6357:19:39", - "nodeType": "YulIdentifier", - "src": "6357:19:39" - }, - "nativeSrc": "6357:33:39", - "nodeType": "YulFunctionCall", - "src": "6357:33:39" - }, - "nativeSrc": "6357:33:39", - "nodeType": "YulExpressionStatement", - "src": "6357:33:39" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "6267:129:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "6292:4:39", - "nodeType": "YulTypedName", - "src": "6292:4:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "6301:6:39", - "nodeType": "YulTypedName", - "src": "6301:6:39", - "type": "" - } - ], - "src": "6267:129:39" - }, - { - "body": { - "nativeSrc": "6484:229:39", - "nodeType": "YulBlock", - "src": "6484:229:39", - "statements": [ - { - "body": { - "nativeSrc": "6589:22:39", - "nodeType": "YulBlock", - "src": "6589:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "6591:16:39", - "nodeType": "YulIdentifier", - "src": "6591:16:39" - }, - "nativeSrc": "6591:18:39", - "nodeType": "YulFunctionCall", - "src": "6591:18:39" - }, - "nativeSrc": "6591:18:39", - "nodeType": "YulExpressionStatement", - "src": "6591:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "6561:6:39", - "nodeType": "YulIdentifier", - "src": "6561:6:39" - }, - { - "kind": "number", - "nativeSrc": "6569:18:39", - "nodeType": "YulLiteral", - "src": "6569:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "6558:2:39", - "nodeType": "YulIdentifier", - "src": "6558:2:39" - }, - "nativeSrc": "6558:30:39", - "nodeType": "YulFunctionCall", - "src": "6558:30:39" - }, - "nativeSrc": "6555:56:39", - "nodeType": "YulIf", - "src": "6555:56:39" - }, - { - "nativeSrc": "6621:25:39", - "nodeType": "YulAssignment", - "src": "6621:25:39", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "6633:6:39", - "nodeType": "YulIdentifier", - "src": "6633:6:39" - }, - { - "kind": "number", - "nativeSrc": "6641:4:39", - "nodeType": "YulLiteral", - "src": "6641:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "6629:3:39", - "nodeType": "YulIdentifier", - "src": "6629:3:39" - }, - "nativeSrc": "6629:17:39", - "nodeType": "YulFunctionCall", - "src": "6629:17:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "6621:4:39", - "nodeType": "YulIdentifier", - "src": "6621:4:39" - } - ] - }, - { - "nativeSrc": "6683:23:39", - "nodeType": "YulAssignment", - "src": "6683:23:39", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "6695:4:39", - "nodeType": "YulIdentifier", - "src": "6695:4:39" - }, - { - "kind": "number", - "nativeSrc": "6701:4:39", - "nodeType": "YulLiteral", - "src": "6701:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6691:3:39", - "nodeType": "YulIdentifier", - "src": "6691:3:39" - }, - "nativeSrc": "6691:15:39", - "nodeType": "YulFunctionCall", - "src": "6691:15:39" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "6683:4:39", - "nodeType": "YulIdentifier", - "src": "6683:4:39" - } - ] - } - ] - }, - "name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "6402:311:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "6468:6:39", - "nodeType": "YulTypedName", - "src": "6468:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "6479:4:39", - "nodeType": "YulTypedName", - "src": "6479:4:39", - "type": "" - } - ], - "src": "6402:311:39" - }, - { - "body": { - "nativeSrc": "6808:28:39", - "nodeType": "YulBlock", - "src": "6808:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6825:1:39", - "nodeType": "YulLiteral", - "src": "6825:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6828:1:39", - "nodeType": "YulLiteral", - "src": "6828:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6818:6:39", - "nodeType": "YulIdentifier", - "src": "6818:6:39" - }, - "nativeSrc": "6818:12:39", - "nodeType": "YulFunctionCall", - "src": "6818:12:39" - }, - "nativeSrc": "6818:12:39", - "nodeType": "YulExpressionStatement", - "src": "6818:12:39" - } - ] - }, - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "6719:117:39", - "nodeType": "YulFunctionDefinition", - "src": "6719:117:39" - }, - { - "body": { - "nativeSrc": "6961:608:39", - "nodeType": "YulBlock", - "src": "6961:608:39", - "statements": [ - { - "nativeSrc": "6971:90:39", - "nodeType": "YulAssignment", - "src": "6971:90:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "7053:6:39", - "nodeType": "YulIdentifier", - "src": "7053:6:39" - } - ], - "functionName": { - "name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "6996:56:39", - "nodeType": "YulIdentifier", - "src": "6996:56:39" - }, - "nativeSrc": "6996:64:39", - "nodeType": "YulFunctionCall", - "src": "6996:64:39" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "6980:15:39", - "nodeType": "YulIdentifier", - "src": "6980:15:39" - }, - "nativeSrc": "6980:81:39", - "nodeType": "YulFunctionCall", - "src": "6980:81:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "6971:5:39", - "nodeType": "YulIdentifier", - "src": "6971:5:39" - } - ] - }, - { - "nativeSrc": "7070:16:39", - "nodeType": "YulVariableDeclaration", - "src": "7070:16:39", - "value": { - "name": "array", - "nativeSrc": "7081:5:39", - "nodeType": "YulIdentifier", - "src": "7081:5:39" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "7074:3:39", - "nodeType": "YulTypedName", - "src": "7074:3:39", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "7103:5:39", - "nodeType": "YulIdentifier", - "src": "7103:5:39" - }, - { - "name": "length", - "nativeSrc": "7110:6:39", - "nodeType": "YulIdentifier", - "src": "7110:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7096:6:39", - "nodeType": "YulIdentifier", - "src": "7096:6:39" - }, - "nativeSrc": "7096:21:39", - "nodeType": "YulFunctionCall", - "src": "7096:21:39" - }, - "nativeSrc": "7096:21:39", - "nodeType": "YulExpressionStatement", - "src": "7096:21:39" - }, - { - "nativeSrc": "7126:23:39", - "nodeType": "YulAssignment", - "src": "7126:23:39", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "7137:5:39", - "nodeType": "YulIdentifier", - "src": "7137:5:39" - }, - { - "kind": "number", - "nativeSrc": "7144:4:39", - "nodeType": "YulLiteral", - "src": "7144:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7133:3:39", - "nodeType": "YulIdentifier", - "src": "7133:3:39" - }, - "nativeSrc": "7133:16:39", - "nodeType": "YulFunctionCall", - "src": "7133:16:39" - }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "7126:3:39", - "nodeType": "YulIdentifier", - "src": "7126:3:39" - } - ] - }, - { - "nativeSrc": "7159:44:39", - "nodeType": "YulVariableDeclaration", - "src": "7159:44:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7177:6:39", - "nodeType": "YulIdentifier", - "src": "7177:6:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "7189:6:39", - "nodeType": "YulIdentifier", - "src": "7189:6:39" - }, - { - "kind": "number", - "nativeSrc": "7197:4:39", - "nodeType": "YulLiteral", - "src": "7197:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "7185:3:39", - "nodeType": "YulIdentifier", - "src": "7185:3:39" - }, - "nativeSrc": "7185:17:39", - "nodeType": "YulFunctionCall", - "src": "7185:17:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7173:3:39", - "nodeType": "YulIdentifier", - "src": "7173:3:39" - }, - "nativeSrc": "7173:30:39", - "nodeType": "YulFunctionCall", - "src": "7173:30:39" - }, - "variables": [ - { - "name": "srcEnd", - "nativeSrc": "7163:6:39", - "nodeType": "YulTypedName", - "src": "7163:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "7231:103:39", - "nodeType": "YulBlock", - "src": "7231:103:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "7245:77:39", - "nodeType": "YulIdentifier", - "src": "7245:77:39" - }, - "nativeSrc": "7245:79:39", - "nodeType": "YulFunctionCall", - "src": "7245:79:39" - }, - "nativeSrc": "7245:79:39", - "nodeType": "YulExpressionStatement", - "src": "7245:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "srcEnd", - "nativeSrc": "7218:6:39", - "nodeType": "YulIdentifier", - "src": "7218:6:39" - }, - { - "name": "end", - "nativeSrc": "7226:3:39", - "nodeType": "YulIdentifier", - "src": "7226:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "7215:2:39", - "nodeType": "YulIdentifier", - "src": "7215:2:39" - }, - "nativeSrc": "7215:15:39", - "nodeType": "YulFunctionCall", - "src": "7215:15:39" - }, - "nativeSrc": "7212:122:39", - "nodeType": "YulIf", - "src": "7212:122:39" - }, - { - "body": { - "nativeSrc": "7419:144:39", - "nodeType": "YulBlock", - "src": "7419:144:39", - "statements": [ - { - "nativeSrc": "7434:21:39", - "nodeType": "YulVariableDeclaration", - "src": "7434:21:39", - "value": { - "name": "src", - "nativeSrc": "7452:3:39", - "nodeType": "YulIdentifier", - "src": "7452:3:39" - }, - "variables": [ - { - "name": "elementPos", - "nativeSrc": "7438:10:39", - "nodeType": "YulTypedName", - "src": "7438:10:39", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "7476:3:39", - "nodeType": "YulIdentifier", - "src": "7476:3:39" - }, - { - "arguments": [ - { - "name": "elementPos", - "nativeSrc": "7502:10:39", - "nodeType": "YulIdentifier", - "src": "7502:10:39" - }, - { - "name": "end", - "nativeSrc": "7514:3:39", - "nodeType": "YulIdentifier", - "src": "7514:3:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "7481:20:39", - "nodeType": "YulIdentifier", - "src": "7481:20:39" - }, - "nativeSrc": "7481:37:39", - "nodeType": "YulFunctionCall", - "src": "7481:37:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7469:6:39", - "nodeType": "YulIdentifier", - "src": "7469:6:39" - }, - "nativeSrc": "7469:50:39", - "nodeType": "YulFunctionCall", - "src": "7469:50:39" - }, - "nativeSrc": "7469:50:39", - "nodeType": "YulExpressionStatement", - "src": "7469:50:39" - }, - { - "nativeSrc": "7532:21:39", - "nodeType": "YulAssignment", - "src": "7532:21:39", - "value": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "7543:3:39", - "nodeType": "YulIdentifier", - "src": "7543:3:39" - }, - { - "kind": "number", - "nativeSrc": "7548:4:39", - "nodeType": "YulLiteral", - "src": "7548:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7539:3:39", - "nodeType": "YulIdentifier", - "src": "7539:3:39" - }, - "nativeSrc": "7539:14:39", - "nodeType": "YulFunctionCall", - "src": "7539:14:39" - }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "7532:3:39", - "nodeType": "YulIdentifier", - "src": "7532:3:39" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "src", - "nativeSrc": "7372:3:39", - "nodeType": "YulIdentifier", - "src": "7372:3:39" - }, - { - "name": "srcEnd", - "nativeSrc": "7377:6:39", - "nodeType": "YulIdentifier", - "src": "7377:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "7369:2:39", - "nodeType": "YulIdentifier", - "src": "7369:2:39" - }, - "nativeSrc": "7369:15:39", - "nodeType": "YulFunctionCall", - "src": "7369:15:39" - }, - "nativeSrc": "7343:220:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "7385:25:39", - "nodeType": "YulBlock", - "src": "7385:25:39", - "statements": [ - { - "nativeSrc": "7387:21:39", - "nodeType": "YulAssignment", - "src": "7387:21:39", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "7398:3:39", - "nodeType": "YulIdentifier", - "src": "7398:3:39" - }, - { - "kind": "number", - "nativeSrc": "7403:4:39", - "nodeType": "YulLiteral", - "src": "7403:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7394:3:39", - "nodeType": "YulIdentifier", - "src": "7394:3:39" - }, - "nativeSrc": "7394:14:39", - "nodeType": "YulFunctionCall", - "src": "7394:14:39" - }, - "variableNames": [ - { - "name": "src", - "nativeSrc": "7387:3:39", - "nodeType": "YulIdentifier", - "src": "7387:3:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "7347:21:39", - "nodeType": "YulBlock", - "src": "7347:21:39", - "statements": [ - { - "nativeSrc": "7349:17:39", - "nodeType": "YulVariableDeclaration", - "src": "7349:17:39", - "value": { - "name": "offset", - "nativeSrc": "7360:6:39", - "nodeType": "YulIdentifier", - "src": "7360:6:39" - }, - "variables": [ - { - "name": "src", - "nativeSrc": "7353:3:39", - "nodeType": "YulTypedName", - "src": "7353:3:39", - "type": "" - } - ] - } - ] - }, - "src": "7343:220:39" - } - ] - }, - "name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "6859:710:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "6931:6:39", - "nodeType": "YulTypedName", - "src": "6931:6:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "6939:6:39", - "nodeType": "YulTypedName", - "src": "6939:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "6947:3:39", - "nodeType": "YulTypedName", - "src": "6947:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "6955:5:39", - "nodeType": "YulTypedName", - "src": "6955:5:39", - "type": "" - } - ], - "src": "6859:710:39" - }, - { - "body": { - "nativeSrc": "7669:293:39", - "nodeType": "YulBlock", - "src": "7669:293:39", - "statements": [ - { - "body": { - "nativeSrc": "7718:83:39", - "nodeType": "YulBlock", - "src": "7718:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "7720:77:39", - "nodeType": "YulIdentifier", - "src": "7720:77:39" - }, - "nativeSrc": "7720:79:39", - "nodeType": "YulFunctionCall", - "src": "7720:79:39" - }, - "nativeSrc": "7720:79:39", - "nodeType": "YulExpressionStatement", - "src": "7720:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7697:6:39", - "nodeType": "YulIdentifier", - "src": "7697:6:39" - }, - { - "kind": "number", - "nativeSrc": "7705:4:39", - "nodeType": "YulLiteral", - "src": "7705:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7693:3:39", - "nodeType": "YulIdentifier", - "src": "7693:3:39" - }, - "nativeSrc": "7693:17:39", - "nodeType": "YulFunctionCall", - "src": "7693:17:39" - }, - { - "name": "end", - "nativeSrc": "7712:3:39", - "nodeType": "YulIdentifier", - "src": "7712:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "7689:3:39", - "nodeType": "YulIdentifier", - "src": "7689:3:39" - }, - "nativeSrc": "7689:27:39", - "nodeType": "YulFunctionCall", - "src": "7689:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "7682:6:39", - "nodeType": "YulIdentifier", - "src": "7682:6:39" - }, - "nativeSrc": "7682:35:39", - "nodeType": "YulFunctionCall", - "src": "7682:35:39" - }, - "nativeSrc": "7679:122:39", - "nodeType": "YulIf", - "src": "7679:122:39" - }, - { - "nativeSrc": "7810:34:39", - "nodeType": "YulVariableDeclaration", - "src": "7810:34:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7837:6:39", - "nodeType": "YulIdentifier", - "src": "7837:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7824:12:39", - "nodeType": "YulIdentifier", - "src": "7824:12:39" - }, - "nativeSrc": "7824:20:39", - "nodeType": "YulFunctionCall", - "src": "7824:20:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "7814:6:39", - "nodeType": "YulTypedName", - "src": "7814:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "7853:103:39", - "nodeType": "YulAssignment", - "src": "7853:103:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7929:6:39", - "nodeType": "YulIdentifier", - "src": "7929:6:39" - }, - { - "kind": "number", - "nativeSrc": "7937:4:39", - "nodeType": "YulLiteral", - "src": "7937:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7925:3:39", - "nodeType": "YulIdentifier", - "src": "7925:3:39" - }, - "nativeSrc": "7925:17:39", - "nodeType": "YulFunctionCall", - "src": "7925:17:39" - }, - { - "name": "length", - "nativeSrc": "7944:6:39", - "nodeType": "YulIdentifier", - "src": "7944:6:39" - }, - { - "name": "end", - "nativeSrc": "7952:3:39", - "nodeType": "YulIdentifier", - "src": "7952:3:39" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "7862:62:39", - "nodeType": "YulIdentifier", - "src": "7862:62:39" - }, - "nativeSrc": "7862:94:39", - "nodeType": "YulFunctionCall", - "src": "7862:94:39" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "7853:5:39", - "nodeType": "YulIdentifier", - "src": "7853:5:39" - } - ] - } - ] - }, - "name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "7592:370:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "7647:6:39", - "nodeType": "YulTypedName", - "src": "7647:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "7655:3:39", - "nodeType": "YulTypedName", - "src": "7655:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "7663:5:39", - "nodeType": "YulTypedName", - "src": "7663:5:39", - "type": "" - } - ], - "src": "7592:370:39" - }, - { - "body": { - "nativeSrc": "8093:704:39", - "nodeType": "YulBlock", - "src": "8093:704:39", - "statements": [ - { - "body": { - "nativeSrc": "8139:83:39", - "nodeType": "YulBlock", - "src": "8139:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "8141:77:39", - "nodeType": "YulIdentifier", - "src": "8141:77:39" - }, - "nativeSrc": "8141:79:39", - "nodeType": "YulFunctionCall", - "src": "8141:79:39" - }, - "nativeSrc": "8141:79:39", - "nodeType": "YulExpressionStatement", - "src": "8141:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "8114:7:39", - "nodeType": "YulIdentifier", - "src": "8114:7:39" - }, - { - "name": "headStart", - "nativeSrc": "8123:9:39", - "nodeType": "YulIdentifier", - "src": "8123:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "8110:3:39", - "nodeType": "YulIdentifier", - "src": "8110:3:39" - }, - "nativeSrc": "8110:23:39", - "nodeType": "YulFunctionCall", - "src": "8110:23:39" - }, - { - "kind": "number", - "nativeSrc": "8135:2:39", - "nodeType": "YulLiteral", - "src": "8135:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "8106:3:39", - "nodeType": "YulIdentifier", - "src": "8106:3:39" - }, - "nativeSrc": "8106:32:39", - "nodeType": "YulFunctionCall", - "src": "8106:32:39" - }, - "nativeSrc": "8103:119:39", - "nodeType": "YulIf", - "src": "8103:119:39" - }, - { - "nativeSrc": "8232:302:39", - "nodeType": "YulBlock", - "src": "8232:302:39", - "statements": [ - { - "nativeSrc": "8247:45:39", - "nodeType": "YulVariableDeclaration", - "src": "8247:45:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8278:9:39", - "nodeType": "YulIdentifier", - "src": "8278:9:39" - }, - { - "kind": "number", - "nativeSrc": "8289:1:39", - "nodeType": "YulLiteral", - "src": "8289:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8274:3:39", - "nodeType": "YulIdentifier", - "src": "8274:3:39" - }, - "nativeSrc": "8274:17:39", - "nodeType": "YulFunctionCall", - "src": "8274:17:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "8261:12:39", - "nodeType": "YulIdentifier", - "src": "8261:12:39" - }, - "nativeSrc": "8261:31:39", - "nodeType": "YulFunctionCall", - "src": "8261:31:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8251:6:39", - "nodeType": "YulTypedName", - "src": "8251:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "8339:83:39", - "nodeType": "YulBlock", - "src": "8339:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "8341:77:39", - "nodeType": "YulIdentifier", - "src": "8341:77:39" - }, - "nativeSrc": "8341:79:39", - "nodeType": "YulFunctionCall", - "src": "8341:79:39" - }, - "nativeSrc": "8341:79:39", - "nodeType": "YulExpressionStatement", - "src": "8341:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "8311:6:39", - "nodeType": "YulIdentifier", - "src": "8311:6:39" - }, - { - "kind": "number", - "nativeSrc": "8319:18:39", - "nodeType": "YulLiteral", - "src": "8319:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "8308:2:39", - "nodeType": "YulIdentifier", - "src": "8308:2:39" - }, - "nativeSrc": "8308:30:39", - "nodeType": "YulFunctionCall", - "src": "8308:30:39" - }, - "nativeSrc": "8305:117:39", - "nodeType": "YulIf", - "src": "8305:117:39" - }, - { - "nativeSrc": "8436:88:39", - "nodeType": "YulAssignment", - "src": "8436:88:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8496:9:39", - "nodeType": "YulIdentifier", - "src": "8496:9:39" - }, - { - "name": "offset", - "nativeSrc": "8507:6:39", - "nodeType": "YulIdentifier", - "src": "8507:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8492:3:39", - "nodeType": "YulIdentifier", - "src": "8492:3:39" - }, - "nativeSrc": "8492:22:39", - "nodeType": "YulFunctionCall", - "src": "8492:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8516:7:39", - "nodeType": "YulIdentifier", - "src": "8516:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr", - "nativeSrc": "8446:45:39", - "nodeType": "YulIdentifier", - "src": "8446:45:39" - }, - "nativeSrc": "8446:78:39", - "nodeType": "YulFunctionCall", - "src": "8446:78:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "8436:6:39", - "nodeType": "YulIdentifier", - "src": "8436:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "8544:118:39", - "nodeType": "YulBlock", - "src": "8544:118:39", - "statements": [ - { - "nativeSrc": "8559:16:39", - "nodeType": "YulVariableDeclaration", - "src": "8559:16:39", - "value": { - "kind": "number", - "nativeSrc": "8573:2:39", - "nodeType": "YulLiteral", - "src": "8573:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8563:6:39", - "nodeType": "YulTypedName", - "src": "8563:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8589:63:39", - "nodeType": "YulAssignment", - "src": "8589:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8624:9:39", - "nodeType": "YulIdentifier", - "src": "8624:9:39" - }, - { - "name": "offset", - "nativeSrc": "8635:6:39", - "nodeType": "YulIdentifier", - "src": "8635:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8620:3:39", - "nodeType": "YulIdentifier", - "src": "8620:3:39" - }, - "nativeSrc": "8620:22:39", - "nodeType": "YulFunctionCall", - "src": "8620:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8644:7:39", - "nodeType": "YulIdentifier", - "src": "8644:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "8599:20:39", - "nodeType": "YulIdentifier", - "src": "8599:20:39" - }, - "nativeSrc": "8599:53:39", - "nodeType": "YulFunctionCall", - "src": "8599:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "8589:6:39", - "nodeType": "YulIdentifier", - "src": "8589:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "8672:118:39", - "nodeType": "YulBlock", - "src": "8672:118:39", - "statements": [ - { - "nativeSrc": "8687:16:39", - "nodeType": "YulVariableDeclaration", - "src": "8687:16:39", - "value": { - "kind": "number", - "nativeSrc": "8701:2:39", - "nodeType": "YulLiteral", - "src": "8701:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8691:6:39", - "nodeType": "YulTypedName", - "src": "8691:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8717:63:39", - "nodeType": "YulAssignment", - "src": "8717:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8752:9:39", - "nodeType": "YulIdentifier", - "src": "8752:9:39" - }, - { - "name": "offset", - "nativeSrc": "8763:6:39", - "nodeType": "YulIdentifier", - "src": "8763:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8748:3:39", - "nodeType": "YulIdentifier", - "src": "8748:3:39" - }, - "nativeSrc": "8748:22:39", - "nodeType": "YulFunctionCall", - "src": "8748:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8772:7:39", - "nodeType": "YulIdentifier", - "src": "8772:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "8727:20:39", - "nodeType": "YulIdentifier", - "src": "8727:20:39" - }, - "nativeSrc": "8727:53:39", - "nodeType": "YulFunctionCall", - "src": "8727:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "8717:6:39", - "nodeType": "YulIdentifier", - "src": "8717:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptrt_addresst_uint256", - "nativeSrc": "7968:829:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8047:9:39", - "nodeType": "YulTypedName", - "src": "8047:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "8058:7:39", - "nodeType": "YulTypedName", - "src": "8058:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "8070:6:39", - "nodeType": "YulTypedName", - "src": "8070:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8078:6:39", - "nodeType": "YulTypedName", - "src": "8078:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "8086:6:39", - "nodeType": "YulTypedName", - "src": "8086:6:39", - "type": "" - } - ], - "src": "7968:829:39" - }, - { - "body": { - "nativeSrc": "8877:40:39", - "nodeType": "YulBlock", - "src": "8877:40:39", - "statements": [ - { - "nativeSrc": "8888:22:39", - "nodeType": "YulAssignment", - "src": "8888:22:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8904:5:39", - "nodeType": "YulIdentifier", - "src": "8904:5:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "8898:5:39", - "nodeType": "YulIdentifier", - "src": "8898:5:39" - }, - "nativeSrc": "8898:12:39", - "nodeType": "YulFunctionCall", - "src": "8898:12:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "8888:6:39", - "nodeType": "YulIdentifier", - "src": "8888:6:39" - } - ] - } - ] - }, - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "8803:114:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8860:5:39", - "nodeType": "YulTypedName", - "src": "8860:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "8870:6:39", - "nodeType": "YulTypedName", - "src": "8870:6:39", - "type": "" - } - ], - "src": "8803:114:39" - }, - { - "body": { - "nativeSrc": "9034:73:39", - "nodeType": "YulBlock", - "src": "9034:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9051:3:39", - "nodeType": "YulIdentifier", - "src": "9051:3:39" - }, - { - "name": "length", - "nativeSrc": "9056:6:39", - "nodeType": "YulIdentifier", - "src": "9056:6:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9044:6:39", - "nodeType": "YulIdentifier", - "src": "9044:6:39" - }, - "nativeSrc": "9044:19:39", - "nodeType": "YulFunctionCall", - "src": "9044:19:39" - }, - "nativeSrc": "9044:19:39", - "nodeType": "YulExpressionStatement", - "src": "9044:19:39" - }, - { - "nativeSrc": "9072:29:39", - "nodeType": "YulAssignment", - "src": "9072:29:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9091:3:39", - "nodeType": "YulIdentifier", - "src": "9091:3:39" - }, - { - "kind": "number", - "nativeSrc": "9096:4:39", - "nodeType": "YulLiteral", - "src": "9096:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9087:3:39", - "nodeType": "YulIdentifier", - "src": "9087:3:39" - }, - "nativeSrc": "9087:14:39", - "nodeType": "YulFunctionCall", - "src": "9087:14:39" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "9072:11:39", - "nodeType": "YulIdentifier", - "src": "9072:11:39" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "8923:184:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "9006:3:39", - "nodeType": "YulTypedName", - "src": "9006:3:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "9011:6:39", - "nodeType": "YulTypedName", - "src": "9011:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "9022:11:39", - "nodeType": "YulTypedName", - "src": "9022:11:39", - "type": "" - } - ], - "src": "8923:184:39" - }, - { - "body": { - "nativeSrc": "9185:60:39", - "nodeType": "YulBlock", - "src": "9185:60:39", - "statements": [ - { - "nativeSrc": "9195:11:39", - "nodeType": "YulAssignment", - "src": "9195:11:39", - "value": { - "name": "ptr", - "nativeSrc": "9203:3:39", - "nodeType": "YulIdentifier", - "src": "9203:3:39" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "9195:4:39", - "nodeType": "YulIdentifier", - "src": "9195:4:39" - } - ] - }, - { - "nativeSrc": "9216:22:39", - "nodeType": "YulAssignment", - "src": "9216:22:39", - "value": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "9228:3:39", - "nodeType": "YulIdentifier", - "src": "9228:3:39" - }, - { - "kind": "number", - "nativeSrc": "9233:4:39", - "nodeType": "YulLiteral", - "src": "9233:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9224:3:39", - "nodeType": "YulIdentifier", - "src": "9224:3:39" - }, - "nativeSrc": "9224:14:39", - "nodeType": "YulFunctionCall", - "src": "9224:14:39" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "9216:4:39", - "nodeType": "YulIdentifier", - "src": "9216:4:39" - } - ] - } - ] - }, - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9113:132:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nativeSrc": "9172:3:39", - "nodeType": "YulTypedName", - "src": "9172:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nativeSrc": "9180:4:39", - "nodeType": "YulTypedName", - "src": "9180:4:39", - "type": "" - } - ], - "src": "9113:132:39" - }, - { - "body": { - "nativeSrc": "9306:53:39", - "nodeType": "YulBlock", - "src": "9306:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9323:3:39", - "nodeType": "YulIdentifier", - "src": "9323:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "9346:5:39", - "nodeType": "YulIdentifier", - "src": "9346:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "9328:17:39", - "nodeType": "YulIdentifier", - "src": "9328:17:39" - }, - "nativeSrc": "9328:24:39", - "nodeType": "YulFunctionCall", - "src": "9328:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9316:6:39", - "nodeType": "YulIdentifier", - "src": "9316:6:39" - }, - "nativeSrc": "9316:37:39", - "nodeType": "YulFunctionCall", - "src": "9316:37:39" - }, - "nativeSrc": "9316:37:39", - "nodeType": "YulExpressionStatement", - "src": "9316:37:39" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256", - "nativeSrc": "9251:108:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "9294:5:39", - "nodeType": "YulTypedName", - "src": "9294:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "9301:3:39", - "nodeType": "YulTypedName", - "src": "9301:3:39", - "type": "" - } - ], - "src": "9251:108:39" - }, - { - "body": { - "nativeSrc": "9445:99:39", - "nodeType": "YulBlock", - "src": "9445:99:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "9489:6:39", - "nodeType": "YulIdentifier", - "src": "9489:6:39" - }, - { - "name": "pos", - "nativeSrc": "9497:3:39", - "nodeType": "YulIdentifier", - "src": "9497:3:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256", - "nativeSrc": "9455:33:39", - "nodeType": "YulIdentifier", - "src": "9455:33:39" - }, - "nativeSrc": "9455:46:39", - "nodeType": "YulFunctionCall", - "src": "9455:46:39" - }, - "nativeSrc": "9455:46:39", - "nodeType": "YulExpressionStatement", - "src": "9455:46:39" - }, - { - "nativeSrc": "9510:28:39", - "nodeType": "YulAssignment", - "src": "9510:28:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9528:3:39", - "nodeType": "YulIdentifier", - "src": "9528:3:39" - }, - { - "kind": "number", - "nativeSrc": "9533:4:39", - "nodeType": "YulLiteral", - "src": "9533:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9524:3:39", - "nodeType": "YulIdentifier", - "src": "9524:3:39" - }, - "nativeSrc": "9524:14:39", - "nodeType": "YulFunctionCall", - "src": "9524:14:39" - }, - "variableNames": [ - { - "name": "updatedPos", - "nativeSrc": "9510:10:39", - "nodeType": "YulIdentifier", - "src": "9510:10:39" - } - ] - } - ] - }, - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nativeSrc": "9365:179:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value0", - "nativeSrc": "9418:6:39", - "nodeType": "YulTypedName", - "src": "9418:6:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "9426:3:39", - "nodeType": "YulTypedName", - "src": "9426:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updatedPos", - "nativeSrc": "9434:10:39", - "nodeType": "YulTypedName", - "src": "9434:10:39", - "type": "" - } - ], - "src": "9365:179:39" - }, - { - "body": { - "nativeSrc": "9625:38:39", - "nodeType": "YulBlock", - "src": "9625:38:39", - "statements": [ - { - "nativeSrc": "9635:22:39", - "nodeType": "YulAssignment", - "src": "9635:22:39", - "value": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "9647:3:39", - "nodeType": "YulIdentifier", - "src": "9647:3:39" - }, - { - "kind": "number", - "nativeSrc": "9652:4:39", - "nodeType": "YulLiteral", - "src": "9652:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9643:3:39", - "nodeType": "YulIdentifier", - "src": "9643:3:39" - }, - "nativeSrc": "9643:14:39", - "nodeType": "YulFunctionCall", - "src": "9643:14:39" - }, - "variableNames": [ - { - "name": "next", - "nativeSrc": "9635:4:39", - "nodeType": "YulIdentifier", - "src": "9635:4:39" - } - ] - } - ] - }, - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9550:113:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nativeSrc": "9612:3:39", - "nodeType": "YulTypedName", - "src": "9612:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "next", - "nativeSrc": "9620:4:39", - "nodeType": "YulTypedName", - "src": "9620:4:39", - "type": "" - } - ], - "src": "9550:113:39" - }, - { - "body": { - "nativeSrc": "9823:608:39", - "nodeType": "YulBlock", - "src": "9823:608:39", - "statements": [ - { - "nativeSrc": "9833:68:39", - "nodeType": "YulVariableDeclaration", - "src": "9833:68:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "9895:5:39", - "nodeType": "YulIdentifier", - "src": "9895:5:39" - } - ], - "functionName": { - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9847:47:39", - "nodeType": "YulIdentifier", - "src": "9847:47:39" - }, - "nativeSrc": "9847:54:39", - "nodeType": "YulFunctionCall", - "src": "9847:54:39" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "9837:6:39", - "nodeType": "YulTypedName", - "src": "9837:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "9910:93:39", - "nodeType": "YulAssignment", - "src": "9910:93:39", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "9991:3:39", - "nodeType": "YulIdentifier", - "src": "9991:3:39" - }, - { - "name": "length", - "nativeSrc": "9996:6:39", - "nodeType": "YulIdentifier", - "src": "9996:6:39" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "9917:73:39", - "nodeType": "YulIdentifier", - "src": "9917:73:39" - }, - "nativeSrc": "9917:86:39", - "nodeType": "YulFunctionCall", - "src": "9917:86:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "9910:3:39", - "nodeType": "YulIdentifier", - "src": "9910:3:39" - } - ] - }, - { - "nativeSrc": "10012:71:39", - "nodeType": "YulVariableDeclaration", - "src": "10012:71:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "10077:5:39", - "nodeType": "YulIdentifier", - "src": "10077:5:39" - } - ], - "functionName": { - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "10027:49:39", - "nodeType": "YulIdentifier", - "src": "10027:49:39" - }, - "nativeSrc": "10027:56:39", - "nodeType": "YulFunctionCall", - "src": "10027:56:39" - }, - "variables": [ - { - "name": "baseRef", - "nativeSrc": "10016:7:39", - "nodeType": "YulTypedName", - "src": "10016:7:39", - "type": "" - } - ] - }, - { - "nativeSrc": "10092:21:39", - "nodeType": "YulVariableDeclaration", - "src": "10092:21:39", - "value": { - "name": "baseRef", - "nativeSrc": "10106:7:39", - "nodeType": "YulIdentifier", - "src": "10106:7:39" - }, - "variables": [ - { - "name": "srcPtr", - "nativeSrc": "10096:6:39", - "nodeType": "YulTypedName", - "src": "10096:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "10182:224:39", - "nodeType": "YulBlock", - "src": "10182:224:39", - "statements": [ - { - "nativeSrc": "10196:34:39", - "nodeType": "YulVariableDeclaration", - "src": "10196:34:39", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "10223:6:39", - "nodeType": "YulIdentifier", - "src": "10223:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "10217:5:39", - "nodeType": "YulIdentifier", - "src": "10217:5:39" - }, - "nativeSrc": "10217:13:39", - "nodeType": "YulFunctionCall", - "src": "10217:13:39" - }, - "variables": [ - { - "name": "elementValue0", - "nativeSrc": "10200:13:39", - "nodeType": "YulTypedName", - "src": "10200:13:39", - "type": "" - } - ] - }, - { - "nativeSrc": "10243:70:39", - "nodeType": "YulAssignment", - "src": "10243:70:39", - "value": { - "arguments": [ - { - "name": "elementValue0", - "nativeSrc": "10294:13:39", - "nodeType": "YulIdentifier", - "src": "10294:13:39" - }, - { - "name": "pos", - "nativeSrc": "10309:3:39", - "nodeType": "YulIdentifier", - "src": "10309:3:39" - } - ], - "functionName": { - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nativeSrc": "10250:43:39", - "nodeType": "YulIdentifier", - "src": "10250:43:39" - }, - "nativeSrc": "10250:63:39", - "nodeType": "YulFunctionCall", - "src": "10250:63:39" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "10243:3:39", - "nodeType": "YulIdentifier", - "src": "10243:3:39" - } - ] - }, - { - "nativeSrc": "10326:70:39", - "nodeType": "YulAssignment", - "src": "10326:70:39", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "10389:6:39", - "nodeType": "YulIdentifier", - "src": "10389:6:39" - } - ], - "functionName": { - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "10336:52:39", - "nodeType": "YulIdentifier", - "src": "10336:52:39" - }, - "nativeSrc": "10336:60:39", - "nodeType": "YulFunctionCall", - "src": "10336:60:39" - }, - "variableNames": [ - { - "name": "srcPtr", - "nativeSrc": "10326:6:39", - "nodeType": "YulIdentifier", - "src": "10326:6:39" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "10144:1:39", - "nodeType": "YulIdentifier", - "src": "10144:1:39" - }, - { - "name": "length", - "nativeSrc": "10147:6:39", - "nodeType": "YulIdentifier", - "src": "10147:6:39" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "10141:2:39", - "nodeType": "YulIdentifier", - "src": "10141:2:39" - }, - "nativeSrc": "10141:13:39", - "nodeType": "YulFunctionCall", - "src": "10141:13:39" - }, - "nativeSrc": "10122:284:39", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "10155:18:39", - "nodeType": "YulBlock", - "src": "10155:18:39", - "statements": [ - { - "nativeSrc": "10157:14:39", - "nodeType": "YulAssignment", - "src": "10157:14:39", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "10166:1:39", - "nodeType": "YulIdentifier", - "src": "10166:1:39" - }, - { - "kind": "number", - "nativeSrc": "10169:1:39", - "nodeType": "YulLiteral", - "src": "10169:1:39", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10162:3:39", - "nodeType": "YulIdentifier", - "src": "10162:3:39" - }, - "nativeSrc": "10162:9:39", - "nodeType": "YulFunctionCall", - "src": "10162:9:39" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "10157:1:39", - "nodeType": "YulIdentifier", - "src": "10157:1:39" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "10126:14:39", - "nodeType": "YulBlock", - "src": "10126:14:39", - "statements": [ - { - "nativeSrc": "10128:10:39", - "nodeType": "YulVariableDeclaration", - "src": "10128:10:39", - "value": { - "kind": "number", - "nativeSrc": "10137:1:39", - "nodeType": "YulLiteral", - "src": "10137:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "10132:1:39", - "nodeType": "YulTypedName", - "src": "10132:1:39", - "type": "" - } - ] - } - ] - }, - "src": "10122:284:39" - }, - { - "nativeSrc": "10415:10:39", - "nodeType": "YulAssignment", - "src": "10415:10:39", - "value": { - "name": "pos", - "nativeSrc": "10422:3:39", - "nodeType": "YulIdentifier", - "src": "10422:3:39" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "10415:3:39", - "nodeType": "YulIdentifier", - "src": "10415:3:39" - } - ] - } - ] - }, - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "9699:732:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "9802:5:39", - "nodeType": "YulTypedName", - "src": "9802:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "9809:3:39", - "nodeType": "YulTypedName", - "src": "9809:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "9818:3:39", - "nodeType": "YulTypedName", - "src": "9818:3:39", - "type": "" - } - ], - "src": "9699:732:39" - }, - { - "body": { - "nativeSrc": "10585:225:39", - "nodeType": "YulBlock", - "src": "10585:225:39", - "statements": [ - { - "nativeSrc": "10595:26:39", - "nodeType": "YulAssignment", - "src": "10595:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10607:9:39", - "nodeType": "YulIdentifier", - "src": "10607:9:39" - }, - { - "kind": "number", - "nativeSrc": "10618:2:39", - "nodeType": "YulLiteral", - "src": "10618:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10603:3:39", - "nodeType": "YulIdentifier", - "src": "10603:3:39" - }, - "nativeSrc": "10603:18:39", - "nodeType": "YulFunctionCall", - "src": "10603:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "10595:4:39", - "nodeType": "YulIdentifier", - "src": "10595:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10642:9:39", - "nodeType": "YulIdentifier", - "src": "10642:9:39" - }, - { - "kind": "number", - "nativeSrc": "10653:1:39", - "nodeType": "YulLiteral", - "src": "10653:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10638:3:39", - "nodeType": "YulIdentifier", - "src": "10638:3:39" - }, - "nativeSrc": "10638:17:39", - "nodeType": "YulFunctionCall", - "src": "10638:17:39" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "10661:4:39", - "nodeType": "YulIdentifier", - "src": "10661:4:39" - }, - { - "name": "headStart", - "nativeSrc": "10667:9:39", - "nodeType": "YulIdentifier", - "src": "10667:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10657:3:39", - "nodeType": "YulIdentifier", - "src": "10657:3:39" - }, - "nativeSrc": "10657:20:39", - "nodeType": "YulFunctionCall", - "src": "10657:20:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10631:6:39", - "nodeType": "YulIdentifier", - "src": "10631:6:39" - }, - "nativeSrc": "10631:47:39", - "nodeType": "YulFunctionCall", - "src": "10631:47:39" - }, - "nativeSrc": "10631:47:39", - "nodeType": "YulExpressionStatement", - "src": "10631:47:39" - }, - { - "nativeSrc": "10687:116:39", - "nodeType": "YulAssignment", - "src": "10687:116:39", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "10789:6:39", - "nodeType": "YulIdentifier", - "src": "10789:6:39" - }, - { - "name": "tail", - "nativeSrc": "10798:4:39", - "nodeType": "YulIdentifier", - "src": "10798:4:39" - } - ], - "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "10695:93:39", - "nodeType": "YulIdentifier", - "src": "10695:93:39" - }, - "nativeSrc": "10695:108:39", - "nodeType": "YulFunctionCall", - "src": "10695:108:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "10687:4:39", - "nodeType": "YulIdentifier", - "src": "10687:4:39" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", - "nativeSrc": "10437:373:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10557:9:39", - "nodeType": "YulTypedName", - "src": "10557:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "10569:6:39", - "nodeType": "YulTypedName", - "src": "10569:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "10580:4:39", - "nodeType": "YulTypedName", - "src": "10580:4:39", - "type": "" - } - ], - "src": "10437:373:39" - }, - { - "body": { - "nativeSrc": "10882:263:39", - "nodeType": "YulBlock", - "src": "10882:263:39", - "statements": [ - { - "body": { - "nativeSrc": "10928:83:39", - "nodeType": "YulBlock", - "src": "10928:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "10930:77:39", - "nodeType": "YulIdentifier", - "src": "10930:77:39" - }, - "nativeSrc": "10930:79:39", - "nodeType": "YulFunctionCall", - "src": "10930:79:39" - }, - "nativeSrc": "10930:79:39", - "nodeType": "YulExpressionStatement", - "src": "10930:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "10903:7:39", - "nodeType": "YulIdentifier", - "src": "10903:7:39" - }, - { - "name": "headStart", - "nativeSrc": "10912:9:39", - "nodeType": "YulIdentifier", - "src": "10912:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10899:3:39", - "nodeType": "YulIdentifier", - "src": "10899:3:39" - }, - "nativeSrc": "10899:23:39", - "nodeType": "YulFunctionCall", - "src": "10899:23:39" - }, - { - "kind": "number", - "nativeSrc": "10924:2:39", - "nodeType": "YulLiteral", - "src": "10924:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "10895:3:39", - "nodeType": "YulIdentifier", - "src": "10895:3:39" - }, - "nativeSrc": "10895:32:39", - "nodeType": "YulFunctionCall", - "src": "10895:32:39" - }, - "nativeSrc": "10892:119:39", - "nodeType": "YulIf", - "src": "10892:119:39" - }, - { - "nativeSrc": "11021:117:39", - "nodeType": "YulBlock", - "src": "11021:117:39", - "statements": [ - { - "nativeSrc": "11036:15:39", - "nodeType": "YulVariableDeclaration", - "src": "11036:15:39", - "value": { - "kind": "number", - "nativeSrc": "11050:1:39", - "nodeType": "YulLiteral", - "src": "11050:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11040:6:39", - "nodeType": "YulTypedName", - "src": "11040:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "11065:63:39", - "nodeType": "YulAssignment", - "src": "11065:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11100:9:39", - "nodeType": "YulIdentifier", - "src": "11100:9:39" - }, - { - "name": "offset", - "nativeSrc": "11111:6:39", - "nodeType": "YulIdentifier", - "src": "11111:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11096:3:39", - "nodeType": "YulIdentifier", - "src": "11096:3:39" - }, - "nativeSrc": "11096:22:39", - "nodeType": "YulFunctionCall", - "src": "11096:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "11120:7:39", - "nodeType": "YulIdentifier", - "src": "11120:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "11075:20:39", - "nodeType": "YulIdentifier", - "src": "11075:20:39" - }, - "nativeSrc": "11075:53:39", - "nodeType": "YulFunctionCall", - "src": "11075:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "11065:6:39", - "nodeType": "YulIdentifier", - "src": "11065:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "10816:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10852:9:39", - "nodeType": "YulTypedName", - "src": "10852:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "10863:7:39", - "nodeType": "YulTypedName", - "src": "10863:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "10875:6:39", - "nodeType": "YulTypedName", - "src": "10875:6:39", - "type": "" - } - ], - "src": "10816:329:39" - }, - { - "body": { - "nativeSrc": "11216:53:39", - "nodeType": "YulBlock", - "src": "11216:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "11233:3:39", - "nodeType": "YulIdentifier", - "src": "11233:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "11256:5:39", - "nodeType": "YulIdentifier", - "src": "11256:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "11238:17:39", - "nodeType": "YulIdentifier", - "src": "11238:17:39" - }, - "nativeSrc": "11238:24:39", - "nodeType": "YulFunctionCall", - "src": "11238:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11226:6:39", - "nodeType": "YulIdentifier", - "src": "11226:6:39" - }, - "nativeSrc": "11226:37:39", - "nodeType": "YulFunctionCall", - "src": "11226:37:39" - }, - "nativeSrc": "11226:37:39", - "nodeType": "YulExpressionStatement", - "src": "11226:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "11151:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "11204:5:39", - "nodeType": "YulTypedName", - "src": "11204:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "11211:3:39", - "nodeType": "YulTypedName", - "src": "11211:3:39", - "type": "" - } - ], - "src": "11151:118:39" - }, - { - "body": { - "nativeSrc": "11373:124:39", - "nodeType": "YulBlock", - "src": "11373:124:39", - "statements": [ - { - "nativeSrc": "11383:26:39", - "nodeType": "YulAssignment", - "src": "11383:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11395:9:39", - "nodeType": "YulIdentifier", - "src": "11395:9:39" - }, - { - "kind": "number", - "nativeSrc": "11406:2:39", - "nodeType": "YulLiteral", - "src": "11406:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11391:3:39", - "nodeType": "YulIdentifier", - "src": "11391:3:39" - }, - "nativeSrc": "11391:18:39", - "nodeType": "YulFunctionCall", - "src": "11391:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "11383:4:39", - "nodeType": "YulIdentifier", - "src": "11383:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "11463:6:39", - "nodeType": "YulIdentifier", - "src": "11463:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11476:9:39", - "nodeType": "YulIdentifier", - "src": "11476:9:39" - }, - { - "kind": "number", - "nativeSrc": "11487:1:39", - "nodeType": "YulLiteral", - "src": "11487:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11472:3:39", - "nodeType": "YulIdentifier", - "src": "11472:3:39" - }, - "nativeSrc": "11472:17:39", - "nodeType": "YulFunctionCall", - "src": "11472:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "11419:43:39", - "nodeType": "YulIdentifier", - "src": "11419:43:39" - }, - "nativeSrc": "11419:71:39", - "nodeType": "YulFunctionCall", - "src": "11419:71:39" - }, - "nativeSrc": "11419:71:39", - "nodeType": "YulExpressionStatement", - "src": "11419:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "11275:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11345:9:39", - "nodeType": "YulTypedName", - "src": "11345:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "11357:6:39", - "nodeType": "YulTypedName", - "src": "11357:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "11368:4:39", - "nodeType": "YulTypedName", - "src": "11368:4:39", - "type": "" - } - ], - "src": "11275:222:39" - }, - { - "body": { - "nativeSrc": "11566:80:39", - "nodeType": "YulBlock", - "src": "11566:80:39", - "statements": [ - { - "nativeSrc": "11576:22:39", - "nodeType": "YulAssignment", - "src": "11576:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "11591:6:39", - "nodeType": "YulIdentifier", - "src": "11591:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "11585:5:39", - "nodeType": "YulIdentifier", - "src": "11585:5:39" - }, - "nativeSrc": "11585:13:39", - "nodeType": "YulFunctionCall", - "src": "11585:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "11576:5:39", - "nodeType": "YulIdentifier", - "src": "11576:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "11634:5:39", - "nodeType": "YulIdentifier", - "src": "11634:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "11607:26:39", - "nodeType": "YulIdentifier", - "src": "11607:26:39" - }, - "nativeSrc": "11607:33:39", - "nodeType": "YulFunctionCall", - "src": "11607:33:39" - }, - "nativeSrc": "11607:33:39", - "nodeType": "YulExpressionStatement", - "src": "11607:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "11503:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "11544:6:39", - "nodeType": "YulTypedName", - "src": "11544:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "11552:3:39", - "nodeType": "YulTypedName", - "src": "11552:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "11560:5:39", - "nodeType": "YulTypedName", - "src": "11560:5:39", - "type": "" - } - ], - "src": "11503:143:39" - }, - { - "body": { - "nativeSrc": "11715:51:39", - "nodeType": "YulBlock", - "src": "11715:51:39", - "statements": [ - { - "nativeSrc": "11725:35:39", - "nodeType": "YulAssignment", - "src": "11725:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "11754:5:39", - "nodeType": "YulIdentifier", - "src": "11754:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "11736:17:39", - "nodeType": "YulIdentifier", - "src": "11736:17:39" - }, - "nativeSrc": "11736:24:39", - "nodeType": "YulFunctionCall", - "src": "11736:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "11725:7:39", - "nodeType": "YulIdentifier", - "src": "11725:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "11652:114:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "11697:5:39", - "nodeType": "YulTypedName", - "src": "11697:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "11707:7:39", - "nodeType": "YulTypedName", - "src": "11707:7:39", - "type": "" - } - ], - "src": "11652:114:39" - }, - { - "body": { - "nativeSrc": "11833:97:39", - "nodeType": "YulBlock", - "src": "11833:97:39", - "statements": [ - { - "body": { - "nativeSrc": "11908:16:39", - "nodeType": "YulBlock", - "src": "11908:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11917:1:39", - "nodeType": "YulLiteral", - "src": "11917:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "11920:1:39", - "nodeType": "YulLiteral", - "src": "11920:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "11910:6:39", - "nodeType": "YulIdentifier", - "src": "11910:6:39" - }, - "nativeSrc": "11910:12:39", - "nodeType": "YulFunctionCall", - "src": "11910:12:39" - }, - "nativeSrc": "11910:12:39", - "nodeType": "YulExpressionStatement", - "src": "11910:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "11856:5:39", - "nodeType": "YulIdentifier", - "src": "11856:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "11899:5:39", - "nodeType": "YulIdentifier", - "src": "11899:5:39" - } - ], - "functionName": { - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "11863:35:39", - "nodeType": "YulIdentifier", - "src": "11863:35:39" - }, - "nativeSrc": "11863:42:39", - "nodeType": "YulFunctionCall", - "src": "11863:42:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "11853:2:39", - "nodeType": "YulIdentifier", - "src": "11853:2:39" - }, - "nativeSrc": "11853:53:39", - "nodeType": "YulFunctionCall", - "src": "11853:53:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "11846:6:39", - "nodeType": "YulIdentifier", - "src": "11846:6:39" - }, - "nativeSrc": "11846:61:39", - "nodeType": "YulFunctionCall", - "src": "11846:61:39" - }, - "nativeSrc": "11843:81:39", - "nodeType": "YulIf", - "src": "11843:81:39" - } - ] - }, - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "11772:158:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "11826:5:39", - "nodeType": "YulTypedName", - "src": "11826:5:39", - "type": "" - } - ], - "src": "11772:158:39" - }, - { - "body": { - "nativeSrc": "12017:98:39", - "nodeType": "YulBlock", - "src": "12017:98:39", - "statements": [ - { - "nativeSrc": "12027:22:39", - "nodeType": "YulAssignment", - "src": "12027:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "12042:6:39", - "nodeType": "YulIdentifier", - "src": "12042:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "12036:5:39", - "nodeType": "YulIdentifier", - "src": "12036:5:39" - }, - "nativeSrc": "12036:13:39", - "nodeType": "YulFunctionCall", - "src": "12036:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "12027:5:39", - "nodeType": "YulIdentifier", - "src": "12027:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "12103:5:39", - "nodeType": "YulIdentifier", - "src": "12103:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "12058:44:39", - "nodeType": "YulIdentifier", - "src": "12058:44:39" - }, - "nativeSrc": "12058:51:39", - "nodeType": "YulFunctionCall", - "src": "12058:51:39" - }, - "nativeSrc": "12058:51:39", - "nodeType": "YulExpressionStatement", - "src": "12058:51:39" - } - ] - }, - "name": "abi_decode_t_contract$_IVerifier_$8101_fromMemory", - "nativeSrc": "11936:179:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "11995:6:39", - "nodeType": "YulTypedName", - "src": "11995:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "12003:3:39", - "nodeType": "YulTypedName", - "src": "12003:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "12011:5:39", - "nodeType": "YulTypedName", - "src": "12011:5:39", - "type": "" - } - ], - "src": "11936:179:39" - }, - { - "body": { - "nativeSrc": "12184:80:39", - "nodeType": "YulBlock", - "src": "12184:80:39", - "statements": [ - { - "nativeSrc": "12194:22:39", - "nodeType": "YulAssignment", - "src": "12194:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "12209:6:39", - "nodeType": "YulIdentifier", - "src": "12209:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "12203:5:39", - "nodeType": "YulIdentifier", - "src": "12203:5:39" - }, - "nativeSrc": "12203:13:39", - "nodeType": "YulFunctionCall", - "src": "12203:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "12194:5:39", - "nodeType": "YulIdentifier", - "src": "12194:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "12252:5:39", - "nodeType": "YulIdentifier", - "src": "12252:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "12225:26:39", - "nodeType": "YulIdentifier", - "src": "12225:26:39" - }, - "nativeSrc": "12225:33:39", - "nodeType": "YulFunctionCall", - "src": "12225:33:39" - }, - "nativeSrc": "12225:33:39", - "nodeType": "YulExpressionStatement", - "src": "12225:33:39" - } - ] - }, - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "12121:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "12162:6:39", - "nodeType": "YulTypedName", - "src": "12162:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "12170:3:39", - "nodeType": "YulTypedName", - "src": "12170:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "12178:5:39", - "nodeType": "YulTypedName", - "src": "12178:5:39", - "type": "" - } - ], - "src": "12121:143:39" - }, - { - "body": { - "nativeSrc": "12416:710:39", - "nodeType": "YulBlock", - "src": "12416:710:39", - "statements": [ - { - "body": { - "nativeSrc": "12463:83:39", - "nodeType": "YulBlock", - "src": "12463:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "12465:77:39", - "nodeType": "YulIdentifier", - "src": "12465:77:39" - }, - "nativeSrc": "12465:79:39", - "nodeType": "YulFunctionCall", - "src": "12465:79:39" - }, - "nativeSrc": "12465:79:39", - "nodeType": "YulExpressionStatement", - "src": "12465:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "12437:7:39", - "nodeType": "YulIdentifier", - "src": "12437:7:39" - }, - { - "name": "headStart", - "nativeSrc": "12446:9:39", - "nodeType": "YulIdentifier", - "src": "12446:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "12433:3:39", - "nodeType": "YulIdentifier", - "src": "12433:3:39" - }, - "nativeSrc": "12433:23:39", - "nodeType": "YulFunctionCall", - "src": "12433:23:39" - }, - { - "kind": "number", - "nativeSrc": "12458:3:39", - "nodeType": "YulLiteral", - "src": "12458:3:39", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "12429:3:39", - "nodeType": "YulIdentifier", - "src": "12429:3:39" - }, - "nativeSrc": "12429:33:39", - "nodeType": "YulFunctionCall", - "src": "12429:33:39" - }, - "nativeSrc": "12426:120:39", - "nodeType": "YulIf", - "src": "12426:120:39" - }, - { - "nativeSrc": "12556:128:39", - "nodeType": "YulBlock", - "src": "12556:128:39", - "statements": [ - { - "nativeSrc": "12571:15:39", - "nodeType": "YulVariableDeclaration", - "src": "12571:15:39", - "value": { - "kind": "number", - "nativeSrc": "12585:1:39", - "nodeType": "YulLiteral", - "src": "12585:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12575:6:39", - "nodeType": "YulTypedName", - "src": "12575:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "12600:74:39", - "nodeType": "YulAssignment", - "src": "12600:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12646:9:39", - "nodeType": "YulIdentifier", - "src": "12646:9:39" - }, - { - "name": "offset", - "nativeSrc": "12657:6:39", - "nodeType": "YulIdentifier", - "src": "12657:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12642:3:39", - "nodeType": "YulIdentifier", - "src": "12642:3:39" - }, - "nativeSrc": "12642:22:39", - "nodeType": "YulFunctionCall", - "src": "12642:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "12666:7:39", - "nodeType": "YulIdentifier", - "src": "12666:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "12610:31:39", - "nodeType": "YulIdentifier", - "src": "12610:31:39" - }, - "nativeSrc": "12610:64:39", - "nodeType": "YulFunctionCall", - "src": "12610:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "12600:6:39", - "nodeType": "YulIdentifier", - "src": "12600:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "12694:147:39", - "nodeType": "YulBlock", - "src": "12694:147:39", - "statements": [ - { - "nativeSrc": "12709:16:39", - "nodeType": "YulVariableDeclaration", - "src": "12709:16:39", - "value": { - "kind": "number", - "nativeSrc": "12723:2:39", - "nodeType": "YulLiteral", - "src": "12723:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12713:6:39", - "nodeType": "YulTypedName", - "src": "12713:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "12739:92:39", - "nodeType": "YulAssignment", - "src": "12739:92:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12803:9:39", - "nodeType": "YulIdentifier", - "src": "12803:9:39" - }, - { - "name": "offset", - "nativeSrc": "12814:6:39", - "nodeType": "YulIdentifier", - "src": "12814:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12799:3:39", - "nodeType": "YulIdentifier", - "src": "12799:3:39" - }, - "nativeSrc": "12799:22:39", - "nodeType": "YulFunctionCall", - "src": "12799:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "12823:7:39", - "nodeType": "YulIdentifier", - "src": "12823:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IVerifier_$8101_fromMemory", - "nativeSrc": "12749:49:39", - "nodeType": "YulIdentifier", - "src": "12749:49:39" - }, - "nativeSrc": "12749:82:39", - "nodeType": "YulFunctionCall", - "src": "12749:82:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "12739:6:39", - "nodeType": "YulIdentifier", - "src": "12739:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "12851:129:39", - "nodeType": "YulBlock", - "src": "12851:129:39", - "statements": [ - { - "nativeSrc": "12866:16:39", - "nodeType": "YulVariableDeclaration", - "src": "12866:16:39", - "value": { - "kind": "number", - "nativeSrc": "12880:2:39", - "nodeType": "YulLiteral", - "src": "12880:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12870:6:39", - "nodeType": "YulTypedName", - "src": "12870:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "12896:74:39", - "nodeType": "YulAssignment", - "src": "12896:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12942:9:39", - "nodeType": "YulIdentifier", - "src": "12942:9:39" - }, - { - "name": "offset", - "nativeSrc": "12953:6:39", - "nodeType": "YulIdentifier", - "src": "12953:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12938:3:39", - "nodeType": "YulIdentifier", - "src": "12938:3:39" - }, - "nativeSrc": "12938:22:39", - "nodeType": "YulFunctionCall", - "src": "12938:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "12962:7:39", - "nodeType": "YulIdentifier", - "src": "12962:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "12906:31:39", - "nodeType": "YulIdentifier", - "src": "12906:31:39" - }, - "nativeSrc": "12906:64:39", - "nodeType": "YulFunctionCall", - "src": "12906:64:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "12896:6:39", - "nodeType": "YulIdentifier", - "src": "12896:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "12990:129:39", - "nodeType": "YulBlock", - "src": "12990:129:39", - "statements": [ - { - "nativeSrc": "13005:16:39", - "nodeType": "YulVariableDeclaration", - "src": "13005:16:39", - "value": { - "kind": "number", - "nativeSrc": "13019:2:39", - "nodeType": "YulLiteral", - "src": "13019:2:39", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "13009:6:39", - "nodeType": "YulTypedName", - "src": "13009:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "13035:74:39", - "nodeType": "YulAssignment", - "src": "13035:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13081:9:39", - "nodeType": "YulIdentifier", - "src": "13081:9:39" - }, - { - "name": "offset", - "nativeSrc": "13092:6:39", - "nodeType": "YulIdentifier", - "src": "13092:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13077:3:39", - "nodeType": "YulIdentifier", - "src": "13077:3:39" - }, - "nativeSrc": "13077:22:39", - "nodeType": "YulFunctionCall", - "src": "13077:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "13101:7:39", - "nodeType": "YulIdentifier", - "src": "13101:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "13045:31:39", - "nodeType": "YulIdentifier", - "src": "13045:31:39" - }, - "nativeSrc": "13045:64:39", - "nodeType": "YulFunctionCall", - "src": "13045:64:39" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "13035:6:39", - "nodeType": "YulIdentifier", - "src": "13035:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_contract$_IVerifier_$8101t_uint256t_uint256_fromMemory", - "nativeSrc": "12270:856:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "12362:9:39", - "nodeType": "YulTypedName", - "src": "12362:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "12373:7:39", - "nodeType": "YulTypedName", - "src": "12373:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "12385:6:39", - "nodeType": "YulTypedName", - "src": "12385:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "12393:6:39", - "nodeType": "YulTypedName", - "src": "12393:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "12401:6:39", - "nodeType": "YulTypedName", - "src": "12401:6:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "12409:6:39", - "nodeType": "YulTypedName", - "src": "12409:6:39", - "type": "" - } - ], - "src": "12270:856:39" - }, - { - "body": { - "nativeSrc": "13286:288:39", - "nodeType": "YulBlock", - "src": "13286:288:39", - "statements": [ - { - "nativeSrc": "13296:26:39", - "nodeType": "YulAssignment", - "src": "13296:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13308:9:39", - "nodeType": "YulIdentifier", - "src": "13308:9:39" - }, - { - "kind": "number", - "nativeSrc": "13319:2:39", - "nodeType": "YulLiteral", - "src": "13319:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13304:3:39", - "nodeType": "YulIdentifier", - "src": "13304:3:39" - }, - "nativeSrc": "13304:18:39", - "nodeType": "YulFunctionCall", - "src": "13304:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "13296:4:39", - "nodeType": "YulIdentifier", - "src": "13296:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "13376:6:39", - "nodeType": "YulIdentifier", - "src": "13376:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13389:9:39", - "nodeType": "YulIdentifier", - "src": "13389:9:39" - }, - { - "kind": "number", - "nativeSrc": "13400:1:39", - "nodeType": "YulLiteral", - "src": "13400:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13385:3:39", - "nodeType": "YulIdentifier", - "src": "13385:3:39" - }, - "nativeSrc": "13385:17:39", - "nodeType": "YulFunctionCall", - "src": "13385:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "13332:43:39", - "nodeType": "YulIdentifier", - "src": "13332:43:39" - }, - "nativeSrc": "13332:71:39", - "nodeType": "YulFunctionCall", - "src": "13332:71:39" - }, - "nativeSrc": "13332:71:39", - "nodeType": "YulExpressionStatement", - "src": "13332:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "13457:6:39", - "nodeType": "YulIdentifier", - "src": "13457:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13470:9:39", - "nodeType": "YulIdentifier", - "src": "13470:9:39" - }, - { - "kind": "number", - "nativeSrc": "13481:2:39", - "nodeType": "YulLiteral", - "src": "13481:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13466:3:39", - "nodeType": "YulIdentifier", - "src": "13466:3:39" - }, - "nativeSrc": "13466:18:39", - "nodeType": "YulFunctionCall", - "src": "13466:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "13413:43:39", - "nodeType": "YulIdentifier", - "src": "13413:43:39" - }, - "nativeSrc": "13413:72:39", - "nodeType": "YulFunctionCall", - "src": "13413:72:39" - }, - "nativeSrc": "13413:72:39", - "nodeType": "YulExpressionStatement", - "src": "13413:72:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "13539:6:39", - "nodeType": "YulIdentifier", - "src": "13539:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13552:9:39", - "nodeType": "YulIdentifier", - "src": "13552:9:39" - }, - { - "kind": "number", - "nativeSrc": "13563:2:39", - "nodeType": "YulLiteral", - "src": "13563:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13548:3:39", - "nodeType": "YulIdentifier", - "src": "13548:3:39" - }, - "nativeSrc": "13548:18:39", - "nodeType": "YulFunctionCall", - "src": "13548:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "13495:43:39", - "nodeType": "YulIdentifier", - "src": "13495:43:39" - }, - "nativeSrc": "13495:72:39", - "nodeType": "YulFunctionCall", - "src": "13495:72:39" - }, - "nativeSrc": "13495:72:39", - "nodeType": "YulExpressionStatement", - "src": "13495:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_address_t_uint256__to_t_bytes32_t_address_t_uint256__fromStack_reversed", - "nativeSrc": "13132:442:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "13242:9:39", - "nodeType": "YulTypedName", - "src": "13242:9:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "13254:6:39", - "nodeType": "YulTypedName", - "src": "13254:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "13262:6:39", - "nodeType": "YulTypedName", - "src": "13262:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "13270:6:39", - "nodeType": "YulTypedName", - "src": "13270:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "13281:4:39", - "nodeType": "YulTypedName", - "src": "13281:4:39", - "type": "" - } - ], - "src": "13132:442:39" - }, - { - "body": { - "nativeSrc": "13657:274:39", - "nodeType": "YulBlock", - "src": "13657:274:39", - "statements": [ - { - "body": { - "nativeSrc": "13703:83:39", - "nodeType": "YulBlock", - "src": "13703:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "13705:77:39", - "nodeType": "YulIdentifier", - "src": "13705:77:39" - }, - "nativeSrc": "13705:79:39", - "nodeType": "YulFunctionCall", - "src": "13705:79:39" - }, - "nativeSrc": "13705:79:39", - "nodeType": "YulExpressionStatement", - "src": "13705:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "13678:7:39", - "nodeType": "YulIdentifier", - "src": "13678:7:39" - }, - { - "name": "headStart", - "nativeSrc": "13687:9:39", - "nodeType": "YulIdentifier", - "src": "13687:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "13674:3:39", - "nodeType": "YulIdentifier", - "src": "13674:3:39" - }, - "nativeSrc": "13674:23:39", - "nodeType": "YulFunctionCall", - "src": "13674:23:39" - }, - { - "kind": "number", - "nativeSrc": "13699:2:39", - "nodeType": "YulLiteral", - "src": "13699:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "13670:3:39", - "nodeType": "YulIdentifier", - "src": "13670:3:39" - }, - "nativeSrc": "13670:32:39", - "nodeType": "YulFunctionCall", - "src": "13670:32:39" - }, - "nativeSrc": "13667:119:39", - "nodeType": "YulIf", - "src": "13667:119:39" - }, - { - "nativeSrc": "13796:128:39", - "nodeType": "YulBlock", - "src": "13796:128:39", - "statements": [ - { - "nativeSrc": "13811:15:39", - "nodeType": "YulVariableDeclaration", - "src": "13811:15:39", - "value": { - "kind": "number", - "nativeSrc": "13825:1:39", - "nodeType": "YulLiteral", - "src": "13825:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "13815:6:39", - "nodeType": "YulTypedName", - "src": "13815:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "13840:74:39", - "nodeType": "YulAssignment", - "src": "13840:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13886:9:39", - "nodeType": "YulIdentifier", - "src": "13886:9:39" - }, - { - "name": "offset", - "nativeSrc": "13897:6:39", - "nodeType": "YulIdentifier", - "src": "13897:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13882:3:39", - "nodeType": "YulIdentifier", - "src": "13882:3:39" - }, - "nativeSrc": "13882:22:39", - "nodeType": "YulFunctionCall", - "src": "13882:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "13906:7:39", - "nodeType": "YulIdentifier", - "src": "13906:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "13850:31:39", - "nodeType": "YulIdentifier", - "src": "13850:31:39" - }, - "nativeSrc": "13850:64:39", - "nodeType": "YulFunctionCall", - "src": "13850:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "13840:6:39", - "nodeType": "YulIdentifier", - "src": "13840:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256_fromMemory", - "nativeSrc": "13580:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "13627:9:39", - "nodeType": "YulTypedName", - "src": "13627:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "13638:7:39", - "nodeType": "YulTypedName", - "src": "13638:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "13650:6:39", - "nodeType": "YulTypedName", - "src": "13650:6:39", - "type": "" - } - ], - "src": "13580:351:39" - }, - { - "body": { - "nativeSrc": "13990:32:39", - "nodeType": "YulBlock", - "src": "13990:32:39", - "statements": [ - { - "nativeSrc": "14000:16:39", - "nodeType": "YulAssignment", - "src": "14000:16:39", - "value": { - "name": "value", - "nativeSrc": "14011:5:39", - "nodeType": "YulIdentifier", - "src": "14011:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "14000:7:39", - "nodeType": "YulIdentifier", - "src": "14000:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_rational_1_by_1", - "nativeSrc": "13937:85:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "13972:5:39", - "nodeType": "YulTypedName", - "src": "13972:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "13982:7:39", - "nodeType": "YulTypedName", - "src": "13982:7:39", - "type": "" - } - ], - "src": "13937:85:39" - }, - { - "body": { - "nativeSrc": "14072:57:39", - "nodeType": "YulBlock", - "src": "14072:57:39", - "statements": [ - { - "nativeSrc": "14082:41:39", - "nodeType": "YulAssignment", - "src": "14082:41:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "14097:5:39", - "nodeType": "YulIdentifier", - "src": "14097:5:39" - }, - { - "kind": "number", - "nativeSrc": "14104:18:39", - "nodeType": "YulLiteral", - "src": "14104:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "14093:3:39", - "nodeType": "YulIdentifier", - "src": "14093:3:39" - }, - "nativeSrc": "14093:30:39", - "nodeType": "YulFunctionCall", - "src": "14093:30:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "14082:7:39", - "nodeType": "YulIdentifier", - "src": "14082:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint64", - "nativeSrc": "14028:101:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "14054:5:39", - "nodeType": "YulTypedName", - "src": "14054:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "14064:7:39", - "nodeType": "YulTypedName", - "src": "14064:7:39", - "type": "" - } - ], - "src": "14028:101:39" - }, - { - "body": { - "nativeSrc": "14202:89:39", - "nodeType": "YulBlock", - "src": "14202:89:39", - "statements": [ - { - "nativeSrc": "14212:73:39", - "nodeType": "YulAssignment", - "src": "14212:73:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14277:5:39", - "nodeType": "YulIdentifier", - "src": "14277:5:39" - } - ], - "functionName": { - "name": "cleanup_t_rational_1_by_1", - "nativeSrc": "14251:25:39", - "nodeType": "YulIdentifier", - "src": "14251:25:39" - }, - "nativeSrc": "14251:32:39", - "nodeType": "YulFunctionCall", - "src": "14251:32:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "14242:8:39", - "nodeType": "YulIdentifier", - "src": "14242:8:39" - }, - "nativeSrc": "14242:42:39", - "nodeType": "YulFunctionCall", - "src": "14242:42:39" - } - ], - "functionName": { - "name": "cleanup_t_uint64", - "nativeSrc": "14225:16:39", - "nodeType": "YulIdentifier", - "src": "14225:16:39" - }, - "nativeSrc": "14225:60:39", - "nodeType": "YulFunctionCall", - "src": "14225:60:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "14212:9:39", - "nodeType": "YulIdentifier", - "src": "14212:9:39" - } - ] - } - ] - }, - "name": "convert_t_rational_1_by_1_to_t_uint64", - "nativeSrc": "14135:156:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "14182:5:39", - "nodeType": "YulTypedName", - "src": "14182:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "14192:9:39", - "nodeType": "YulTypedName", - "src": "14192:9:39", - "type": "" - } - ], - "src": "14135:156:39" - }, - { - "body": { - "nativeSrc": "14369:73:39", - "nodeType": "YulBlock", - "src": "14369:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "14386:3:39", - "nodeType": "YulIdentifier", - "src": "14386:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14429:5:39", - "nodeType": "YulIdentifier", - "src": "14429:5:39" - } - ], - "functionName": { - "name": "convert_t_rational_1_by_1_to_t_uint64", - "nativeSrc": "14391:37:39", - "nodeType": "YulIdentifier", - "src": "14391:37:39" - }, - "nativeSrc": "14391:44:39", - "nodeType": "YulFunctionCall", - "src": "14391:44:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14379:6:39", - "nodeType": "YulIdentifier", - "src": "14379:6:39" - }, - "nativeSrc": "14379:57:39", - "nodeType": "YulFunctionCall", - "src": "14379:57:39" - }, - "nativeSrc": "14379:57:39", - "nodeType": "YulExpressionStatement", - "src": "14379:57:39" - } - ] - }, - "name": "abi_encode_t_rational_1_by_1_to_t_uint64_fromStack", - "nativeSrc": "14297:145:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "14357:5:39", - "nodeType": "YulTypedName", - "src": "14357:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "14364:3:39", - "nodeType": "YulTypedName", - "src": "14364:3:39", - "type": "" - } - ], - "src": "14297:145:39" - }, - { - "body": { - "nativeSrc": "14553:131:39", - "nodeType": "YulBlock", - "src": "14553:131:39", - "statements": [ - { - "nativeSrc": "14563:26:39", - "nodeType": "YulAssignment", - "src": "14563:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14575:9:39", - "nodeType": "YulIdentifier", - "src": "14575:9:39" - }, - { - "kind": "number", - "nativeSrc": "14586:2:39", - "nodeType": "YulLiteral", - "src": "14586:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14571:3:39", - "nodeType": "YulIdentifier", - "src": "14571:3:39" - }, - "nativeSrc": "14571:18:39", - "nodeType": "YulFunctionCall", - "src": "14571:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "14563:4:39", - "nodeType": "YulIdentifier", - "src": "14563:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "14650:6:39", - "nodeType": "YulIdentifier", - "src": "14650:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14663:9:39", - "nodeType": "YulIdentifier", - "src": "14663:9:39" - }, - { - "kind": "number", - "nativeSrc": "14674:1:39", - "nodeType": "YulLiteral", - "src": "14674:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14659:3:39", - "nodeType": "YulIdentifier", - "src": "14659:3:39" - }, - "nativeSrc": "14659:17:39", - "nodeType": "YulFunctionCall", - "src": "14659:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_rational_1_by_1_to_t_uint64_fromStack", - "nativeSrc": "14599:50:39", - "nodeType": "YulIdentifier", - "src": "14599:50:39" - }, - "nativeSrc": "14599:78:39", - "nodeType": "YulFunctionCall", - "src": "14599:78:39" - }, - "nativeSrc": "14599:78:39", - "nodeType": "YulExpressionStatement", - "src": "14599:78:39" - } - ] - }, - "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", - "nativeSrc": "14448:236:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "14525:9:39", - "nodeType": "YulTypedName", - "src": "14525:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "14537:6:39", - "nodeType": "YulTypedName", - "src": "14537:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "14548:4:39", - "nodeType": "YulTypedName", - "src": "14548:4:39", - "type": "" - } - ], - "src": "14448:236:39" - }, - { - "body": { - "nativeSrc": "14718:152:39", - "nodeType": "YulBlock", - "src": "14718:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14735:1:39", - "nodeType": "YulLiteral", - "src": "14735:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "14738:77:39", - "nodeType": "YulLiteral", - "src": "14738:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14728:6:39", - "nodeType": "YulIdentifier", - "src": "14728:6:39" - }, - "nativeSrc": "14728:88:39", - "nodeType": "YulFunctionCall", - "src": "14728:88:39" - }, - "nativeSrc": "14728:88:39", - "nodeType": "YulExpressionStatement", - "src": "14728:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14832:1:39", - "nodeType": "YulLiteral", - "src": "14832:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "14835:4:39", - "nodeType": "YulLiteral", - "src": "14835:4:39", - "type": "", - "value": "0x32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14825:6:39", - "nodeType": "YulIdentifier", - "src": "14825:6:39" - }, - "nativeSrc": "14825:15:39", - "nodeType": "YulFunctionCall", - "src": "14825:15:39" - }, - "nativeSrc": "14825:15:39", - "nodeType": "YulExpressionStatement", - "src": "14825:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14856:1:39", - "nodeType": "YulLiteral", - "src": "14856:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "14859:4:39", - "nodeType": "YulLiteral", - "src": "14859:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "14849:6:39", - "nodeType": "YulIdentifier", - "src": "14849:6:39" - }, - "nativeSrc": "14849:15:39", - "nodeType": "YulFunctionCall", - "src": "14849:15:39" - }, - "nativeSrc": "14849:15:39", - "nodeType": "YulExpressionStatement", - "src": "14849:15:39" - } - ] - }, - "name": "panic_error_0x32", - "nativeSrc": "14690:180:39", - "nodeType": "YulFunctionDefinition", - "src": "14690:180:39" - } - ] - }, - "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_$8101_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$8101_to_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_contract$_IVerifier_$8101_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_$8101_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_$7736_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7736_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7736_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_$8101(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$8101(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$8101(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$8101_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_IVerifier_$8101(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_$8101t_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_$8101_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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033", - "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 0x27 0x2C 0xE1 CHAINID MUL 0xF7 JUMP EQ 0xB1 DUP13 CALLCODE 0xBF NOT 0xAB PUSH9 0xC14B11F226E3A446F PUSH23 0xE4FE0C0E360DC764736F6C634300081C00330000000000 ", - "sourceMap": "708:3783:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3696:395;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1261:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1573:324;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3155:101:3;;;:::i;:::-;;3257:229:2;;;:::i;:::-;;769:28:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2441:144:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2421:659:34;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4262:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2038:168:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2524:247;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3696:395:34;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:34::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:34;;:::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;3257:229:2:-;3309:14;3326:12;:10;:12::i;:::-;3309:29;;3370:6;3352:24;;:14;:12;:14::i;:::-;:24;;;3348:96;;3426:6;3399:34;;;;;;;;;;;:::i;:::-;;;;;;;;3348:96;3453:26;3472:6;3453:18;:26::i;:::-;3299:187;3257:229::o;769:28:34:-;;;;;;;;;;;;:::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:34:-;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:34::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;2038:168:2:-;2091:7;2110:29;2142:25;:23;:25::i;:::-;2110:57;;2184:1;:15;;;;;;;;;;;;2177:22;;;2038:168;:::o;2524:247::-;2334:13:3;:11;:13::i;:::-;2613:29:2::1;2645:25;:23;:25::i;:::-;2613:57;;2698:8;2680:1;:15;;;:26;;;;;;;;;;;;;;;;;;2755:8;2721:43;;2746:7;:5;:7::i;:::-;2721:43;;;;;;;;;;;;2603:168;2524:247:::0;:::o;8737:170:4:-;8795:30;8870:21;8860:31;;8737:170;:::o;1819:64:2:-;6931:20:4;:18;:20::i;:::-;1819: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;2955:222:2:-;3037:29;3069:25;:23;:25::i;:::-;3037:57;;3111:1;:15;;;3104:22;;;;;;;;;;;3136:34;3161:8;3136:24;:34::i;:::-;3027:150;2955: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;1545:174:2:-;1602:29;1676:27;1666:37;;1545: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:39:-;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. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"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\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@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": 7442, - "contract": "contracts/SCI.sol:SCI", - "label": "registry", - "offset": 0, - "slot": "0", - "type": "t_contract(ISciRegistry)7736" - } - ], - "types": { - "t_contract(ISciRegistry)7736": { - "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 - }, - "@_3525": { - "entryPoint": null, - "id": 3525, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_7181": { - "entryPoint": null, - "id": 7181, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_7816": { - "entryPoint": null, - "id": 7816, - "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_3399": { - "entryPoint": 405, - "id": 3399, - "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:39", - "nodeType": "YulBlock", - "src": "0:1648:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "378:53:39", - "nodeType": "YulBlock", - "src": "378:53:39", - "statements": [ - { - "nativeSrc": "388:37:39", - "nodeType": "YulAssignment", - "src": "388:37:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "403:5:39", - "nodeType": "YulIdentifier", - "src": "403:5:39" - }, - { - "kind": "number", - "nativeSrc": "410:14:39", - "nodeType": "YulLiteral", - "src": "410:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "399:3:39", - "nodeType": "YulIdentifier", - "src": "399:3:39" - }, - "nativeSrc": "399:26:39", - "nodeType": "YulFunctionCall", - "src": "399:26:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "388:7:39", - "nodeType": "YulIdentifier", - "src": "388:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint48", - "nativeSrc": "334:97:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "360:5:39", - "nodeType": "YulTypedName", - "src": "360:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "370:7:39", - "nodeType": "YulTypedName", - "src": "370:7:39", - "type": "" - } - ], - "src": "334:97:39" - }, - { - "body": { - "nativeSrc": "479:78:39", - "nodeType": "YulBlock", - "src": "479:78:39", - "statements": [ - { - "body": { - "nativeSrc": "535:16:39", - "nodeType": "YulBlock", - "src": "535:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "544:1:39", - "nodeType": "YulLiteral", - "src": "544:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "547:1:39", - "nodeType": "YulLiteral", - "src": "547:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "537:6:39", - "nodeType": "YulIdentifier", - "src": "537:6:39" - }, - "nativeSrc": "537:12:39", - "nodeType": "YulFunctionCall", - "src": "537:12:39" - }, - "nativeSrc": "537:12:39", - "nodeType": "YulExpressionStatement", - "src": "537:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "502:5:39", - "nodeType": "YulIdentifier", - "src": "502:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "526:5:39", - "nodeType": "YulIdentifier", - "src": "526:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "509:16:39", - "nodeType": "YulIdentifier", - "src": "509:16:39" - }, - "nativeSrc": "509:23:39", - "nodeType": "YulFunctionCall", - "src": "509:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "499:2:39", - "nodeType": "YulIdentifier", - "src": "499:2:39" - }, - "nativeSrc": "499:34:39", - "nodeType": "YulFunctionCall", - "src": "499:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "492:6:39", - "nodeType": "YulIdentifier", - "src": "492:6:39" - }, - "nativeSrc": "492:42:39", - "nodeType": "YulFunctionCall", - "src": "492:42:39" - }, - "nativeSrc": "489:62:39", - "nodeType": "YulIf", - "src": "489:62:39" - } - ] - }, - "name": "validator_revert_t_uint48", - "nativeSrc": "437:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "472:5:39", - "nodeType": "YulTypedName", - "src": "472:5:39", - "type": "" - } - ], - "src": "437:120:39" - }, - { - "body": { - "nativeSrc": "625:79:39", - "nodeType": "YulBlock", - "src": "625:79:39", - "statements": [ - { - "nativeSrc": "635:22:39", - "nodeType": "YulAssignment", - "src": "635:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "650:6:39", - "nodeType": "YulIdentifier", - "src": "650:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "644:5:39", - "nodeType": "YulIdentifier", - "src": "644:5:39" - }, - "nativeSrc": "644:13:39", - "nodeType": "YulFunctionCall", - "src": "644:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "635:5:39", - "nodeType": "YulIdentifier", - "src": "635:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "692:5:39", - "nodeType": "YulIdentifier", - "src": "692:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint48", - "nativeSrc": "666:25:39", - "nodeType": "YulIdentifier", - "src": "666:25:39" - }, - "nativeSrc": "666:32:39", - "nodeType": "YulFunctionCall", - "src": "666:32:39" - }, - "nativeSrc": "666:32:39", - "nodeType": "YulExpressionStatement", - "src": "666:32:39" - } - ] - }, - "name": "abi_decode_t_uint48_fromMemory", - "nativeSrc": "563:141:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "603:6:39", - "nodeType": "YulTypedName", - "src": "603:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "611:3:39", - "nodeType": "YulTypedName", - "src": "611:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "619:5:39", - "nodeType": "YulTypedName", - "src": "619:5:39", - "type": "" - } - ], - "src": "563:141:39" - }, - { - "body": { - "nativeSrc": "786:273:39", - "nodeType": "YulBlock", - "src": "786:273:39", - "statements": [ - { - "body": { - "nativeSrc": "832:83:39", - "nodeType": "YulBlock", - "src": "832:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "834:77:39", - "nodeType": "YulIdentifier", - "src": "834:77:39" - }, - "nativeSrc": "834:79:39", - "nodeType": "YulFunctionCall", - "src": "834:79:39" - }, - "nativeSrc": "834:79:39", - "nodeType": "YulExpressionStatement", - "src": "834:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "807:7:39", - "nodeType": "YulIdentifier", - "src": "807:7:39" - }, - { - "name": "headStart", - "nativeSrc": "816:9:39", - "nodeType": "YulIdentifier", - "src": "816:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "803:3:39", - "nodeType": "YulIdentifier", - "src": "803:3:39" - }, - "nativeSrc": "803:23:39", - "nodeType": "YulFunctionCall", - "src": "803:23:39" - }, - { - "kind": "number", - "nativeSrc": "828:2:39", - "nodeType": "YulLiteral", - "src": "828:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "799:3:39", - "nodeType": "YulIdentifier", - "src": "799:3:39" - }, - "nativeSrc": "799:32:39", - "nodeType": "YulFunctionCall", - "src": "799:32:39" - }, - "nativeSrc": "796:119:39", - "nodeType": "YulIf", - "src": "796:119:39" - }, - { - "nativeSrc": "925:127:39", - "nodeType": "YulBlock", - "src": "925:127:39", - "statements": [ - { - "nativeSrc": "940:15:39", - "nodeType": "YulVariableDeclaration", - "src": "940:15:39", - "value": { - "kind": "number", - "nativeSrc": "954:1:39", - "nodeType": "YulLiteral", - "src": "954:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "944:6:39", - "nodeType": "YulTypedName", - "src": "944:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "969:73:39", - "nodeType": "YulAssignment", - "src": "969:73:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1014:9:39", - "nodeType": "YulIdentifier", - "src": "1014:9:39" - }, - { - "name": "offset", - "nativeSrc": "1025:6:39", - "nodeType": "YulIdentifier", - "src": "1025:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1010:3:39", - "nodeType": "YulIdentifier", - "src": "1010:3:39" - }, - "nativeSrc": "1010:22:39", - "nodeType": "YulFunctionCall", - "src": "1010:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1034:7:39", - "nodeType": "YulIdentifier", - "src": "1034:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint48_fromMemory", - "nativeSrc": "979:30:39", - "nodeType": "YulIdentifier", - "src": "979:30:39" - }, - "nativeSrc": "979:63:39", - "nodeType": "YulFunctionCall", - "src": "979:63:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "969:6:39", - "nodeType": "YulIdentifier", - "src": "969:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint48_fromMemory", - "nativeSrc": "710:349:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "756:9:39", - "nodeType": "YulTypedName", - "src": "756:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "767:7:39", - "nodeType": "YulTypedName", - "src": "767:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "779:6:39", - "nodeType": "YulTypedName", - "src": "779:6:39", - "type": "" - } - ], - "src": "710:349:39" - }, - { - "body": { - "nativeSrc": "1110:81:39", - "nodeType": "YulBlock", - "src": "1110:81:39", - "statements": [ - { - "nativeSrc": "1120:65:39", - "nodeType": "YulAssignment", - "src": "1120:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1135:5:39", - "nodeType": "YulIdentifier", - "src": "1135:5:39" - }, - { - "kind": "number", - "nativeSrc": "1142:42:39", - "nodeType": "YulLiteral", - "src": "1142:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1131:3:39", - "nodeType": "YulIdentifier", - "src": "1131:3:39" - }, - "nativeSrc": "1131:54:39", - "nodeType": "YulFunctionCall", - "src": "1131:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1120:7:39", - "nodeType": "YulIdentifier", - "src": "1120:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "1065:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1092:5:39", - "nodeType": "YulTypedName", - "src": "1092:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1102:7:39", - "nodeType": "YulTypedName", - "src": "1102:7:39", - "type": "" - } - ], - "src": "1065:126:39" - }, - { - "body": { - "nativeSrc": "1242:51:39", - "nodeType": "YulBlock", - "src": "1242:51:39", - "statements": [ - { - "nativeSrc": "1252:35:39", - "nodeType": "YulAssignment", - "src": "1252:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1281:5:39", - "nodeType": "YulIdentifier", - "src": "1281:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "1263:17:39", - "nodeType": "YulIdentifier", - "src": "1263:17:39" - }, - "nativeSrc": "1263:24:39", - "nodeType": "YulFunctionCall", - "src": "1263:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1252:7:39", - "nodeType": "YulIdentifier", - "src": "1252:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "1197:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1224:5:39", - "nodeType": "YulTypedName", - "src": "1224:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1234:7:39", - "nodeType": "YulTypedName", - "src": "1234:7:39", - "type": "" - } - ], - "src": "1197:96:39" - }, - { - "body": { - "nativeSrc": "1364:53:39", - "nodeType": "YulBlock", - "src": "1364:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1381:3:39", - "nodeType": "YulIdentifier", - "src": "1381:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1404:5:39", - "nodeType": "YulIdentifier", - "src": "1404:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1386:17:39", - "nodeType": "YulIdentifier", - "src": "1386:17:39" - }, - "nativeSrc": "1386:24:39", - "nodeType": "YulFunctionCall", - "src": "1386:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1374:6:39", - "nodeType": "YulIdentifier", - "src": "1374:6:39" - }, - "nativeSrc": "1374:37:39", - "nodeType": "YulFunctionCall", - "src": "1374:37:39" - }, - "nativeSrc": "1374:37:39", - "nodeType": "YulExpressionStatement", - "src": "1374:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1299:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1352:5:39", - "nodeType": "YulTypedName", - "src": "1352:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1359:3:39", - "nodeType": "YulTypedName", - "src": "1359:3:39", - "type": "" - } - ], - "src": "1299:118:39" - }, - { - "body": { - "nativeSrc": "1521:124:39", - "nodeType": "YulBlock", - "src": "1521:124:39", - "statements": [ - { - "nativeSrc": "1531:26:39", - "nodeType": "YulAssignment", - "src": "1531:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1543:9:39", - "nodeType": "YulIdentifier", - "src": "1543:9:39" - }, - { - "kind": "number", - "nativeSrc": "1554:2:39", - "nodeType": "YulLiteral", - "src": "1554:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1539:3:39", - "nodeType": "YulIdentifier", - "src": "1539:3:39" - }, - "nativeSrc": "1539:18:39", - "nodeType": "YulFunctionCall", - "src": "1539:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1531:4:39", - "nodeType": "YulIdentifier", - "src": "1531:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1611:6:39", - "nodeType": "YulIdentifier", - "src": "1611:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1624:9:39", - "nodeType": "YulIdentifier", - "src": "1624:9:39" - }, - { - "kind": "number", - "nativeSrc": "1635:1:39", - "nodeType": "YulLiteral", - "src": "1635:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1620:3:39", - "nodeType": "YulIdentifier", - "src": "1620:3:39" - }, - "nativeSrc": "1620:17:39", - "nodeType": "YulFunctionCall", - "src": "1620:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1567:43:39", - "nodeType": "YulIdentifier", - "src": "1567:43:39" - }, - "nativeSrc": "1567:71:39", - "nodeType": "YulFunctionCall", - "src": "1567:71:39" - }, - "nativeSrc": "1567:71:39", - "nodeType": "YulExpressionStatement", - "src": "1567:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "1423:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1493:9:39", - "nodeType": "YulTypedName", - "src": "1493:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1505:6:39", - "nodeType": "YulTypedName", - "src": "1505:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1516:4:39", - "nodeType": "YulTypedName", - "src": "1516:4:39", - "type": "" - } - ], - "src": "1423:222:39" - } - ] - }, - "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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60a060405234801561001057600080fd5b506040516129513803806129518339818101604052810190610032919061051a565b308161004261019560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b45760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100ab9190610588565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100ec6000801b8261019d60201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506000600360006101000a81548160ff02191690831515021790555061018f7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092387f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750961027660201b60201c565b506105a3565b600033905090565b60008060001b830361025e57600073ffffffffffffffffffffffffffffffffffffffff166101cf6102c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461021c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61026e83836102f060201b60201c565b905092915050565b6000801b82036102b2576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c282826103ed60201b60201c565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610302838361044e60201b60201c565b6103e257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061037f61019560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506103e7565b600090505b92915050565b60006103fe836104b860201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806000838152602001908152602001600020600101549050919050565b600080fd5b600065ffffffffffff82169050919050565b6104f7816104dc565b811461050257600080fd5b50565b600081519050610514816104ee565b92915050565b6000602082840312156105305761052f6104d7565b5b600061053e84828501610505565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061057282610547565b9050919050565b61058281610567565b82525050565b600060208201905061059d6000830184610579565b92915050565b60805161238c6105c560003960008181610924015261115a015261238c6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ccb565b6105ff565b6040516102279190611d13565b60405180910390f35b610238610679565b6040516102459190611d4f565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611da0565b61069c565b60405161027f9190611ddc565b60405180910390f35b6102a2600480360381019061029d9190611e55565b6106bb565b005b6102be60048036038101906102b99190611e55565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611da0565b610827565b6040516102f19190611ef4565b60405180910390f35b610314600480360381019061030f9190611da0565b610867565b6040516103249493929190611f37565b60405180910390f35b6103356108d7565b6040516103429190611d13565b60405180910390f35b61036560048036038101906103609190611f7c565b6108ee565b005b610381600480360381019061037c9190611fd5565b610908565b005b61038b610922565b6040516103989190612023565b60405180910390f35b6103bb60048036038101906103b69190611e55565b610946565b6040516103c89190611d13565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061203e565b60405180910390f35b6104016109e6565b60405161040e919061203e565b60405180910390f35b610431600480360381019061042c9190611e55565b6109f5565b60405161043e9190611d13565b60405180910390f35b61044f610a5f565b60405161045d929190612059565b60405180910390f35b61046e610abf565b60405161047b9190611ddc565b60405180910390f35b61049e60048036038101906104999190611da0565b610ac6565b6040516104ab9190612082565b60405180910390f35b6104ce60048036038101906104c991906120db565b610ae6565b005b6104ea60048036038101906104e5919061211b565b610b09565b005b6104f4610b17565b6040516105019190611ddc565b60405180910390f35b610512610b3b565b60405161051f9190611d4f565b60405180910390f35b610530610ba9565b005b61053a610c3f565b60405161054892919061215b565b60405180910390f35b61056b60048036038101906105669190611da0565b610c82565b604051610578919061203e565b60405180910390f35b61059b60048036038101906105969190611e55565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612184565b610d24565b005b6105cb610d3d565b6040516105d89190611ddc565b60405180910390f35b6105e9610d61565b6040516105f69190611ddc565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d4f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061203e565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061203e565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b6110119190612206565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d4f565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d9190612206565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612059565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061203e565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611ddc565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612255565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611243929190612282565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061203e565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d4f565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c4929190612282565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122f3565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b2919061231c565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061203e565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000611c408284108484611c48565b905092915050565b6000611c5384611c62565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ca881611c73565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b600060208284031215611ce157611ce0611c6e565b5b6000611cef84828501611cb6565b91505092915050565b60008115159050919050565b611d0d81611cf8565b82525050565b6000602082019050611d286000830184611d04565b92915050565b600065ffffffffffff82169050919050565b611d4981611d2e565b82525050565b6000602082019050611d646000830184611d40565b92915050565b6000819050919050565b611d7d81611d6a565b8114611d8857600080fd5b50565b600081359050611d9a81611d74565b92915050565b600060208284031215611db657611db5611c6e565b5b6000611dc484828501611d8b565b91505092915050565b611dd681611d6a565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e2282611df7565b9050919050565b611e3281611e17565b8114611e3d57600080fd5b50565b600081359050611e4f81611e29565b92915050565b60008060408385031215611e6c57611e6b611c6e565b5b6000611e7a85828601611d8b565b9250506020611e8b85828601611e40565b9150509250929050565b6000819050919050565b6000611eba611eb5611eb084611df7565b611e95565b611df7565b9050919050565b6000611ecc82611e9f565b9050919050565b6000611ede82611ec1565b9050919050565b611eee81611ed3565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b611f1881611e17565b82525050565b6000819050919050565b611f3181611f1e565b82525050565b6000608082019050611f4c6000830187611f0f565b611f596020830186611ee5565b611f666040830185611f28565b611f736060830184611f28565b95945050505050565b600060208284031215611f9257611f91611c6e565b5b6000611fa084828501611e40565b91505092915050565b611fb281611d2e565b8114611fbd57600080fd5b50565b600081359050611fcf81611fa9565b92915050565b600060208284031215611feb57611fea611c6e565b5b6000611ff984828501611fc0565b91505092915050565b600061200d82611ec1565b9050919050565b61201d81612002565b82525050565b60006020820190506120386000830184612014565b92915050565b60006020820190506120536000830184611f0f565b92915050565b600060408201905061206e6000830185611d40565b61207b6020830184611d40565b9392505050565b60006020820190506120976000830184611f28565b92915050565b60006120a882611e17565b9050919050565b6120b88161209d565b81146120c357600080fd5b50565b6000813590506120d5816120af565b92915050565b600080604083850312156120f2576120f1611c6e565b5b600061210085828601611d8b565b9250506020612111858286016120c6565b9150509250929050565b6000806040838503121561213257612131611c6e565b5b600061214085828601611e40565b925050602061215185828601611d8b565b9150509250929050565b60006040820190506121706000830185611f0f565b61217d6020830184611d40565b9392505050565b60008060006060848603121561219d5761219c611c6e565b5b60006121ab86828701611e40565b93505060206121bc86828701611d8b565b92505060406121cd868287016120c6565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061221182611d2e565b915061221c83611d2e565b9250828201905065ffffffffffff81111561223a576122396121d7565b5b92915050565b60008151905061224f81611e29565b92915050565b60006020828403121561226b5761226a611c6e565b5b600061227984828501612240565b91505092915050565b60006040820190506122976000830185611f0f565b6122a46020830184611dcd565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122dd6122d86122d3846122ab565b611e95565b6122b5565b9050919050565b6122ed816122c2565b82525050565b600060408201905061230860008301856122e4565b6123156020830184611f28565b9392505050565b600061232782611d2e565b915061233283611d2e565b9250828203905065ffffffffffff8111156123505761234f6121d7565b5b9291505056fea26469706673582212208d9faa5a557b2963a1f0927d9241c63c1ae66f5d48267732b4a8678b6cd45e3b64736f6c634300081c0033", - "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2951 CODESIZE SUB DUP1 PUSH2 0x2951 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 0x238C PUSH2 0x5C5 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x924 ADD MSTORE PUSH2 0x115A ADD MSTORE PUSH2 0x238C 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 0x1CCB JUMP JUMPDEST PUSH2 0x5FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x227 SWAP2 SWAP1 PUSH2 0x1D13 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 0x1D4F 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 0x1DA0 JUMP JUMPDEST PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1E55 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x1E55 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 0x1DA0 JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0x1EF4 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 0x1DA0 JUMP JUMPDEST PUSH2 0x867 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F37 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 0x1D13 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 0x1F7C JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x381 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x1FD5 JUMP JUMPDEST PUSH2 0x908 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x38B PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x398 SWAP2 SWAP1 PUSH2 0x2023 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 0x1E55 JUMP JUMPDEST PUSH2 0x946 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x1D13 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 0x203E 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 0x203E 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 0x1E55 JUMP JUMPDEST PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x1D13 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 0x2059 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 0x1DDC 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 0x1DA0 JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x2082 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 0x20DB JUMP JUMPDEST PUSH2 0xAE6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x211B JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F4 PUSH2 0xB17 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x501 SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1D4F 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 0x215B 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 0x1DA0 JUMP JUMPDEST PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x203E 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 0x1E55 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 0x2184 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5CB PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D8 SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1DDC 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 0x1D4F 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 0x203E 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 0x203E 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 0x2206 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 0x1D4F 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 0x2206 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 0x2059 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 0x203E 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 0x1DDC 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 0x2255 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 0x2282 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 0x203E 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 0x1D4F 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 0x2282 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 0x22F3 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 0x231C 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 0x203E 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 PUSH2 0x1C40 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1C48 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C53 DUP5 PUSH2 0x1C62 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CA8 DUP2 PUSH2 0x1C73 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CC5 DUP2 PUSH2 0x1C9F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE1 JUMPI PUSH2 0x1CE0 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CEF DUP5 DUP3 DUP6 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D0D DUP2 PUSH2 0x1CF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D28 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D04 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D49 DUP2 PUSH2 0x1D2E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D64 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D7D DUP2 PUSH2 0x1D6A JUMP JUMPDEST DUP2 EQ PUSH2 0x1D88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D9A DUP2 PUSH2 0x1D74 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DB6 JUMPI PUSH2 0x1DB5 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DC4 DUP5 DUP3 DUP6 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1DD6 DUP2 PUSH2 0x1D6A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DF1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DCD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E22 DUP3 PUSH2 0x1DF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E32 DUP2 PUSH2 0x1E17 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E4F DUP2 PUSH2 0x1E29 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E6C JUMPI PUSH2 0x1E6B PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7A DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E8B DUP6 DUP3 DUP7 ADD PUSH2 0x1E40 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 0x1EBA PUSH2 0x1EB5 PUSH2 0x1EB0 DUP5 PUSH2 0x1DF7 JUMP JUMPDEST PUSH2 0x1E95 JUMP JUMPDEST PUSH2 0x1DF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1ECC DUP3 PUSH2 0x1E9F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EDE DUP3 PUSH2 0x1EC1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EEE DUP2 PUSH2 0x1ED3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F09 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EE5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1F18 DUP2 PUSH2 0x1E17 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F31 DUP2 PUSH2 0x1F1E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1F4C PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x1F59 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EE5 JUMP JUMPDEST PUSH2 0x1F66 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1F28 JUMP JUMPDEST PUSH2 0x1F73 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F92 JUMPI PUSH2 0x1F91 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FA0 DUP5 DUP3 DUP6 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1FB2 DUP2 PUSH2 0x1D2E JUMP JUMPDEST DUP2 EQ PUSH2 0x1FBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FCF DUP2 PUSH2 0x1FA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FEB JUMPI PUSH2 0x1FEA PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FF9 DUP5 DUP3 DUP6 ADD PUSH2 0x1FC0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200D DUP3 PUSH2 0x1EC1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x201D DUP2 PUSH2 0x2002 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2038 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2014 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2053 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F0F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x206E PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1D40 JUMP JUMPDEST PUSH2 0x207B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2097 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A8 DUP3 PUSH2 0x1E17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x20B8 DUP2 PUSH2 0x209D JUMP JUMPDEST DUP2 EQ PUSH2 0x20C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x20D5 DUP2 PUSH2 0x20AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20F2 JUMPI PUSH2 0x20F1 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2100 DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2111 DUP6 DUP3 DUP7 ADD PUSH2 0x20C6 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2132 JUMPI PUSH2 0x2131 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2140 DUP6 DUP3 DUP7 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2151 DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2170 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x217D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x219D JUMPI PUSH2 0x219C PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x21AB DUP7 DUP3 DUP8 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x21BC DUP7 DUP3 DUP8 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x21CD DUP7 DUP3 DUP8 ADD PUSH2 0x20C6 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 0x2211 DUP3 PUSH2 0x1D2E JUMP JUMPDEST SWAP2 POP PUSH2 0x221C DUP4 PUSH2 0x1D2E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x223A JUMPI PUSH2 0x2239 PUSH2 0x21D7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x224F DUP2 PUSH2 0x1E29 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x226B JUMPI PUSH2 0x226A PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2279 DUP5 DUP3 DUP6 ADD PUSH2 0x2240 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2297 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x22A4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DCD 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 0x22DD PUSH2 0x22D8 PUSH2 0x22D3 DUP5 PUSH2 0x22AB JUMP JUMPDEST PUSH2 0x1E95 JUMP JUMPDEST PUSH2 0x22B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22ED DUP2 PUSH2 0x22C2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2308 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22E4 JUMP JUMPDEST PUSH2 0x2315 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2327 DUP3 PUSH2 0x1D2E JUMP JUMPDEST SWAP2 POP PUSH2 0x2332 DUP4 PUSH2 0x1D2E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2350 JUMPI PUSH2 0x234F PUSH2 0x21D7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 SWAP16 0xAA GAS SSTORE PUSH28 0x2963A1F0927D9241C63C1AE66F5D48267732B4A8678B6CD45E3B6473 PUSH16 0x6C634300081C00330000000000000000 ", - "sourceMap": "598:5743:36:-: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:29;1147:44;;;;;;;;;;1096:102;1241:5:23;1231:7;;:15;;;;;;;;;;;;;;;;;;2144:53:36::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:39:-;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:36:-;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@DEFAULT_ADMIN_ROLE_1222": { - "entryPoint": 2751, - "id": 1222, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@PAUSER_ROLE_7787": { - "entryPoint": 3389, - "id": 7787, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@REGISTRAR_MANAGER_ROLE_7777": { - "entryPoint": 2839, - "id": 7777, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@REGISTRAR_ROLE_7782": { - "entryPoint": 3425, - "id": 7782, - "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_7203": { - "entryPoint": 4417, - "id": 7203, - "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_3399": { - "entryPoint": 4409, - "id": 3399, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_pause_3591": { - "entryPoint": 4310, - "id": 3591, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_registerDomain_8002": { - "entryPoint": 4981, - "id": 8002, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_requireNotPaused_3562": { - "entryPoint": 6625, - "id": 3562, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_requirePaused_3575": { - "entryPoint": 6197, - "id": 3575, - "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_8084": { - "entryPoint": 6690, - "id": 8084, - "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_8045": { - "entryPoint": 4688, - "id": 8045, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_unpause_3607": { - "entryPoint": 3985, - "id": 3607, - "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_7793": { - "entryPoint": 2151, - "id": 7793, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@domainOwner_7976": { - "entryPoint": 3202, - "id": 7976, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@domainVerifierSetTime_7941": { - "entryPoint": 2758, - "id": 7941, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@domainVerifier_7927": { - "entryPoint": 2087, - "id": 7927, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getRoleAdmin_1321": { - "entryPoint": 1692, - "id": 1321, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@grantRole_7961": { - "entryPoint": 1723, - "id": 7961, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@hasRole_1273": { - "entryPoint": 2549, - "id": 1273, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@isDomainOwner_7892": { - "entryPoint": 2374, - "id": 7892, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@min_4003": { - "entryPoint": 7217, - "id": 4003, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@owner_1816": { - "entryPoint": 2534, - "id": 1816, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@pause_7863": { - "entryPoint": 2439, - "id": 7863, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@paused_3550": { - "entryPoint": 2263, - "id": 3550, - "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_7852": { - "entryPoint": 3364, - "id": 7852, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@registerDomain_7830": { - "entryPoint": 2825, - "id": 7830, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@registry_7147": { - "entryPoint": 2338, - "id": 7147, - "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_7912": { - "entryPoint": 2790, - "id": 7912, - "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_3755": { - "entryPoint": 5398, - "id": 3755, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@ternary_3965": { - "entryPoint": 7240, - "id": 3965, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@toUint48_6129": { - "entryPoint": 6261, - "id": 6129, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@toUint_7138": { - "entryPoint": 7266, - "id": 7138, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@unpause_7874": { - "entryPoint": 2034, - "id": 7874, - "parameterSlots": 0, - "returnSlots": 0 - }, - "abi_decode_t_address": { - "entryPoint": 7744, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_address_fromMemory": { - "entryPoint": 8768, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes32": { - "entryPoint": 7563, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes4": { - "entryPoint": 7350, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_contract$_IVerifier_$8101": { - "entryPoint": 8390, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_uint48": { - "entryPoint": 8128, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 8060, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address_fromMemory": { - "entryPoint": 8789, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_bytes32": { - "entryPoint": 8475, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8101": { - "entryPoint": 8580, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_bytes32": { - "entryPoint": 7584, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32t_address": { - "entryPoint": 7765, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8101": { - "entryPoint": 8411, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes4": { - "entryPoint": 7371, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint48": { - "entryPoint": 8149, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_address_to_t_address_fromStack": { - "entryPoint": 7951, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bool_to_t_bool_fromStack": { - "entryPoint": 7428, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bytes32_to_t_bytes32_fromStack": { - "entryPoint": 7629, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack": { - "entryPoint": 8212, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack": { - "entryPoint": 7909, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack": { - "entryPoint": 8932, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 7976, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint48_to_t_uint48_fromStack": { - "entryPoint": 7488, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": 8254, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { - "entryPoint": 8834, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_contract$_IVerifier_$8101_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 7991, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed": { - "entryPoint": 8539, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": 7443, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": 7644, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed": { - "entryPoint": 8227, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_IVerifier_$8101__to_t_address__fromStack_reversed": { - "entryPoint": 7924, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed": { - "entryPoint": 8947, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": 8322, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed": { - "entryPoint": 7503, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed": { - "entryPoint": 8281, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "checked_add_t_uint48": { - "entryPoint": 8710, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_sub_t_uint48": { - "entryPoint": 8988, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_address": { - "entryPoint": 7703, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bool": { - "entryPoint": 7416, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes32": { - "entryPoint": 7530, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes4": { - "entryPoint": 7283, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_contract$_IVerifier_$8101": { - "entryPoint": 8349, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_rational_48_by_1": { - "entryPoint": 8875, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 7671, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 7966, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint48": { - "entryPoint": 7470, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint8": { - "entryPoint": 8885, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_ISciRegistry_$7736_to_t_address": { - "entryPoint": 8194, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_contract$_IVerifier_$8101_to_t_address": { - "entryPoint": 7891, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_rational_48_by_1_to_t_uint8": { - "entryPoint": 8898, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_uint160_to_t_address": { - "entryPoint": 7873, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_uint160_to_t_uint160": { - "entryPoint": 7839, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "identity": { - "entryPoint": 7829, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x11": { - "entryPoint": 8663, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 7278, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "validator_revert_t_address": { - "entryPoint": 7721, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes32": { - "entryPoint": 7540, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes4": { - "entryPoint": 7327, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_contract$_IVerifier_$8101": { - "entryPoint": 8367, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint48": { - "entryPoint": 8105, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:12929:39", - "nodeType": "YulBlock", - "src": "0:12929:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "378:105:39", - "nodeType": "YulBlock", - "src": "378:105:39", - "statements": [ - { - "nativeSrc": "388:89:39", - "nodeType": "YulAssignment", - "src": "388:89:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "403:5:39", - "nodeType": "YulIdentifier", - "src": "403:5:39" - }, - { - "kind": "number", - "nativeSrc": "410:66:39", - "nodeType": "YulLiteral", - "src": "410:66:39", - "type": "", - "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "399:3:39", - "nodeType": "YulIdentifier", - "src": "399:3:39" - }, - "nativeSrc": "399:78:39", - "nodeType": "YulFunctionCall", - "src": "399:78:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "388:7:39", - "nodeType": "YulIdentifier", - "src": "388:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes4", - "nativeSrc": "334:149:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "360:5:39", - "nodeType": "YulTypedName", - "src": "360:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "370:7:39", - "nodeType": "YulTypedName", - "src": "370:7:39", - "type": "" - } - ], - "src": "334:149:39" - }, - { - "body": { - "nativeSrc": "531:78:39", - "nodeType": "YulBlock", - "src": "531:78:39", - "statements": [ - { - "body": { - "nativeSrc": "587:16:39", - "nodeType": "YulBlock", - "src": "587:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "596:1:39", - "nodeType": "YulLiteral", - "src": "596:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "599:1:39", - "nodeType": "YulLiteral", - "src": "599:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "589:6:39", - "nodeType": "YulIdentifier", - "src": "589:6:39" - }, - "nativeSrc": "589:12:39", - "nodeType": "YulFunctionCall", - "src": "589:12:39" - }, - "nativeSrc": "589:12:39", - "nodeType": "YulExpressionStatement", - "src": "589:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "554:5:39", - "nodeType": "YulIdentifier", - "src": "554:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "578:5:39", - "nodeType": "YulIdentifier", - "src": "578:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes4", - "nativeSrc": "561:16:39", - "nodeType": "YulIdentifier", - "src": "561:16:39" - }, - "nativeSrc": "561:23:39", - "nodeType": "YulFunctionCall", - "src": "561:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "551:2:39", - "nodeType": "YulIdentifier", - "src": "551:2:39" - }, - "nativeSrc": "551:34:39", - "nodeType": "YulFunctionCall", - "src": "551:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "544:6:39", - "nodeType": "YulIdentifier", - "src": "544:6:39" - }, - "nativeSrc": "544:42:39", - "nodeType": "YulFunctionCall", - "src": "544:42:39" - }, - "nativeSrc": "541:62:39", - "nodeType": "YulIf", - "src": "541:62:39" - } - ] - }, - "name": "validator_revert_t_bytes4", - "nativeSrc": "489:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "524:5:39", - "nodeType": "YulTypedName", - "src": "524:5:39", - "type": "" - } - ], - "src": "489:120:39" - }, - { - "body": { - "nativeSrc": "666:86:39", - "nodeType": "YulBlock", - "src": "666:86:39", - "statements": [ - { - "nativeSrc": "676:29:39", - "nodeType": "YulAssignment", - "src": "676:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "698:6:39", - "nodeType": "YulIdentifier", - "src": "698:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "685:12:39", - "nodeType": "YulIdentifier", - "src": "685:12:39" - }, - "nativeSrc": "685:20:39", - "nodeType": "YulFunctionCall", - "src": "685:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "676:5:39", - "nodeType": "YulIdentifier", - "src": "676:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "740:5:39", - "nodeType": "YulIdentifier", - "src": "740:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes4", - "nativeSrc": "714:25:39", - "nodeType": "YulIdentifier", - "src": "714:25:39" - }, - "nativeSrc": "714:32:39", - "nodeType": "YulFunctionCall", - "src": "714:32:39" - }, - "nativeSrc": "714:32:39", - "nodeType": "YulExpressionStatement", - "src": "714:32:39" - } - ] - }, - "name": "abi_decode_t_bytes4", - "nativeSrc": "615:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "644:6:39", - "nodeType": "YulTypedName", - "src": "644:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "652:3:39", - "nodeType": "YulTypedName", - "src": "652:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "660:5:39", - "nodeType": "YulTypedName", - "src": "660:5:39", - "type": "" - } - ], - "src": "615:137:39" - }, - { - "body": { - "nativeSrc": "823:262:39", - "nodeType": "YulBlock", - "src": "823:262:39", - "statements": [ - { - "body": { - "nativeSrc": "869:83:39", - "nodeType": "YulBlock", - "src": "869:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "871:77:39", - "nodeType": "YulIdentifier", - "src": "871:77:39" - }, - "nativeSrc": "871:79:39", - "nodeType": "YulFunctionCall", - "src": "871:79:39" - }, - "nativeSrc": "871:79:39", - "nodeType": "YulExpressionStatement", - "src": "871:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "844:7:39", - "nodeType": "YulIdentifier", - "src": "844:7:39" - }, - { - "name": "headStart", - "nativeSrc": "853:9:39", - "nodeType": "YulIdentifier", - "src": "853:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "840:3:39", - "nodeType": "YulIdentifier", - "src": "840:3:39" - }, - "nativeSrc": "840:23:39", - "nodeType": "YulFunctionCall", - "src": "840:23:39" - }, - { - "kind": "number", - "nativeSrc": "865:2:39", - "nodeType": "YulLiteral", - "src": "865:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "836:3:39", - "nodeType": "YulIdentifier", - "src": "836:3:39" - }, - "nativeSrc": "836:32:39", - "nodeType": "YulFunctionCall", - "src": "836:32:39" - }, - "nativeSrc": "833:119:39", - "nodeType": "YulIf", - "src": "833:119:39" - }, - { - "nativeSrc": "962:116:39", - "nodeType": "YulBlock", - "src": "962:116:39", - "statements": [ - { - "nativeSrc": "977:15:39", - "nodeType": "YulVariableDeclaration", - "src": "977:15:39", - "value": { - "kind": "number", - "nativeSrc": "991:1:39", - "nodeType": "YulLiteral", - "src": "991:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "981:6:39", - "nodeType": "YulTypedName", - "src": "981:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1006:62:39", - "nodeType": "YulAssignment", - "src": "1006:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1040:9:39", - "nodeType": "YulIdentifier", - "src": "1040:9:39" - }, - { - "name": "offset", - "nativeSrc": "1051:6:39", - "nodeType": "YulIdentifier", - "src": "1051:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1036:3:39", - "nodeType": "YulIdentifier", - "src": "1036:3:39" - }, - "nativeSrc": "1036:22:39", - "nodeType": "YulFunctionCall", - "src": "1036:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1060:7:39", - "nodeType": "YulIdentifier", - "src": "1060:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes4", - "nativeSrc": "1016:19:39", - "nodeType": "YulIdentifier", - "src": "1016:19:39" - }, - "nativeSrc": "1016:52:39", - "nodeType": "YulFunctionCall", - "src": "1016:52:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1006:6:39", - "nodeType": "YulIdentifier", - "src": "1006:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes4", - "nativeSrc": "758:327:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "793:9:39", - "nodeType": "YulTypedName", - "src": "793:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "804:7:39", - "nodeType": "YulTypedName", - "src": "804:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "816:6:39", - "nodeType": "YulTypedName", - "src": "816:6:39", - "type": "" - } - ], - "src": "758:327:39" - }, - { - "body": { - "nativeSrc": "1133:48:39", - "nodeType": "YulBlock", - "src": "1133:48:39", - "statements": [ - { - "nativeSrc": "1143:32:39", - "nodeType": "YulAssignment", - "src": "1143:32:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1168:5:39", - "nodeType": "YulIdentifier", - "src": "1168:5:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1161:6:39", - "nodeType": "YulIdentifier", - "src": "1161:6:39" - }, - "nativeSrc": "1161:13:39", - "nodeType": "YulFunctionCall", - "src": "1161:13:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1154:6:39", - "nodeType": "YulIdentifier", - "src": "1154:6:39" - }, - "nativeSrc": "1154:21:39", - "nodeType": "YulFunctionCall", - "src": "1154:21:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1143:7:39", - "nodeType": "YulIdentifier", - "src": "1143:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bool", - "nativeSrc": "1091:90:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1115:5:39", - "nodeType": "YulTypedName", - "src": "1115:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1125:7:39", - "nodeType": "YulTypedName", - "src": "1125:7:39", - "type": "" - } - ], - "src": "1091:90:39" - }, - { - "body": { - "nativeSrc": "1246:50:39", - "nodeType": "YulBlock", - "src": "1246:50:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1263:3:39", - "nodeType": "YulIdentifier", - "src": "1263:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1283:5:39", - "nodeType": "YulIdentifier", - "src": "1283:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "1268:14:39", - "nodeType": "YulIdentifier", - "src": "1268:14:39" - }, - "nativeSrc": "1268:21:39", - "nodeType": "YulFunctionCall", - "src": "1268:21:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1256:6:39", - "nodeType": "YulIdentifier", - "src": "1256:6:39" - }, - "nativeSrc": "1256:34:39", - "nodeType": "YulFunctionCall", - "src": "1256:34:39" - }, - "nativeSrc": "1256:34:39", - "nodeType": "YulExpressionStatement", - "src": "1256:34:39" - } - ] - }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "1187:109:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1234:5:39", - "nodeType": "YulTypedName", - "src": "1234:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1241:3:39", - "nodeType": "YulTypedName", - "src": "1241:3:39", - "type": "" - } - ], - "src": "1187:109:39" - }, - { - "body": { - "nativeSrc": "1394:118:39", - "nodeType": "YulBlock", - "src": "1394:118:39", - "statements": [ - { - "nativeSrc": "1404:26:39", - "nodeType": "YulAssignment", - "src": "1404:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1416:9:39", - "nodeType": "YulIdentifier", - "src": "1416:9:39" - }, - { - "kind": "number", - "nativeSrc": "1427:2:39", - "nodeType": "YulLiteral", - "src": "1427:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1412:3:39", - "nodeType": "YulIdentifier", - "src": "1412:3:39" - }, - "nativeSrc": "1412:18:39", - "nodeType": "YulFunctionCall", - "src": "1412:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1404:4:39", - "nodeType": "YulIdentifier", - "src": "1404:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1478:6:39", - "nodeType": "YulIdentifier", - "src": "1478:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1491:9:39", - "nodeType": "YulIdentifier", - "src": "1491:9:39" - }, - { - "kind": "number", - "nativeSrc": "1502:1:39", - "nodeType": "YulLiteral", - "src": "1502:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1487:3:39", - "nodeType": "YulIdentifier", - "src": "1487:3:39" - }, - "nativeSrc": "1487:17:39", - "nodeType": "YulFunctionCall", - "src": "1487:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "1440:37:39", - "nodeType": "YulIdentifier", - "src": "1440:37:39" - }, - "nativeSrc": "1440:65:39", - "nodeType": "YulFunctionCall", - "src": "1440:65:39" - }, - "nativeSrc": "1440:65:39", - "nodeType": "YulExpressionStatement", - "src": "1440:65:39" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "1302:210:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1366:9:39", - "nodeType": "YulTypedName", - "src": "1366:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1378:6:39", - "nodeType": "YulTypedName", - "src": "1378:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1389:4:39", - "nodeType": "YulTypedName", - "src": "1389:4:39", - "type": "" - } - ], - "src": "1302:210:39" - }, - { - "body": { - "nativeSrc": "1562:53:39", - "nodeType": "YulBlock", - "src": "1562:53:39", - "statements": [ - { - "nativeSrc": "1572:37:39", - "nodeType": "YulAssignment", - "src": "1572:37:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1587:5:39", - "nodeType": "YulIdentifier", - "src": "1587:5:39" - }, - { - "kind": "number", - "nativeSrc": "1594:14:39", - "nodeType": "YulLiteral", - "src": "1594:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1583:3:39", - "nodeType": "YulIdentifier", - "src": "1583:3:39" - }, - "nativeSrc": "1583:26:39", - "nodeType": "YulFunctionCall", - "src": "1583:26:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1572:7:39", - "nodeType": "YulIdentifier", - "src": "1572:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint48", - "nativeSrc": "1518:97:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1544:5:39", - "nodeType": "YulTypedName", - "src": "1544:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1554:7:39", - "nodeType": "YulTypedName", - "src": "1554:7:39", - "type": "" - } - ], - "src": "1518:97:39" - }, - { - "body": { - "nativeSrc": "1684:52:39", - "nodeType": "YulBlock", - "src": "1684:52:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1701:3:39", - "nodeType": "YulIdentifier", - "src": "1701:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1723:5:39", - "nodeType": "YulIdentifier", - "src": "1723:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "1706:16:39", - "nodeType": "YulIdentifier", - "src": "1706:16:39" - }, - "nativeSrc": "1706:23:39", - "nodeType": "YulFunctionCall", - "src": "1706:23:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1694:6:39", - "nodeType": "YulIdentifier", - "src": "1694:6:39" - }, - "nativeSrc": "1694:36:39", - "nodeType": "YulFunctionCall", - "src": "1694:36:39" - }, - "nativeSrc": "1694:36:39", - "nodeType": "YulExpressionStatement", - "src": "1694:36:39" - } - ] - }, - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "1621:115:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1672:5:39", - "nodeType": "YulTypedName", - "src": "1672:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1679:3:39", - "nodeType": "YulTypedName", - "src": "1679:3:39", - "type": "" - } - ], - "src": "1621:115:39" - }, - { - "body": { - "nativeSrc": "1838:122:39", - "nodeType": "YulBlock", - "src": "1838:122:39", - "statements": [ - { - "nativeSrc": "1848:26:39", - "nodeType": "YulAssignment", - "src": "1848:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1860:9:39", - "nodeType": "YulIdentifier", - "src": "1860:9:39" - }, - { - "kind": "number", - "nativeSrc": "1871:2:39", - "nodeType": "YulLiteral", - "src": "1871:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1856:3:39", - "nodeType": "YulIdentifier", - "src": "1856:3:39" - }, - "nativeSrc": "1856:18:39", - "nodeType": "YulFunctionCall", - "src": "1856:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1848:4:39", - "nodeType": "YulIdentifier", - "src": "1848:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1926:6:39", - "nodeType": "YulIdentifier", - "src": "1926:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1939:9:39", - "nodeType": "YulIdentifier", - "src": "1939:9:39" - }, - { - "kind": "number", - "nativeSrc": "1950:1:39", - "nodeType": "YulLiteral", - "src": "1950:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1935:3:39", - "nodeType": "YulIdentifier", - "src": "1935:3:39" - }, - "nativeSrc": "1935:17:39", - "nodeType": "YulFunctionCall", - "src": "1935:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "1884:41:39", - "nodeType": "YulIdentifier", - "src": "1884:41:39" - }, - "nativeSrc": "1884:69:39", - "nodeType": "YulFunctionCall", - "src": "1884:69:39" - }, - "nativeSrc": "1884:69:39", - "nodeType": "YulExpressionStatement", - "src": "1884:69:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed", - "nativeSrc": "1742:218:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1810:9:39", - "nodeType": "YulTypedName", - "src": "1810:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1822:6:39", - "nodeType": "YulTypedName", - "src": "1822:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1833:4:39", - "nodeType": "YulTypedName", - "src": "1833:4:39", - "type": "" - } - ], - "src": "1742:218:39" - }, - { - "body": { - "nativeSrc": "2011:32:39", - "nodeType": "YulBlock", - "src": "2011:32:39", - "statements": [ - { - "nativeSrc": "2021:16:39", - "nodeType": "YulAssignment", - "src": "2021:16:39", - "value": { - "name": "value", - "nativeSrc": "2032:5:39", - "nodeType": "YulIdentifier", - "src": "2032:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "2021:7:39", - "nodeType": "YulIdentifier", - "src": "2021:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "1966:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1993:5:39", - "nodeType": "YulTypedName", - "src": "1993:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "2003:7:39", - "nodeType": "YulTypedName", - "src": "2003:7:39", - "type": "" - } - ], - "src": "1966:77:39" - }, - { - "body": { - "nativeSrc": "2092:79:39", - "nodeType": "YulBlock", - "src": "2092:79:39", - "statements": [ - { - "body": { - "nativeSrc": "2149:16:39", - "nodeType": "YulBlock", - "src": "2149:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2158:1:39", - "nodeType": "YulLiteral", - "src": "2158:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2161:1:39", - "nodeType": "YulLiteral", - "src": "2161:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2151:6:39", - "nodeType": "YulIdentifier", - "src": "2151:6:39" - }, - "nativeSrc": "2151:12:39", - "nodeType": "YulFunctionCall", - "src": "2151:12:39" - }, - "nativeSrc": "2151:12:39", - "nodeType": "YulExpressionStatement", - "src": "2151:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2115:5:39", - "nodeType": "YulIdentifier", - "src": "2115:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2140:5:39", - "nodeType": "YulIdentifier", - "src": "2140:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "2122:17:39", - "nodeType": "YulIdentifier", - "src": "2122:17:39" - }, - "nativeSrc": "2122:24:39", - "nodeType": "YulFunctionCall", - "src": "2122:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "2112:2:39", - "nodeType": "YulIdentifier", - "src": "2112:2:39" - }, - "nativeSrc": "2112:35:39", - "nodeType": "YulFunctionCall", - "src": "2112:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2105:6:39", - "nodeType": "YulIdentifier", - "src": "2105:6:39" - }, - "nativeSrc": "2105:43:39", - "nodeType": "YulFunctionCall", - "src": "2105:43:39" - }, - "nativeSrc": "2102:63:39", - "nodeType": "YulIf", - "src": "2102:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "2049:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2085:5:39", - "nodeType": "YulTypedName", - "src": "2085:5:39", - "type": "" - } - ], - "src": "2049:122:39" - }, - { - "body": { - "nativeSrc": "2229:87:39", - "nodeType": "YulBlock", - "src": "2229:87:39", - "statements": [ - { - "nativeSrc": "2239:29:39", - "nodeType": "YulAssignment", - "src": "2239:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2261:6:39", - "nodeType": "YulIdentifier", - "src": "2261:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2248:12:39", - "nodeType": "YulIdentifier", - "src": "2248:12:39" - }, - "nativeSrc": "2248:20:39", - "nodeType": "YulFunctionCall", - "src": "2248:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "2239:5:39", - "nodeType": "YulIdentifier", - "src": "2239:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2304:5:39", - "nodeType": "YulIdentifier", - "src": "2304:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "2277:26:39", - "nodeType": "YulIdentifier", - "src": "2277:26:39" - }, - "nativeSrc": "2277:33:39", - "nodeType": "YulFunctionCall", - "src": "2277:33:39" - }, - "nativeSrc": "2277:33:39", - "nodeType": "YulExpressionStatement", - "src": "2277:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "2177:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2207:6:39", - "nodeType": "YulTypedName", - "src": "2207:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2215:3:39", - "nodeType": "YulTypedName", - "src": "2215:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "2223:5:39", - "nodeType": "YulTypedName", - "src": "2223:5:39", - "type": "" - } - ], - "src": "2177:139:39" - }, - { - "body": { - "nativeSrc": "2388:263:39", - "nodeType": "YulBlock", - "src": "2388:263:39", - "statements": [ - { - "body": { - "nativeSrc": "2434:83:39", - "nodeType": "YulBlock", - "src": "2434:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2436:77:39", - "nodeType": "YulIdentifier", - "src": "2436:77:39" - }, - "nativeSrc": "2436:79:39", - "nodeType": "YulFunctionCall", - "src": "2436:79:39" - }, - "nativeSrc": "2436:79:39", - "nodeType": "YulExpressionStatement", - "src": "2436:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2409:7:39", - "nodeType": "YulIdentifier", - "src": "2409:7:39" - }, - { - "name": "headStart", - "nativeSrc": "2418:9:39", - "nodeType": "YulIdentifier", - "src": "2418:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2405:3:39", - "nodeType": "YulIdentifier", - "src": "2405:3:39" - }, - "nativeSrc": "2405:23:39", - "nodeType": "YulFunctionCall", - "src": "2405:23:39" - }, - { - "kind": "number", - "nativeSrc": "2430:2:39", - "nodeType": "YulLiteral", - "src": "2430:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2401:3:39", - "nodeType": "YulIdentifier", - "src": "2401:3:39" - }, - "nativeSrc": "2401:32:39", - "nodeType": "YulFunctionCall", - "src": "2401:32:39" - }, - "nativeSrc": "2398:119:39", - "nodeType": "YulIf", - "src": "2398:119:39" - }, - { - "nativeSrc": "2527:117:39", - "nodeType": "YulBlock", - "src": "2527:117:39", - "statements": [ - { - "nativeSrc": "2542:15:39", - "nodeType": "YulVariableDeclaration", - "src": "2542:15:39", - "value": { - "kind": "number", - "nativeSrc": "2556:1:39", - "nodeType": "YulLiteral", - "src": "2556:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2546:6:39", - "nodeType": "YulTypedName", - "src": "2546:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2571:63:39", - "nodeType": "YulAssignment", - "src": "2571:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2606:9:39", - "nodeType": "YulIdentifier", - "src": "2606:9:39" - }, - { - "name": "offset", - "nativeSrc": "2617:6:39", - "nodeType": "YulIdentifier", - "src": "2617:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2602:3:39", - "nodeType": "YulIdentifier", - "src": "2602:3:39" - }, - "nativeSrc": "2602:22:39", - "nodeType": "YulFunctionCall", - "src": "2602:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2626:7:39", - "nodeType": "YulIdentifier", - "src": "2626:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "2581:20:39", - "nodeType": "YulIdentifier", - "src": "2581:20:39" - }, - "nativeSrc": "2581:53:39", - "nodeType": "YulFunctionCall", - "src": "2581:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2571:6:39", - "nodeType": "YulIdentifier", - "src": "2571:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "2322:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2358:9:39", - "nodeType": "YulTypedName", - "src": "2358:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "2369:7:39", - "nodeType": "YulTypedName", - "src": "2369:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "2381:6:39", - "nodeType": "YulTypedName", - "src": "2381:6:39", - "type": "" - } - ], - "src": "2322:329:39" - }, - { - "body": { - "nativeSrc": "2722:53:39", - "nodeType": "YulBlock", - "src": "2722:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2739:3:39", - "nodeType": "YulIdentifier", - "src": "2739:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2762:5:39", - "nodeType": "YulIdentifier", - "src": "2762:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "2744:17:39", - "nodeType": "YulIdentifier", - "src": "2744:17:39" - }, - "nativeSrc": "2744:24:39", - "nodeType": "YulFunctionCall", - "src": "2744:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2732:6:39", - "nodeType": "YulIdentifier", - "src": "2732:6:39" - }, - "nativeSrc": "2732:37:39", - "nodeType": "YulFunctionCall", - "src": "2732:37:39" - }, - "nativeSrc": "2732:37:39", - "nodeType": "YulExpressionStatement", - "src": "2732:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2657:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2710:5:39", - "nodeType": "YulTypedName", - "src": "2710:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2717:3:39", - "nodeType": "YulTypedName", - "src": "2717:3:39", - "type": "" - } - ], - "src": "2657:118:39" - }, - { - "body": { - "nativeSrc": "2879:124:39", - "nodeType": "YulBlock", - "src": "2879:124:39", - "statements": [ - { - "nativeSrc": "2889:26:39", - "nodeType": "YulAssignment", - "src": "2889:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2901:9:39", - "nodeType": "YulIdentifier", - "src": "2901:9:39" - }, - { - "kind": "number", - "nativeSrc": "2912:2:39", - "nodeType": "YulLiteral", - "src": "2912:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2897:3:39", - "nodeType": "YulIdentifier", - "src": "2897:3:39" - }, - "nativeSrc": "2897:18:39", - "nodeType": "YulFunctionCall", - "src": "2897:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2889:4:39", - "nodeType": "YulIdentifier", - "src": "2889:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2969:6:39", - "nodeType": "YulIdentifier", - "src": "2969:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2982:9:39", - "nodeType": "YulIdentifier", - "src": "2982:9:39" - }, - { - "kind": "number", - "nativeSrc": "2993:1:39", - "nodeType": "YulLiteral", - "src": "2993:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2978:3:39", - "nodeType": "YulIdentifier", - "src": "2978:3:39" - }, - "nativeSrc": "2978:17:39", - "nodeType": "YulFunctionCall", - "src": "2978:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "2925:43:39", - "nodeType": "YulIdentifier", - "src": "2925:43:39" - }, - "nativeSrc": "2925:71:39", - "nodeType": "YulFunctionCall", - "src": "2925:71:39" - }, - "nativeSrc": "2925:71:39", - "nodeType": "YulExpressionStatement", - "src": "2925:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "2781:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2851:9:39", - "nodeType": "YulTypedName", - "src": "2851:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2863:6:39", - "nodeType": "YulTypedName", - "src": "2863:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2874:4:39", - "nodeType": "YulTypedName", - "src": "2874:4:39", - "type": "" - } - ], - "src": "2781:222:39" - }, - { - "body": { - "nativeSrc": "3054:81:39", - "nodeType": "YulBlock", - "src": "3054:81:39", - "statements": [ - { - "nativeSrc": "3064:65:39", - "nodeType": "YulAssignment", - "src": "3064:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3079:5:39", - "nodeType": "YulIdentifier", - "src": "3079:5:39" - }, - { - "kind": "number", - "nativeSrc": "3086:42:39", - "nodeType": "YulLiteral", - "src": "3086:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "3075:3:39", - "nodeType": "YulIdentifier", - "src": "3075:3:39" - }, - "nativeSrc": "3075:54:39", - "nodeType": "YulFunctionCall", - "src": "3075:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "3064:7:39", - "nodeType": "YulIdentifier", - "src": "3064:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "3009:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3036:5:39", - "nodeType": "YulTypedName", - "src": "3036:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "3046:7:39", - "nodeType": "YulTypedName", - "src": "3046:7:39", - "type": "" - } - ], - "src": "3009:126:39" - }, - { - "body": { - "nativeSrc": "3186:51:39", - "nodeType": "YulBlock", - "src": "3186:51:39", - "statements": [ - { - "nativeSrc": "3196:35:39", - "nodeType": "YulAssignment", - "src": "3196:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3225:5:39", - "nodeType": "YulIdentifier", - "src": "3225:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "3207:17:39", - "nodeType": "YulIdentifier", - "src": "3207:17:39" - }, - "nativeSrc": "3207:24:39", - "nodeType": "YulFunctionCall", - "src": "3207:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "3196:7:39", - "nodeType": "YulIdentifier", - "src": "3196:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "3141:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3168:5:39", - "nodeType": "YulTypedName", - "src": "3168:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "3178:7:39", - "nodeType": "YulTypedName", - "src": "3178:7:39", - "type": "" - } - ], - "src": "3141:96:39" - }, - { - "body": { - "nativeSrc": "3286:79:39", - "nodeType": "YulBlock", - "src": "3286:79:39", - "statements": [ - { - "body": { - "nativeSrc": "3343:16:39", - "nodeType": "YulBlock", - "src": "3343:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3352:1:39", - "nodeType": "YulLiteral", - "src": "3352:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3355:1:39", - "nodeType": "YulLiteral", - "src": "3355:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3345:6:39", - "nodeType": "YulIdentifier", - "src": "3345:6:39" - }, - "nativeSrc": "3345:12:39", - "nodeType": "YulFunctionCall", - "src": "3345:12:39" - }, - "nativeSrc": "3345:12:39", - "nodeType": "YulExpressionStatement", - "src": "3345:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3309:5:39", - "nodeType": "YulIdentifier", - "src": "3309:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3334:5:39", - "nodeType": "YulIdentifier", - "src": "3334:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "3316:17:39", - "nodeType": "YulIdentifier", - "src": "3316:17:39" - }, - "nativeSrc": "3316:24:39", - "nodeType": "YulFunctionCall", - "src": "3316:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3306:2:39", - "nodeType": "YulIdentifier", - "src": "3306:2:39" - }, - "nativeSrc": "3306:35:39", - "nodeType": "YulFunctionCall", - "src": "3306:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3299:6:39", - "nodeType": "YulIdentifier", - "src": "3299:6:39" - }, - "nativeSrc": "3299:43:39", - "nodeType": "YulFunctionCall", - "src": "3299:43:39" - }, - "nativeSrc": "3296:63:39", - "nodeType": "YulIf", - "src": "3296:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "3243:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3279:5:39", - "nodeType": "YulTypedName", - "src": "3279:5:39", - "type": "" - } - ], - "src": "3243:122:39" - }, - { - "body": { - "nativeSrc": "3423:87:39", - "nodeType": "YulBlock", - "src": "3423:87:39", - "statements": [ - { - "nativeSrc": "3433:29:39", - "nodeType": "YulAssignment", - "src": "3433:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3455:6:39", - "nodeType": "YulIdentifier", - "src": "3455:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3442:12:39", - "nodeType": "YulIdentifier", - "src": "3442:12:39" - }, - "nativeSrc": "3442:20:39", - "nodeType": "YulFunctionCall", - "src": "3442:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "3433:5:39", - "nodeType": "YulIdentifier", - "src": "3433:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3498:5:39", - "nodeType": "YulIdentifier", - "src": "3498:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "3471:26:39", - "nodeType": "YulIdentifier", - "src": "3471:26:39" - }, - "nativeSrc": "3471:33:39", - "nodeType": "YulFunctionCall", - "src": "3471:33:39" - }, - "nativeSrc": "3471:33:39", - "nodeType": "YulExpressionStatement", - "src": "3471:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "3371:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3401:6:39", - "nodeType": "YulTypedName", - "src": "3401:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3409:3:39", - "nodeType": "YulTypedName", - "src": "3409:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "3417:5:39", - "nodeType": "YulTypedName", - "src": "3417:5:39", - "type": "" - } - ], - "src": "3371:139:39" - }, - { - "body": { - "nativeSrc": "3599:391:39", - "nodeType": "YulBlock", - "src": "3599:391:39", - "statements": [ - { - "body": { - "nativeSrc": "3645:83:39", - "nodeType": "YulBlock", - "src": "3645:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3647:77:39", - "nodeType": "YulIdentifier", - "src": "3647:77:39" - }, - "nativeSrc": "3647:79:39", - "nodeType": "YulFunctionCall", - "src": "3647:79:39" - }, - "nativeSrc": "3647:79:39", - "nodeType": "YulExpressionStatement", - "src": "3647:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3620:7:39", - "nodeType": "YulIdentifier", - "src": "3620:7:39" - }, - { - "name": "headStart", - "nativeSrc": "3629:9:39", - "nodeType": "YulIdentifier", - "src": "3629:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3616:3:39", - "nodeType": "YulIdentifier", - "src": "3616:3:39" - }, - "nativeSrc": "3616:23:39", - "nodeType": "YulFunctionCall", - "src": "3616:23:39" - }, - { - "kind": "number", - "nativeSrc": "3641:2:39", - "nodeType": "YulLiteral", - "src": "3641:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3612:3:39", - "nodeType": "YulIdentifier", - "src": "3612:3:39" - }, - "nativeSrc": "3612:32:39", - "nodeType": "YulFunctionCall", - "src": "3612:32:39" - }, - "nativeSrc": "3609:119:39", - "nodeType": "YulIf", - "src": "3609:119:39" - }, - { - "nativeSrc": "3738:117:39", - "nodeType": "YulBlock", - "src": "3738:117:39", - "statements": [ - { - "nativeSrc": "3753:15:39", - "nodeType": "YulVariableDeclaration", - "src": "3753:15:39", - "value": { - "kind": "number", - "nativeSrc": "3767:1:39", - "nodeType": "YulLiteral", - "src": "3767:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3757:6:39", - "nodeType": "YulTypedName", - "src": "3757:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3782:63:39", - "nodeType": "YulAssignment", - "src": "3782:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3817:9:39", - "nodeType": "YulIdentifier", - "src": "3817:9:39" - }, - { - "name": "offset", - "nativeSrc": "3828:6:39", - "nodeType": "YulIdentifier", - "src": "3828:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3813:3:39", - "nodeType": "YulIdentifier", - "src": "3813:3:39" - }, - "nativeSrc": "3813:22:39", - "nodeType": "YulFunctionCall", - "src": "3813:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3837:7:39", - "nodeType": "YulIdentifier", - "src": "3837:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "3792:20:39", - "nodeType": "YulIdentifier", - "src": "3792:20:39" - }, - "nativeSrc": "3792:53:39", - "nodeType": "YulFunctionCall", - "src": "3792:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3782:6:39", - "nodeType": "YulIdentifier", - "src": "3782:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "3865:118:39", - "nodeType": "YulBlock", - "src": "3865:118:39", - "statements": [ - { - "nativeSrc": "3880:16:39", - "nodeType": "YulVariableDeclaration", - "src": "3880:16:39", - "value": { - "kind": "number", - "nativeSrc": "3894:2:39", - "nodeType": "YulLiteral", - "src": "3894:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3884:6:39", - "nodeType": "YulTypedName", - "src": "3884:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "3910:63:39", - "nodeType": "YulAssignment", - "src": "3910:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3945:9:39", - "nodeType": "YulIdentifier", - "src": "3945:9:39" - }, - { - "name": "offset", - "nativeSrc": "3956:6:39", - "nodeType": "YulIdentifier", - "src": "3956:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3941:3:39", - "nodeType": "YulIdentifier", - "src": "3941:3:39" - }, - "nativeSrc": "3941:22:39", - "nodeType": "YulFunctionCall", - "src": "3941:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "3965:7:39", - "nodeType": "YulIdentifier", - "src": "3965:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "3920:20:39", - "nodeType": "YulIdentifier", - "src": "3920:20:39" - }, - "nativeSrc": "3920:53:39", - "nodeType": "YulFunctionCall", - "src": "3920:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3910:6:39", - "nodeType": "YulIdentifier", - "src": "3910:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_address", - "nativeSrc": "3516:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3561:9:39", - "nodeType": "YulTypedName", - "src": "3561:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3572:7:39", - "nodeType": "YulTypedName", - "src": "3572:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3584:6:39", - "nodeType": "YulTypedName", - "src": "3584:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3592:6:39", - "nodeType": "YulTypedName", - "src": "3592:6:39", - "type": "" - } - ], - "src": "3516:474:39" - }, - { - "body": { - "nativeSrc": "4028:28:39", - "nodeType": "YulBlock", - "src": "4028:28:39", - "statements": [ - { - "nativeSrc": "4038:12:39", - "nodeType": "YulAssignment", - "src": "4038:12:39", - "value": { - "name": "value", - "nativeSrc": "4045:5:39", - "nodeType": "YulIdentifier", - "src": "4045:5:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "4038:3:39", - "nodeType": "YulIdentifier", - "src": "4038:3:39" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "3996:60:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4014:5:39", - "nodeType": "YulTypedName", - "src": "4014:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "4024:3:39", - "nodeType": "YulTypedName", - "src": "4024:3:39", - "type": "" - } - ], - "src": "3996:60:39" - }, - { - "body": { - "nativeSrc": "4122:82:39", - "nodeType": "YulBlock", - "src": "4122:82:39", - "statements": [ - { - "nativeSrc": "4132:66:39", - "nodeType": "YulAssignment", - "src": "4132:66:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4190:5:39", - "nodeType": "YulIdentifier", - "src": "4190:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "4172:17:39", - "nodeType": "YulIdentifier", - "src": "4172:17:39" - }, - "nativeSrc": "4172:24:39", - "nodeType": "YulFunctionCall", - "src": "4172:24:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "4163:8:39", - "nodeType": "YulIdentifier", - "src": "4163:8:39" - }, - "nativeSrc": "4163:34:39", - "nodeType": "YulFunctionCall", - "src": "4163:34:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "4145:17:39", - "nodeType": "YulIdentifier", - "src": "4145:17:39" - }, - "nativeSrc": "4145:53:39", - "nodeType": "YulFunctionCall", - "src": "4145:53:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "4132:9:39", - "nodeType": "YulIdentifier", - "src": "4132:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "4062:142:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4102:5:39", - "nodeType": "YulTypedName", - "src": "4102:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "4112:9:39", - "nodeType": "YulTypedName", - "src": "4112:9:39", - "type": "" - } - ], - "src": "4062:142:39" - }, - { - "body": { - "nativeSrc": "4270:66:39", - "nodeType": "YulBlock", - "src": "4270:66:39", - "statements": [ - { - "nativeSrc": "4280:50:39", - "nodeType": "YulAssignment", - "src": "4280:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4324:5:39", - "nodeType": "YulIdentifier", - "src": "4324:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "4293:30:39", - "nodeType": "YulIdentifier", - "src": "4293:30:39" - }, - "nativeSrc": "4293:37:39", - "nodeType": "YulFunctionCall", - "src": "4293:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "4280:9:39", - "nodeType": "YulIdentifier", - "src": "4280:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "4210:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4250:5:39", - "nodeType": "YulTypedName", - "src": "4250:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "4260:9:39", - "nodeType": "YulTypedName", - "src": "4260:9:39", - "type": "" - } - ], - "src": "4210:126:39" - }, - { - "body": { - "nativeSrc": "4420:66:39", - "nodeType": "YulBlock", - "src": "4420:66:39", - "statements": [ - { - "nativeSrc": "4430:50:39", - "nodeType": "YulAssignment", - "src": "4430:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4474:5:39", - "nodeType": "YulIdentifier", - "src": "4474:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "4443:30:39", - "nodeType": "YulIdentifier", - "src": "4443:30:39" - }, - "nativeSrc": "4443:37:39", - "nodeType": "YulFunctionCall", - "src": "4443:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "4430:9:39", - "nodeType": "YulIdentifier", - "src": "4430:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "4342:144:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4400:5:39", - "nodeType": "YulTypedName", - "src": "4400:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "4410:9:39", - "nodeType": "YulTypedName", - "src": "4410:9:39", - "type": "" - } - ], - "src": "4342:144:39" - }, - { - "body": { - "nativeSrc": "4575:84:39", - "nodeType": "YulBlock", - "src": "4575:84:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4592:3:39", - "nodeType": "YulIdentifier", - "src": "4592:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4646:5:39", - "nodeType": "YulIdentifier", - "src": "4646:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_IVerifier_$8101_to_t_address", - "nativeSrc": "4597:48:39", - "nodeType": "YulIdentifier", - "src": "4597:48:39" - }, - "nativeSrc": "4597:55:39", - "nodeType": "YulFunctionCall", - "src": "4597:55:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4585:6:39", - "nodeType": "YulIdentifier", - "src": "4585:6:39" - }, - "nativeSrc": "4585:68:39", - "nodeType": "YulFunctionCall", - "src": "4585:68:39" - }, - "nativeSrc": "4585:68:39", - "nodeType": "YulExpressionStatement", - "src": "4585:68:39" - } - ] - }, - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "4492:167:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4563:5:39", - "nodeType": "YulTypedName", - "src": "4563:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4570:3:39", - "nodeType": "YulTypedName", - "src": "4570:3:39", - "type": "" - } - ], - "src": "4492:167:39" - }, - { - "body": { - "nativeSrc": "4781:142:39", - "nodeType": "YulBlock", - "src": "4781:142:39", - "statements": [ - { - "nativeSrc": "4791:26:39", - "nodeType": "YulAssignment", - "src": "4791:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4803:9:39", - "nodeType": "YulIdentifier", - "src": "4803:9:39" - }, - { - "kind": "number", - "nativeSrc": "4814:2:39", - "nodeType": "YulLiteral", - "src": "4814:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4799:3:39", - "nodeType": "YulIdentifier", - "src": "4799:3:39" - }, - "nativeSrc": "4799:18:39", - "nodeType": "YulFunctionCall", - "src": "4799:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4791:4:39", - "nodeType": "YulIdentifier", - "src": "4791:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4889:6:39", - "nodeType": "YulIdentifier", - "src": "4889:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4902:9:39", - "nodeType": "YulIdentifier", - "src": "4902:9:39" - }, - { - "kind": "number", - "nativeSrc": "4913:1:39", - "nodeType": "YulLiteral", - "src": "4913:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4898:3:39", - "nodeType": "YulIdentifier", - "src": "4898:3:39" - }, - "nativeSrc": "4898:17:39", - "nodeType": "YulFunctionCall", - "src": "4898:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "4827:61:39", - "nodeType": "YulIdentifier", - "src": "4827:61:39" - }, - "nativeSrc": "4827:89:39", - "nodeType": "YulFunctionCall", - "src": "4827:89:39" - }, - "nativeSrc": "4827:89:39", - "nodeType": "YulExpressionStatement", - "src": "4827:89:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_IVerifier_$8101__to_t_address__fromStack_reversed", - "nativeSrc": "4665:258:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4753:9:39", - "nodeType": "YulTypedName", - "src": "4753:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4765:6:39", - "nodeType": "YulTypedName", - "src": "4765:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4776:4:39", - "nodeType": "YulTypedName", - "src": "4776:4:39", - "type": "" - } - ], - "src": "4665:258:39" - }, - { - "body": { - "nativeSrc": "4994:53:39", - "nodeType": "YulBlock", - "src": "4994:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5011:3:39", - "nodeType": "YulIdentifier", - "src": "5011:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5034:5:39", - "nodeType": "YulIdentifier", - "src": "5034:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "5016:17:39", - "nodeType": "YulIdentifier", - "src": "5016:17:39" - }, - "nativeSrc": "5016:24:39", - "nodeType": "YulFunctionCall", - "src": "5016:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5004:6:39", - "nodeType": "YulIdentifier", - "src": "5004:6:39" - }, - "nativeSrc": "5004:37:39", - "nodeType": "YulFunctionCall", - "src": "5004:37:39" - }, - "nativeSrc": "5004:37:39", - "nodeType": "YulExpressionStatement", - "src": "5004:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4929:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4982:5:39", - "nodeType": "YulTypedName", - "src": "4982:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4989:3:39", - "nodeType": "YulTypedName", - "src": "4989:3:39", - "type": "" - } - ], - "src": "4929:118:39" - }, - { - "body": { - "nativeSrc": "5098:32:39", - "nodeType": "YulBlock", - "src": "5098:32:39", - "statements": [ - { - "nativeSrc": "5108:16:39", - "nodeType": "YulAssignment", - "src": "5108:16:39", - "value": { - "name": "value", - "nativeSrc": "5119:5:39", - "nodeType": "YulIdentifier", - "src": "5119:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "5108:7:39", - "nodeType": "YulIdentifier", - "src": "5108:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "5053:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5080:5:39", - "nodeType": "YulTypedName", - "src": "5080:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "5090:7:39", - "nodeType": "YulTypedName", - "src": "5090:7:39", - "type": "" - } - ], - "src": "5053:77:39" - }, - { - "body": { - "nativeSrc": "5201:53:39", - "nodeType": "YulBlock", - "src": "5201:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5218:3:39", - "nodeType": "YulIdentifier", - "src": "5218:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5241:5:39", - "nodeType": "YulIdentifier", - "src": "5241:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "5223:17:39", - "nodeType": "YulIdentifier", - "src": "5223:17:39" - }, - "nativeSrc": "5223:24:39", - "nodeType": "YulFunctionCall", - "src": "5223:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5211:6:39", - "nodeType": "YulIdentifier", - "src": "5211:6:39" - }, - "nativeSrc": "5211:37:39", - "nodeType": "YulFunctionCall", - "src": "5211:37:39" - }, - "nativeSrc": "5211:37:39", - "nodeType": "YulExpressionStatement", - "src": "5211:37:39" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "5136:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5189:5:39", - "nodeType": "YulTypedName", - "src": "5189:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5196:3:39", - "nodeType": "YulTypedName", - "src": "5196:3:39", - "type": "" - } - ], - "src": "5136:118:39" - }, - { - "body": { - "nativeSrc": "5460:389:39", - "nodeType": "YulBlock", - "src": "5460:389:39", - "statements": [ - { - "nativeSrc": "5470:27:39", - "nodeType": "YulAssignment", - "src": "5470:27:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5482:9:39", - "nodeType": "YulIdentifier", - "src": "5482:9:39" - }, - { - "kind": "number", - "nativeSrc": "5493:3:39", - "nodeType": "YulLiteral", - "src": "5493:3:39", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5478:3:39", - "nodeType": "YulIdentifier", - "src": "5478:3:39" - }, - "nativeSrc": "5478:19:39", - "nodeType": "YulFunctionCall", - "src": "5478:19:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5470:4:39", - "nodeType": "YulIdentifier", - "src": "5470:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5551:6:39", - "nodeType": "YulIdentifier", - "src": "5551:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5564:9:39", - "nodeType": "YulIdentifier", - "src": "5564:9:39" - }, - { - "kind": "number", - "nativeSrc": "5575:1:39", - "nodeType": "YulLiteral", - "src": "5575:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5560:3:39", - "nodeType": "YulIdentifier", - "src": "5560:3:39" - }, - "nativeSrc": "5560:17:39", - "nodeType": "YulFunctionCall", - "src": "5560:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "5507:43:39", - "nodeType": "YulIdentifier", - "src": "5507:43:39" - }, - "nativeSrc": "5507:71:39", - "nodeType": "YulFunctionCall", - "src": "5507:71:39" - }, - "nativeSrc": "5507:71:39", - "nodeType": "YulExpressionStatement", - "src": "5507:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "5650:6:39", - "nodeType": "YulIdentifier", - "src": "5650:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5663:9:39", - "nodeType": "YulIdentifier", - "src": "5663:9:39" - }, - { - "kind": "number", - "nativeSrc": "5674:2:39", - "nodeType": "YulLiteral", - "src": "5674:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5659:3:39", - "nodeType": "YulIdentifier", - "src": "5659:3:39" - }, - "nativeSrc": "5659:18:39", - "nodeType": "YulFunctionCall", - "src": "5659:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack", - "nativeSrc": "5588:61:39", - "nodeType": "YulIdentifier", - "src": "5588:61:39" - }, - "nativeSrc": "5588:90:39", - "nodeType": "YulFunctionCall", - "src": "5588:90:39" - }, - "nativeSrc": "5588:90:39", - "nodeType": "YulExpressionStatement", - "src": "5588:90:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "5732:6:39", - "nodeType": "YulIdentifier", - "src": "5732:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5745:9:39", - "nodeType": "YulIdentifier", - "src": "5745:9:39" - }, - { - "kind": "number", - "nativeSrc": "5756:2:39", - "nodeType": "YulLiteral", - "src": "5756:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5741:3:39", - "nodeType": "YulIdentifier", - "src": "5741:3:39" - }, - "nativeSrc": "5741:18:39", - "nodeType": "YulFunctionCall", - "src": "5741:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "5688:43:39", - "nodeType": "YulIdentifier", - "src": "5688:43:39" - }, - "nativeSrc": "5688:72:39", - "nodeType": "YulFunctionCall", - "src": "5688:72:39" - }, - "nativeSrc": "5688:72:39", - "nodeType": "YulExpressionStatement", - "src": "5688:72:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nativeSrc": "5814:6:39", - "nodeType": "YulIdentifier", - "src": "5814:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5827:9:39", - "nodeType": "YulIdentifier", - "src": "5827:9:39" - }, - { - "kind": "number", - "nativeSrc": "5838:2:39", - "nodeType": "YulLiteral", - "src": "5838:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5823:3:39", - "nodeType": "YulIdentifier", - "src": "5823:3:39" - }, - "nativeSrc": "5823:18:39", - "nodeType": "YulFunctionCall", - "src": "5823:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "5770:43:39", - "nodeType": "YulIdentifier", - "src": "5770:43:39" - }, - "nativeSrc": "5770:72:39", - "nodeType": "YulFunctionCall", - "src": "5770:72:39" - }, - "nativeSrc": "5770:72:39", - "nodeType": "YulExpressionStatement", - "src": "5770:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_contract$_IVerifier_$8101_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "5260:589:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5408:9:39", - "nodeType": "YulTypedName", - "src": "5408:9:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "5420:6:39", - "nodeType": "YulTypedName", - "src": "5420:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "5428:6:39", - "nodeType": "YulTypedName", - "src": "5428:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "5436:6:39", - "nodeType": "YulTypedName", - "src": "5436:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5444:6:39", - "nodeType": "YulTypedName", - "src": "5444:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5455:4:39", - "nodeType": "YulTypedName", - "src": "5455:4:39", - "type": "" - } - ], - "src": "5260:589:39" - }, - { - "body": { - "nativeSrc": "5921:263:39", - "nodeType": "YulBlock", - "src": "5921:263:39", - "statements": [ - { - "body": { - "nativeSrc": "5967:83:39", - "nodeType": "YulBlock", - "src": "5967:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "5969:77:39", - "nodeType": "YulIdentifier", - "src": "5969:77:39" - }, - "nativeSrc": "5969:79:39", - "nodeType": "YulFunctionCall", - "src": "5969:79:39" - }, - "nativeSrc": "5969:79:39", - "nodeType": "YulExpressionStatement", - "src": "5969:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "5942:7:39", - "nodeType": "YulIdentifier", - "src": "5942:7:39" - }, - { - "name": "headStart", - "nativeSrc": "5951:9:39", - "nodeType": "YulIdentifier", - "src": "5951:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5938:3:39", - "nodeType": "YulIdentifier", - "src": "5938:3:39" - }, - "nativeSrc": "5938:23:39", - "nodeType": "YulFunctionCall", - "src": "5938:23:39" - }, - { - "kind": "number", - "nativeSrc": "5963:2:39", - "nodeType": "YulLiteral", - "src": "5963:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "5934:3:39", - "nodeType": "YulIdentifier", - "src": "5934:3:39" - }, - "nativeSrc": "5934:32:39", - "nodeType": "YulFunctionCall", - "src": "5934:32:39" - }, - "nativeSrc": "5931:119:39", - "nodeType": "YulIf", - "src": "5931:119:39" - }, - { - "nativeSrc": "6060:117:39", - "nodeType": "YulBlock", - "src": "6060:117:39", - "statements": [ - { - "nativeSrc": "6075:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6075:15:39", - "value": { - "kind": "number", - "nativeSrc": "6089:1:39", - "nodeType": "YulLiteral", - "src": "6089:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6079:6:39", - "nodeType": "YulTypedName", - "src": "6079:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6104:63:39", - "nodeType": "YulAssignment", - "src": "6104:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6139:9:39", - "nodeType": "YulIdentifier", - "src": "6139:9:39" - }, - { - "name": "offset", - "nativeSrc": "6150:6:39", - "nodeType": "YulIdentifier", - "src": "6150:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6135:3:39", - "nodeType": "YulIdentifier", - "src": "6135:3:39" - }, - "nativeSrc": "6135:22:39", - "nodeType": "YulFunctionCall", - "src": "6135:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6159:7:39", - "nodeType": "YulIdentifier", - "src": "6159:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "6114:20:39", - "nodeType": "YulIdentifier", - "src": "6114:20:39" - }, - "nativeSrc": "6114:53:39", - "nodeType": "YulFunctionCall", - "src": "6114:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6104:6:39", - "nodeType": "YulIdentifier", - "src": "6104:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "5855:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5891:9:39", - "nodeType": "YulTypedName", - "src": "5891:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "5902:7:39", - "nodeType": "YulTypedName", - "src": "5902:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "5914:6:39", - "nodeType": "YulTypedName", - "src": "5914:6:39", - "type": "" - } - ], - "src": "5855:329:39" - }, - { - "body": { - "nativeSrc": "6232:78:39", - "nodeType": "YulBlock", - "src": "6232:78:39", - "statements": [ - { - "body": { - "nativeSrc": "6288:16:39", - "nodeType": "YulBlock", - "src": "6288:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6297:1:39", - "nodeType": "YulLiteral", - "src": "6297:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6300:1:39", - "nodeType": "YulLiteral", - "src": "6300:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6290:6:39", - "nodeType": "YulIdentifier", - "src": "6290:6:39" - }, - "nativeSrc": "6290:12:39", - "nodeType": "YulFunctionCall", - "src": "6290:12:39" - }, - "nativeSrc": "6290:12:39", - "nodeType": "YulExpressionStatement", - "src": "6290:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "6255:5:39", - "nodeType": "YulIdentifier", - "src": "6255:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "6279:5:39", - "nodeType": "YulIdentifier", - "src": "6279:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "6262:16:39", - "nodeType": "YulIdentifier", - "src": "6262:16:39" - }, - "nativeSrc": "6262:23:39", - "nodeType": "YulFunctionCall", - "src": "6262:23:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "6252:2:39", - "nodeType": "YulIdentifier", - "src": "6252:2:39" - }, - "nativeSrc": "6252:34:39", - "nodeType": "YulFunctionCall", - "src": "6252:34:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "6245:6:39", - "nodeType": "YulIdentifier", - "src": "6245:6:39" - }, - "nativeSrc": "6245:42:39", - "nodeType": "YulFunctionCall", - "src": "6245:42:39" - }, - "nativeSrc": "6242:62:39", - "nodeType": "YulIf", - "src": "6242:62:39" - } - ] - }, - "name": "validator_revert_t_uint48", - "nativeSrc": "6190:120:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "6225:5:39", - "nodeType": "YulTypedName", - "src": "6225:5:39", - "type": "" - } - ], - "src": "6190:120:39" - }, - { - "body": { - "nativeSrc": "6367:86:39", - "nodeType": "YulBlock", - "src": "6367:86:39", - "statements": [ - { - "nativeSrc": "6377:29:39", - "nodeType": "YulAssignment", - "src": "6377:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "6399:6:39", - "nodeType": "YulIdentifier", - "src": "6399:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "6386:12:39", - "nodeType": "YulIdentifier", - "src": "6386:12:39" - }, - "nativeSrc": "6386:20:39", - "nodeType": "YulFunctionCall", - "src": "6386:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "6377:5:39", - "nodeType": "YulIdentifier", - "src": "6377:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6441:5:39", - "nodeType": "YulIdentifier", - "src": "6441:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint48", - "nativeSrc": "6415:25:39", - "nodeType": "YulIdentifier", - "src": "6415:25:39" - }, - "nativeSrc": "6415:32:39", - "nodeType": "YulFunctionCall", - "src": "6415:32:39" - }, - "nativeSrc": "6415:32:39", - "nodeType": "YulExpressionStatement", - "src": "6415:32:39" - } - ] - }, - "name": "abi_decode_t_uint48", - "nativeSrc": "6316:137:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "6345:6:39", - "nodeType": "YulTypedName", - "src": "6345:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "6353:3:39", - "nodeType": "YulTypedName", - "src": "6353:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "6361:5:39", - "nodeType": "YulTypedName", - "src": "6361:5:39", - "type": "" - } - ], - "src": "6316:137:39" - }, - { - "body": { - "nativeSrc": "6524:262:39", - "nodeType": "YulBlock", - "src": "6524:262:39", - "statements": [ - { - "body": { - "nativeSrc": "6570:83:39", - "nodeType": "YulBlock", - "src": "6570:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "6572:77:39", - "nodeType": "YulIdentifier", - "src": "6572:77:39" - }, - "nativeSrc": "6572:79:39", - "nodeType": "YulFunctionCall", - "src": "6572:79:39" - }, - "nativeSrc": "6572:79:39", - "nodeType": "YulExpressionStatement", - "src": "6572:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6545:7:39", - "nodeType": "YulIdentifier", - "src": "6545:7:39" - }, - { - "name": "headStart", - "nativeSrc": "6554:9:39", - "nodeType": "YulIdentifier", - "src": "6554:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6541:3:39", - "nodeType": "YulIdentifier", - "src": "6541:3:39" - }, - "nativeSrc": "6541:23:39", - "nodeType": "YulFunctionCall", - "src": "6541:23:39" - }, - { - "kind": "number", - "nativeSrc": "6566:2:39", - "nodeType": "YulLiteral", - "src": "6566:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6537:3:39", - "nodeType": "YulIdentifier", - "src": "6537:3:39" - }, - "nativeSrc": "6537:32:39", - "nodeType": "YulFunctionCall", - "src": "6537:32:39" - }, - "nativeSrc": "6534:119:39", - "nodeType": "YulIf", - "src": "6534:119:39" - }, - { - "nativeSrc": "6663:116:39", - "nodeType": "YulBlock", - "src": "6663:116:39", - "statements": [ - { - "nativeSrc": "6678:15:39", - "nodeType": "YulVariableDeclaration", - "src": "6678:15:39", - "value": { - "kind": "number", - "nativeSrc": "6692:1:39", - "nodeType": "YulLiteral", - "src": "6692:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "6682:6:39", - "nodeType": "YulTypedName", - "src": "6682:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "6707:62:39", - "nodeType": "YulAssignment", - "src": "6707:62:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6741:9:39", - "nodeType": "YulIdentifier", - "src": "6741:9:39" - }, - { - "name": "offset", - "nativeSrc": "6752:6:39", - "nodeType": "YulIdentifier", - "src": "6752:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6737:3:39", - "nodeType": "YulIdentifier", - "src": "6737:3:39" - }, - "nativeSrc": "6737:22:39", - "nodeType": "YulFunctionCall", - "src": "6737:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "6761:7:39", - "nodeType": "YulIdentifier", - "src": "6761:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint48", - "nativeSrc": "6717:19:39", - "nodeType": "YulIdentifier", - "src": "6717:19:39" - }, - "nativeSrc": "6717:52:39", - "nodeType": "YulFunctionCall", - "src": "6717:52:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6707:6:39", - "nodeType": "YulIdentifier", - "src": "6707:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint48", - "nativeSrc": "6459:327:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6494:9:39", - "nodeType": "YulTypedName", - "src": "6494:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "6505:7:39", - "nodeType": "YulTypedName", - "src": "6505:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "6517:6:39", - "nodeType": "YulTypedName", - "src": "6517:6:39", - "type": "" - } - ], - "src": "6459:327:39" - }, - { - "body": { - "nativeSrc": "6873:66:39", - "nodeType": "YulBlock", - "src": "6873:66:39", - "statements": [ - { - "nativeSrc": "6883:50:39", - "nodeType": "YulAssignment", - "src": "6883:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6927:5:39", - "nodeType": "YulIdentifier", - "src": "6927:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "6896:30:39", - "nodeType": "YulIdentifier", - "src": "6896:30:39" - }, - "nativeSrc": "6896:37:39", - "nodeType": "YulFunctionCall", - "src": "6896:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "6883:9:39", - "nodeType": "YulIdentifier", - "src": "6883:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "6792:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "6853:5:39", - "nodeType": "YulTypedName", - "src": "6853:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "6863:9:39", - "nodeType": "YulTypedName", - "src": "6863:9:39", - "type": "" - } - ], - "src": "6792:147:39" - }, - { - "body": { - "nativeSrc": "7031:87:39", - "nodeType": "YulBlock", - "src": "7031:87:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7048:3:39", - "nodeType": "YulIdentifier", - "src": "7048:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "7105:5:39", - "nodeType": "YulIdentifier", - "src": "7105:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "7053:51:39", - "nodeType": "YulIdentifier", - "src": "7053:51:39" - }, - "nativeSrc": "7053:58:39", - "nodeType": "YulFunctionCall", - "src": "7053:58:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7041:6:39", - "nodeType": "YulIdentifier", - "src": "7041:6:39" - }, - "nativeSrc": "7041:71:39", - "nodeType": "YulFunctionCall", - "src": "7041:71:39" - }, - "nativeSrc": "7041:71:39", - "nodeType": "YulExpressionStatement", - "src": "7041:71:39" - } - ] - }, - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "6945:173:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7019:5:39", - "nodeType": "YulTypedName", - "src": "7019:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "7026:3:39", - "nodeType": "YulTypedName", - "src": "7026:3:39", - "type": "" - } - ], - "src": "6945:173:39" - }, - { - "body": { - "nativeSrc": "7243:145:39", - "nodeType": "YulBlock", - "src": "7243:145:39", - "statements": [ - { - "nativeSrc": "7253:26:39", - "nodeType": "YulAssignment", - "src": "7253:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7265:9:39", - "nodeType": "YulIdentifier", - "src": "7265:9:39" - }, - { - "kind": "number", - "nativeSrc": "7276:2:39", - "nodeType": "YulLiteral", - "src": "7276:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7261:3:39", - "nodeType": "YulIdentifier", - "src": "7261:3:39" - }, - "nativeSrc": "7261:18:39", - "nodeType": "YulFunctionCall", - "src": "7261:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7253:4:39", - "nodeType": "YulIdentifier", - "src": "7253:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7354:6:39", - "nodeType": "YulIdentifier", - "src": "7354:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7367:9:39", - "nodeType": "YulIdentifier", - "src": "7367:9:39" - }, - { - "kind": "number", - "nativeSrc": "7378:1:39", - "nodeType": "YulLiteral", - "src": "7378:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7363:3:39", - "nodeType": "YulIdentifier", - "src": "7363:3:39" - }, - "nativeSrc": "7363:17:39", - "nodeType": "YulFunctionCall", - "src": "7363:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "7289:64:39", - "nodeType": "YulIdentifier", - "src": "7289:64:39" - }, - "nativeSrc": "7289:92:39", - "nodeType": "YulFunctionCall", - "src": "7289:92:39" - }, - "nativeSrc": "7289:92:39", - "nodeType": "YulExpressionStatement", - "src": "7289:92:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed", - "nativeSrc": "7124:264:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7215:9:39", - "nodeType": "YulTypedName", - "src": "7215:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7227:6:39", - "nodeType": "YulTypedName", - "src": "7227:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7238:4:39", - "nodeType": "YulTypedName", - "src": "7238:4:39", - "type": "" - } - ], - "src": "7124:264:39" - }, - { - "body": { - "nativeSrc": "7492:124:39", - "nodeType": "YulBlock", - "src": "7492:124:39", - "statements": [ - { - "nativeSrc": "7502:26:39", - "nodeType": "YulAssignment", - "src": "7502:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7514:9:39", - "nodeType": "YulIdentifier", - "src": "7514:9:39" - }, - { - "kind": "number", - "nativeSrc": "7525:2:39", - "nodeType": "YulLiteral", - "src": "7525:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7510:3:39", - "nodeType": "YulIdentifier", - "src": "7510:3:39" - }, - "nativeSrc": "7510:18:39", - "nodeType": "YulFunctionCall", - "src": "7510:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7502:4:39", - "nodeType": "YulIdentifier", - "src": "7502:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7582:6:39", - "nodeType": "YulIdentifier", - "src": "7582:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7595:9:39", - "nodeType": "YulIdentifier", - "src": "7595:9:39" - }, - { - "kind": "number", - "nativeSrc": "7606:1:39", - "nodeType": "YulLiteral", - "src": "7606:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7591:3:39", - "nodeType": "YulIdentifier", - "src": "7591:3:39" - }, - "nativeSrc": "7591:17:39", - "nodeType": "YulFunctionCall", - "src": "7591:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "7538:43:39", - "nodeType": "YulIdentifier", - "src": "7538:43:39" - }, - "nativeSrc": "7538:71:39", - "nodeType": "YulFunctionCall", - "src": "7538:71:39" - }, - "nativeSrc": "7538:71:39", - "nodeType": "YulExpressionStatement", - "src": "7538:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "7394:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7464:9:39", - "nodeType": "YulTypedName", - "src": "7464:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7476:6:39", - "nodeType": "YulTypedName", - "src": "7476:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7487:4:39", - "nodeType": "YulTypedName", - "src": "7487:4:39", - "type": "" - } - ], - "src": "7394:222:39" - }, - { - "body": { - "nativeSrc": "7744:202:39", - "nodeType": "YulBlock", - "src": "7744:202:39", - "statements": [ - { - "nativeSrc": "7754:26:39", - "nodeType": "YulAssignment", - "src": "7754:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7766:9:39", - "nodeType": "YulIdentifier", - "src": "7766:9:39" - }, - { - "kind": "number", - "nativeSrc": "7777:2:39", - "nodeType": "YulLiteral", - "src": "7777:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7762:3:39", - "nodeType": "YulIdentifier", - "src": "7762:3:39" - }, - "nativeSrc": "7762:18:39", - "nodeType": "YulFunctionCall", - "src": "7762:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7754:4:39", - "nodeType": "YulIdentifier", - "src": "7754:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7832:6:39", - "nodeType": "YulIdentifier", - "src": "7832:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7845:9:39", - "nodeType": "YulIdentifier", - "src": "7845:9:39" - }, - { - "kind": "number", - "nativeSrc": "7856:1:39", - "nodeType": "YulLiteral", - "src": "7856:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7841:3:39", - "nodeType": "YulIdentifier", - "src": "7841:3:39" - }, - "nativeSrc": "7841:17:39", - "nodeType": "YulFunctionCall", - "src": "7841:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "7790:41:39", - "nodeType": "YulIdentifier", - "src": "7790:41:39" - }, - "nativeSrc": "7790:69:39", - "nodeType": "YulFunctionCall", - "src": "7790:69:39" - }, - "nativeSrc": "7790:69:39", - "nodeType": "YulExpressionStatement", - "src": "7790:69:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "7911:6:39", - "nodeType": "YulIdentifier", - "src": "7911:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7924:9:39", - "nodeType": "YulIdentifier", - "src": "7924:9:39" - }, - { - "kind": "number", - "nativeSrc": "7935:2:39", - "nodeType": "YulLiteral", - "src": "7935:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7920:3:39", - "nodeType": "YulIdentifier", - "src": "7920:3:39" - }, - "nativeSrc": "7920:18:39", - "nodeType": "YulFunctionCall", - "src": "7920:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "7869:41:39", - "nodeType": "YulIdentifier", - "src": "7869:41:39" - }, - "nativeSrc": "7869:70:39", - "nodeType": "YulFunctionCall", - "src": "7869:70:39" - }, - "nativeSrc": "7869:70:39", - "nodeType": "YulExpressionStatement", - "src": "7869:70:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed", - "nativeSrc": "7622:324:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7708:9:39", - "nodeType": "YulTypedName", - "src": "7708:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7720:6:39", - "nodeType": "YulTypedName", - "src": "7720:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7728:6:39", - "nodeType": "YulTypedName", - "src": "7728:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7739:4:39", - "nodeType": "YulTypedName", - "src": "7739:4:39", - "type": "" - } - ], - "src": "7622:324:39" - }, - { - "body": { - "nativeSrc": "8050:124:39", - "nodeType": "YulBlock", - "src": "8050:124:39", - "statements": [ - { - "nativeSrc": "8060:26:39", - "nodeType": "YulAssignment", - "src": "8060:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8072:9:39", - "nodeType": "YulIdentifier", - "src": "8072:9:39" - }, - { - "kind": "number", - "nativeSrc": "8083:2:39", - "nodeType": "YulLiteral", - "src": "8083:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8068:3:39", - "nodeType": "YulIdentifier", - "src": "8068:3:39" - }, - "nativeSrc": "8068:18:39", - "nodeType": "YulFunctionCall", - "src": "8068:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8060:4:39", - "nodeType": "YulIdentifier", - "src": "8060:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8140:6:39", - "nodeType": "YulIdentifier", - "src": "8140:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8153:9:39", - "nodeType": "YulIdentifier", - "src": "8153:9:39" - }, - { - "kind": "number", - "nativeSrc": "8164:1:39", - "nodeType": "YulLiteral", - "src": "8164:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8149:3:39", - "nodeType": "YulIdentifier", - "src": "8149:3:39" - }, - "nativeSrc": "8149:17:39", - "nodeType": "YulFunctionCall", - "src": "8149:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "8096:43:39", - "nodeType": "YulIdentifier", - "src": "8096:43:39" - }, - "nativeSrc": "8096:71:39", - "nodeType": "YulFunctionCall", - "src": "8096:71:39" - }, - "nativeSrc": "8096:71:39", - "nodeType": "YulExpressionStatement", - "src": "8096:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "7952:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8022:9:39", - "nodeType": "YulTypedName", - "src": "8022:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8034:6:39", - "nodeType": "YulTypedName", - "src": "8034:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8045:4:39", - "nodeType": "YulTypedName", - "src": "8045:4:39", - "type": "" - } - ], - "src": "7952:222:39" - }, - { - "body": { - "nativeSrc": "8243:51:39", - "nodeType": "YulBlock", - "src": "8243:51:39", - "statements": [ - { - "nativeSrc": "8253:35:39", - "nodeType": "YulAssignment", - "src": "8253:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8282:5:39", - "nodeType": "YulIdentifier", - "src": "8282:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "8264:17:39", - "nodeType": "YulIdentifier", - "src": "8264:17:39" - }, - "nativeSrc": "8264:24:39", - "nodeType": "YulFunctionCall", - "src": "8264:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "8253:7:39", - "nodeType": "YulIdentifier", - "src": "8253:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "8180:114:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8225:5:39", - "nodeType": "YulTypedName", - "src": "8225:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "8235:7:39", - "nodeType": "YulTypedName", - "src": "8235:7:39", - "type": "" - } - ], - "src": "8180:114:39" - }, - { - "body": { - "nativeSrc": "8361:97:39", - "nodeType": "YulBlock", - "src": "8361:97:39", - "statements": [ - { - "body": { - "nativeSrc": "8436:16:39", - "nodeType": "YulBlock", - "src": "8436:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8445:1:39", - "nodeType": "YulLiteral", - "src": "8445:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8448:1:39", - "nodeType": "YulLiteral", - "src": "8448:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "8438:6:39", - "nodeType": "YulIdentifier", - "src": "8438:6:39" - }, - "nativeSrc": "8438:12:39", - "nodeType": "YulFunctionCall", - "src": "8438:12:39" - }, - "nativeSrc": "8438:12:39", - "nodeType": "YulExpressionStatement", - "src": "8438:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "8384:5:39", - "nodeType": "YulIdentifier", - "src": "8384:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "8427:5:39", - "nodeType": "YulIdentifier", - "src": "8427:5:39" - } - ], - "functionName": { - "name": "cleanup_t_contract$_IVerifier_$8101", - "nativeSrc": "8391:35:39", - "nodeType": "YulIdentifier", - "src": "8391:35:39" - }, - "nativeSrc": "8391:42:39", - "nodeType": "YulFunctionCall", - "src": "8391:42:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "8381:2:39", - "nodeType": "YulIdentifier", - "src": "8381:2:39" - }, - "nativeSrc": "8381:53:39", - "nodeType": "YulFunctionCall", - "src": "8381:53:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "8374:6:39", - "nodeType": "YulIdentifier", - "src": "8374:6:39" - }, - "nativeSrc": "8374:61:39", - "nodeType": "YulFunctionCall", - "src": "8374:61:39" - }, - "nativeSrc": "8371:81:39", - "nodeType": "YulIf", - "src": "8371:81:39" - } - ] - }, - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "8300:158:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8354:5:39", - "nodeType": "YulTypedName", - "src": "8354:5:39", - "type": "" - } - ], - "src": "8300:158:39" - }, - { - "body": { - "nativeSrc": "8534:105:39", - "nodeType": "YulBlock", - "src": "8534:105:39", - "statements": [ - { - "nativeSrc": "8544:29:39", - "nodeType": "YulAssignment", - "src": "8544:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "8566:6:39", - "nodeType": "YulIdentifier", - "src": "8566:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "8553:12:39", - "nodeType": "YulIdentifier", - "src": "8553:12:39" - }, - "nativeSrc": "8553:20:39", - "nodeType": "YulFunctionCall", - "src": "8553:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "8544:5:39", - "nodeType": "YulIdentifier", - "src": "8544:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8627:5:39", - "nodeType": "YulIdentifier", - "src": "8627:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_IVerifier_$8101", - "nativeSrc": "8582:44:39", - "nodeType": "YulIdentifier", - "src": "8582:44:39" - }, - "nativeSrc": "8582:51:39", - "nodeType": "YulFunctionCall", - "src": "8582:51:39" - }, - "nativeSrc": "8582:51:39", - "nodeType": "YulExpressionStatement", - "src": "8582:51:39" - } - ] - }, - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "8464:175:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "8512:6:39", - "nodeType": "YulTypedName", - "src": "8512:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "8520:3:39", - "nodeType": "YulTypedName", - "src": "8520:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "8528:5:39", - "nodeType": "YulTypedName", - "src": "8528:5:39", - "type": "" - } - ], - "src": "8464:175:39" - }, - { - "body": { - "nativeSrc": "8746:409:39", - "nodeType": "YulBlock", - "src": "8746:409:39", - "statements": [ - { - "body": { - "nativeSrc": "8792:83:39", - "nodeType": "YulBlock", - "src": "8792:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "8794:77:39", - "nodeType": "YulIdentifier", - "src": "8794:77:39" - }, - "nativeSrc": "8794:79:39", - "nodeType": "YulFunctionCall", - "src": "8794:79:39" - }, - "nativeSrc": "8794:79:39", - "nodeType": "YulExpressionStatement", - "src": "8794:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "8767:7:39", - "nodeType": "YulIdentifier", - "src": "8767:7:39" - }, - { - "name": "headStart", - "nativeSrc": "8776:9:39", - "nodeType": "YulIdentifier", - "src": "8776:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "8763:3:39", - "nodeType": "YulIdentifier", - "src": "8763:3:39" - }, - "nativeSrc": "8763:23:39", - "nodeType": "YulFunctionCall", - "src": "8763:23:39" - }, - { - "kind": "number", - "nativeSrc": "8788:2:39", - "nodeType": "YulLiteral", - "src": "8788:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "8759:3:39", - "nodeType": "YulIdentifier", - "src": "8759:3:39" - }, - "nativeSrc": "8759:32:39", - "nodeType": "YulFunctionCall", - "src": "8759:32:39" - }, - "nativeSrc": "8756:119:39", - "nodeType": "YulIf", - "src": "8756:119:39" - }, - { - "nativeSrc": "8885:117:39", - "nodeType": "YulBlock", - "src": "8885:117:39", - "statements": [ - { - "nativeSrc": "8900:15:39", - "nodeType": "YulVariableDeclaration", - "src": "8900:15:39", - "value": { - "kind": "number", - "nativeSrc": "8914:1:39", - "nodeType": "YulLiteral", - "src": "8914:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8904:6:39", - "nodeType": "YulTypedName", - "src": "8904:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "8929:63:39", - "nodeType": "YulAssignment", - "src": "8929:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8964:9:39", - "nodeType": "YulIdentifier", - "src": "8964:9:39" - }, - { - "name": "offset", - "nativeSrc": "8975:6:39", - "nodeType": "YulIdentifier", - "src": "8975:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8960:3:39", - "nodeType": "YulIdentifier", - "src": "8960:3:39" - }, - "nativeSrc": "8960:22:39", - "nodeType": "YulFunctionCall", - "src": "8960:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "8984:7:39", - "nodeType": "YulIdentifier", - "src": "8984:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "8939:20:39", - "nodeType": "YulIdentifier", - "src": "8939:20:39" - }, - "nativeSrc": "8939:53:39", - "nodeType": "YulFunctionCall", - "src": "8939:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "8929:6:39", - "nodeType": "YulIdentifier", - "src": "8929:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "9012:136:39", - "nodeType": "YulBlock", - "src": "9012:136:39", - "statements": [ - { - "nativeSrc": "9027:16:39", - "nodeType": "YulVariableDeclaration", - "src": "9027:16:39", - "value": { - "kind": "number", - "nativeSrc": "9041:2:39", - "nodeType": "YulLiteral", - "src": "9041:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "9031:6:39", - "nodeType": "YulTypedName", - "src": "9031:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "9057:81:39", - "nodeType": "YulAssignment", - "src": "9057:81:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9110:9:39", - "nodeType": "YulIdentifier", - "src": "9110:9:39" - }, - { - "name": "offset", - "nativeSrc": "9121:6:39", - "nodeType": "YulIdentifier", - "src": "9121:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9106:3:39", - "nodeType": "YulIdentifier", - "src": "9106:3:39" - }, - "nativeSrc": "9106:22:39", - "nodeType": "YulFunctionCall", - "src": "9106:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "9130:7:39", - "nodeType": "YulIdentifier", - "src": "9130:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "9067:38:39", - "nodeType": "YulIdentifier", - "src": "9067:38:39" - }, - "nativeSrc": "9067:71:39", - "nodeType": "YulFunctionCall", - "src": "9067:71:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "9057:6:39", - "nodeType": "YulIdentifier", - "src": "9057:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8101", - "nativeSrc": "8645:510:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8708:9:39", - "nodeType": "YulTypedName", - "src": "8708:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "8719:7:39", - "nodeType": "YulTypedName", - "src": "8719:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "8731:6:39", - "nodeType": "YulTypedName", - "src": "8731:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8739:6:39", - "nodeType": "YulTypedName", - "src": "8739:6:39", - "type": "" - } - ], - "src": "8645:510:39" - }, - { - "body": { - "nativeSrc": "9244:391:39", - "nodeType": "YulBlock", - "src": "9244:391:39", - "statements": [ - { - "body": { - "nativeSrc": "9290:83:39", - "nodeType": "YulBlock", - "src": "9290:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "9292:77:39", - "nodeType": "YulIdentifier", - "src": "9292:77:39" - }, - "nativeSrc": "9292:79:39", - "nodeType": "YulFunctionCall", - "src": "9292:79:39" - }, - "nativeSrc": "9292:79:39", - "nodeType": "YulExpressionStatement", - "src": "9292:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "9265:7:39", - "nodeType": "YulIdentifier", - "src": "9265:7:39" - }, - { - "name": "headStart", - "nativeSrc": "9274:9:39", - "nodeType": "YulIdentifier", - "src": "9274:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "9261:3:39", - "nodeType": "YulIdentifier", - "src": "9261:3:39" - }, - "nativeSrc": "9261:23:39", - "nodeType": "YulFunctionCall", - "src": "9261:23:39" - }, - { - "kind": "number", - "nativeSrc": "9286:2:39", - "nodeType": "YulLiteral", - "src": "9286:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "9257:3:39", - "nodeType": "YulIdentifier", - "src": "9257:3:39" - }, - "nativeSrc": "9257:32:39", - "nodeType": "YulFunctionCall", - "src": "9257:32:39" - }, - "nativeSrc": "9254:119:39", - "nodeType": "YulIf", - "src": "9254:119:39" - }, - { - "nativeSrc": "9383:117:39", - "nodeType": "YulBlock", - "src": "9383:117:39", - "statements": [ - { - "nativeSrc": "9398:15:39", - "nodeType": "YulVariableDeclaration", - "src": "9398:15:39", - "value": { - "kind": "number", - "nativeSrc": "9412:1:39", - "nodeType": "YulLiteral", - "src": "9412:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "9402:6:39", - "nodeType": "YulTypedName", - "src": "9402:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "9427:63:39", - "nodeType": "YulAssignment", - "src": "9427:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9462:9:39", - "nodeType": "YulIdentifier", - "src": "9462:9:39" - }, - { - "name": "offset", - "nativeSrc": "9473:6:39", - "nodeType": "YulIdentifier", - "src": "9473:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9458:3:39", - "nodeType": "YulIdentifier", - "src": "9458:3:39" - }, - "nativeSrc": "9458:22:39", - "nodeType": "YulFunctionCall", - "src": "9458:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "9482:7:39", - "nodeType": "YulIdentifier", - "src": "9482:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "9437:20:39", - "nodeType": "YulIdentifier", - "src": "9437:20:39" - }, - "nativeSrc": "9437:53:39", - "nodeType": "YulFunctionCall", - "src": "9437:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "9427:6:39", - "nodeType": "YulIdentifier", - "src": "9427:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "9510:118:39", - "nodeType": "YulBlock", - "src": "9510:118:39", - "statements": [ - { - "nativeSrc": "9525:16:39", - "nodeType": "YulVariableDeclaration", - "src": "9525:16:39", - "value": { - "kind": "number", - "nativeSrc": "9539:2:39", - "nodeType": "YulLiteral", - "src": "9539:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "9529:6:39", - "nodeType": "YulTypedName", - "src": "9529:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "9555:63:39", - "nodeType": "YulAssignment", - "src": "9555:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9590:9:39", - "nodeType": "YulIdentifier", - "src": "9590:9:39" - }, - { - "name": "offset", - "nativeSrc": "9601:6:39", - "nodeType": "YulIdentifier", - "src": "9601:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9586:3:39", - "nodeType": "YulIdentifier", - "src": "9586:3:39" - }, - "nativeSrc": "9586:22:39", - "nodeType": "YulFunctionCall", - "src": "9586:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "9610:7:39", - "nodeType": "YulIdentifier", - "src": "9610:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "9565:20:39", - "nodeType": "YulIdentifier", - "src": "9565:20:39" - }, - "nativeSrc": "9565:53:39", - "nodeType": "YulFunctionCall", - "src": "9565:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "9555:6:39", - "nodeType": "YulIdentifier", - "src": "9555:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32", - "nativeSrc": "9161:474:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9206:9:39", - "nodeType": "YulTypedName", - "src": "9206:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "9217:7:39", - "nodeType": "YulTypedName", - "src": "9217:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "9229:6:39", - "nodeType": "YulTypedName", - "src": "9229:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "9237:6:39", - "nodeType": "YulTypedName", - "src": "9237:6:39", - "type": "" - } - ], - "src": "9161:474:39" - }, - { - "body": { - "nativeSrc": "9765:204:39", - "nodeType": "YulBlock", - "src": "9765:204:39", - "statements": [ - { - "nativeSrc": "9775:26:39", - "nodeType": "YulAssignment", - "src": "9775:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9787:9:39", - "nodeType": "YulIdentifier", - "src": "9787:9:39" - }, - { - "kind": "number", - "nativeSrc": "9798:2:39", - "nodeType": "YulLiteral", - "src": "9798:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9783:3:39", - "nodeType": "YulIdentifier", - "src": "9783:3:39" - }, - "nativeSrc": "9783:18:39", - "nodeType": "YulFunctionCall", - "src": "9783:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "9775:4:39", - "nodeType": "YulIdentifier", - "src": "9775:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "9855:6:39", - "nodeType": "YulIdentifier", - "src": "9855:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9868:9:39", - "nodeType": "YulIdentifier", - "src": "9868:9:39" - }, - { - "kind": "number", - "nativeSrc": "9879:1:39", - "nodeType": "YulLiteral", - "src": "9879:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9864:3:39", - "nodeType": "YulIdentifier", - "src": "9864:3:39" - }, - "nativeSrc": "9864:17:39", - "nodeType": "YulFunctionCall", - "src": "9864:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "9811:43:39", - "nodeType": "YulIdentifier", - "src": "9811:43:39" - }, - "nativeSrc": "9811:71:39", - "nodeType": "YulFunctionCall", - "src": "9811:71:39" - }, - "nativeSrc": "9811:71:39", - "nodeType": "YulExpressionStatement", - "src": "9811:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "9934:6:39", - "nodeType": "YulIdentifier", - "src": "9934:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9947:9:39", - "nodeType": "YulIdentifier", - "src": "9947:9:39" - }, - { - "kind": "number", - "nativeSrc": "9958:2:39", - "nodeType": "YulLiteral", - "src": "9958:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9943:3:39", - "nodeType": "YulIdentifier", - "src": "9943:3:39" - }, - "nativeSrc": "9943:18:39", - "nodeType": "YulFunctionCall", - "src": "9943:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint48_to_t_uint48_fromStack", - "nativeSrc": "9892:41:39", - "nodeType": "YulIdentifier", - "src": "9892:41:39" - }, - "nativeSrc": "9892:70:39", - "nodeType": "YulFunctionCall", - "src": "9892:70:39" - }, - "nativeSrc": "9892:70:39", - "nodeType": "YulExpressionStatement", - "src": "9892:70:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed", - "nativeSrc": "9641:328:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9729:9:39", - "nodeType": "YulTypedName", - "src": "9729:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "9741:6:39", - "nodeType": "YulTypedName", - "src": "9741:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "9749:6:39", - "nodeType": "YulTypedName", - "src": "9749:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "9760:4:39", - "nodeType": "YulTypedName", - "src": "9760:4:39", - "type": "" - } - ], - "src": "9641:328:39" - }, - { - "body": { - "nativeSrc": "10093:537:39", - "nodeType": "YulBlock", - "src": "10093:537:39", - "statements": [ - { - "body": { - "nativeSrc": "10139:83:39", - "nodeType": "YulBlock", - "src": "10139:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "10141:77:39", - "nodeType": "YulIdentifier", - "src": "10141:77:39" - }, - "nativeSrc": "10141:79:39", - "nodeType": "YulFunctionCall", - "src": "10141:79:39" - }, - "nativeSrc": "10141:79:39", - "nodeType": "YulExpressionStatement", - "src": "10141:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "10114:7:39", - "nodeType": "YulIdentifier", - "src": "10114:7:39" - }, - { - "name": "headStart", - "nativeSrc": "10123:9:39", - "nodeType": "YulIdentifier", - "src": "10123:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10110:3:39", - "nodeType": "YulIdentifier", - "src": "10110:3:39" - }, - "nativeSrc": "10110:23:39", - "nodeType": "YulFunctionCall", - "src": "10110:23:39" - }, - { - "kind": "number", - "nativeSrc": "10135:2:39", - "nodeType": "YulLiteral", - "src": "10135:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "10106:3:39", - "nodeType": "YulIdentifier", - "src": "10106:3:39" - }, - "nativeSrc": "10106:32:39", - "nodeType": "YulFunctionCall", - "src": "10106:32:39" - }, - "nativeSrc": "10103:119:39", - "nodeType": "YulIf", - "src": "10103:119:39" - }, - { - "nativeSrc": "10232:117:39", - "nodeType": "YulBlock", - "src": "10232:117:39", - "statements": [ - { - "nativeSrc": "10247:15:39", - "nodeType": "YulVariableDeclaration", - "src": "10247:15:39", - "value": { - "kind": "number", - "nativeSrc": "10261:1:39", - "nodeType": "YulLiteral", - "src": "10261:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "10251:6:39", - "nodeType": "YulTypedName", - "src": "10251:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "10276:63:39", - "nodeType": "YulAssignment", - "src": "10276:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10311:9:39", - "nodeType": "YulIdentifier", - "src": "10311:9:39" - }, - { - "name": "offset", - "nativeSrc": "10322:6:39", - "nodeType": "YulIdentifier", - "src": "10322:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10307:3:39", - "nodeType": "YulIdentifier", - "src": "10307:3:39" - }, - "nativeSrc": "10307:22:39", - "nodeType": "YulFunctionCall", - "src": "10307:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "10331:7:39", - "nodeType": "YulIdentifier", - "src": "10331:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "10286:20:39", - "nodeType": "YulIdentifier", - "src": "10286:20:39" - }, - "nativeSrc": "10286:53:39", - "nodeType": "YulFunctionCall", - "src": "10286:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "10276:6:39", - "nodeType": "YulIdentifier", - "src": "10276:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "10359:118:39", - "nodeType": "YulBlock", - "src": "10359:118:39", - "statements": [ - { - "nativeSrc": "10374:16:39", - "nodeType": "YulVariableDeclaration", - "src": "10374:16:39", - "value": { - "kind": "number", - "nativeSrc": "10388:2:39", - "nodeType": "YulLiteral", - "src": "10388:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "10378:6:39", - "nodeType": "YulTypedName", - "src": "10378:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "10404:63:39", - "nodeType": "YulAssignment", - "src": "10404:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10439:9:39", - "nodeType": "YulIdentifier", - "src": "10439:9:39" - }, - { - "name": "offset", - "nativeSrc": "10450:6:39", - "nodeType": "YulIdentifier", - "src": "10450:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10435:3:39", - "nodeType": "YulIdentifier", - "src": "10435:3:39" - }, - "nativeSrc": "10435:22:39", - "nodeType": "YulFunctionCall", - "src": "10435:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "10459:7:39", - "nodeType": "YulIdentifier", - "src": "10459:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "10414:20:39", - "nodeType": "YulIdentifier", - "src": "10414:20:39" - }, - "nativeSrc": "10414:53:39", - "nodeType": "YulFunctionCall", - "src": "10414:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "10404:6:39", - "nodeType": "YulIdentifier", - "src": "10404:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "10487:136:39", - "nodeType": "YulBlock", - "src": "10487:136:39", - "statements": [ - { - "nativeSrc": "10502:16:39", - "nodeType": "YulVariableDeclaration", - "src": "10502:16:39", - "value": { - "kind": "number", - "nativeSrc": "10516:2:39", - "nodeType": "YulLiteral", - "src": "10516:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "10506:6:39", - "nodeType": "YulTypedName", - "src": "10506:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "10532:81:39", - "nodeType": "YulAssignment", - "src": "10532:81:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10585:9:39", - "nodeType": "YulIdentifier", - "src": "10585:9:39" - }, - { - "name": "offset", - "nativeSrc": "10596:6:39", - "nodeType": "YulIdentifier", - "src": "10596:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10581:3:39", - "nodeType": "YulIdentifier", - "src": "10581:3:39" - }, - "nativeSrc": "10581:22:39", - "nodeType": "YulFunctionCall", - "src": "10581:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "10605:7:39", - "nodeType": "YulIdentifier", - "src": "10605:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IVerifier_$8101", - "nativeSrc": "10542:38:39", - "nodeType": "YulIdentifier", - "src": "10542:38:39" - }, - "nativeSrc": "10542:71:39", - "nodeType": "YulFunctionCall", - "src": "10542:71:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "10532:6:39", - "nodeType": "YulIdentifier", - "src": "10532:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8101", - "nativeSrc": "9975:655:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10047:9:39", - "nodeType": "YulTypedName", - "src": "10047:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "10058:7:39", - "nodeType": "YulTypedName", - "src": "10058:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "10070:6:39", - "nodeType": "YulTypedName", - "src": "10070:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "10078:6:39", - "nodeType": "YulTypedName", - "src": "10078:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "10086:6:39", - "nodeType": "YulTypedName", - "src": "10086:6:39", - "type": "" - } - ], - "src": "9975:655:39" - }, - { - "body": { - "nativeSrc": "10664:152:39", - "nodeType": "YulBlock", - "src": "10664:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "10681:1:39", - "nodeType": "YulLiteral", - "src": "10681:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "10684:77:39", - "nodeType": "YulLiteral", - "src": "10684:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10674:6:39", - "nodeType": "YulIdentifier", - "src": "10674:6:39" - }, - "nativeSrc": "10674:88:39", - "nodeType": "YulFunctionCall", - "src": "10674:88:39" - }, - "nativeSrc": "10674:88:39", - "nodeType": "YulExpressionStatement", - "src": "10674:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "10778:1:39", - "nodeType": "YulLiteral", - "src": "10778:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "10781:4:39", - "nodeType": "YulLiteral", - "src": "10781:4:39", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10771:6:39", - "nodeType": "YulIdentifier", - "src": "10771:6:39" - }, - "nativeSrc": "10771:15:39", - "nodeType": "YulFunctionCall", - "src": "10771:15:39" - }, - "nativeSrc": "10771:15:39", - "nodeType": "YulExpressionStatement", - "src": "10771:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "10802:1:39", - "nodeType": "YulLiteral", - "src": "10802:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "10805:4:39", - "nodeType": "YulLiteral", - "src": "10805:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "10795:6:39", - "nodeType": "YulIdentifier", - "src": "10795:6:39" - }, - "nativeSrc": "10795:15:39", - "nodeType": "YulFunctionCall", - "src": "10795:15:39" - }, - "nativeSrc": "10795:15:39", - "nodeType": "YulExpressionStatement", - "src": "10795:15:39" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "10636:180:39", - "nodeType": "YulFunctionDefinition", - "src": "10636:180:39" - }, - { - "body": { - "nativeSrc": "10865:158:39", - "nodeType": "YulBlock", - "src": "10865:158:39", - "statements": [ - { - "nativeSrc": "10875:24:39", - "nodeType": "YulAssignment", - "src": "10875:24:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "10897:1:39", - "nodeType": "YulIdentifier", - "src": "10897:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "10880:16:39", - "nodeType": "YulIdentifier", - "src": "10880:16:39" - }, - "nativeSrc": "10880:19:39", - "nodeType": "YulFunctionCall", - "src": "10880:19:39" - }, - "variableNames": [ - { - "name": "x", - "nativeSrc": "10875:1:39", - "nodeType": "YulIdentifier", - "src": "10875:1:39" - } - ] - }, - { - "nativeSrc": "10908:24:39", - "nodeType": "YulAssignment", - "src": "10908:24:39", - "value": { - "arguments": [ - { - "name": "y", - "nativeSrc": "10930:1:39", - "nodeType": "YulIdentifier", - "src": "10930:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "10913:16:39", - "nodeType": "YulIdentifier", - "src": "10913:16:39" - }, - "nativeSrc": "10913:19:39", - "nodeType": "YulFunctionCall", - "src": "10913:19:39" - }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "10908:1:39", - "nodeType": "YulIdentifier", - "src": "10908:1:39" - } - ] - }, - { - "nativeSrc": "10941:16:39", - "nodeType": "YulAssignment", - "src": "10941:16:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "10952:1:39", - "nodeType": "YulIdentifier", - "src": "10952:1:39" - }, - { - "name": "y", - "nativeSrc": "10955:1:39", - "nodeType": "YulIdentifier", - "src": "10955:1:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10948:3:39", - "nodeType": "YulIdentifier", - "src": "10948:3:39" - }, - "nativeSrc": "10948:9:39", - "nodeType": "YulFunctionCall", - "src": "10948:9:39" - }, - "variableNames": [ - { - "name": "sum", - "nativeSrc": "10941:3:39", - "nodeType": "YulIdentifier", - "src": "10941:3:39" - } - ] - }, - { - "body": { - "nativeSrc": "10994:22:39", - "nodeType": "YulBlock", - "src": "10994:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "10996:16:39", - "nodeType": "YulIdentifier", - "src": "10996:16:39" - }, - "nativeSrc": "10996:18:39", - "nodeType": "YulFunctionCall", - "src": "10996:18:39" - }, - "nativeSrc": "10996:18:39", - "nodeType": "YulExpressionStatement", - "src": "10996:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "sum", - "nativeSrc": "10973:3:39", - "nodeType": "YulIdentifier", - "src": "10973:3:39" - }, - { - "kind": "number", - "nativeSrc": "10978:14:39", - "nodeType": "YulLiteral", - "src": "10978:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "10970:2:39", - "nodeType": "YulIdentifier", - "src": "10970:2:39" - }, - "nativeSrc": "10970:23:39", - "nodeType": "YulFunctionCall", - "src": "10970:23:39" - }, - "nativeSrc": "10967:49:39", - "nodeType": "YulIf", - "src": "10967:49:39" - } - ] - }, - "name": "checked_add_t_uint48", - "nativeSrc": "10822:201:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "10852:1:39", - "nodeType": "YulTypedName", - "src": "10852:1:39", - "type": "" - }, - { - "name": "y", - "nativeSrc": "10855:1:39", - "nodeType": "YulTypedName", - "src": "10855:1:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nativeSrc": "10861:3:39", - "nodeType": "YulTypedName", - "src": "10861:3:39", - "type": "" - } - ], - "src": "10822:201:39" - }, - { - "body": { - "nativeSrc": "11092:80:39", - "nodeType": "YulBlock", - "src": "11092:80:39", - "statements": [ - { - "nativeSrc": "11102:22:39", - "nodeType": "YulAssignment", - "src": "11102:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "11117:6:39", - "nodeType": "YulIdentifier", - "src": "11117:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "11111:5:39", - "nodeType": "YulIdentifier", - "src": "11111:5:39" - }, - "nativeSrc": "11111:13:39", - "nodeType": "YulFunctionCall", - "src": "11111:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "11102:5:39", - "nodeType": "YulIdentifier", - "src": "11102:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "11160:5:39", - "nodeType": "YulIdentifier", - "src": "11160:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "11133:26:39", - "nodeType": "YulIdentifier", - "src": "11133:26:39" - }, - "nativeSrc": "11133:33:39", - "nodeType": "YulFunctionCall", - "src": "11133:33:39" - }, - "nativeSrc": "11133:33:39", - "nodeType": "YulExpressionStatement", - "src": "11133:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "11029:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "11070:6:39", - "nodeType": "YulTypedName", - "src": "11070:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "11078:3:39", - "nodeType": "YulTypedName", - "src": "11078:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "11086:5:39", - "nodeType": "YulTypedName", - "src": "11086:5:39", - "type": "" - } - ], - "src": "11029:143:39" - }, - { - "body": { - "nativeSrc": "11255:274:39", - "nodeType": "YulBlock", - "src": "11255:274:39", - "statements": [ - { - "body": { - "nativeSrc": "11301:83:39", - "nodeType": "YulBlock", - "src": "11301:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "11303:77:39", - "nodeType": "YulIdentifier", - "src": "11303:77:39" - }, - "nativeSrc": "11303:79:39", - "nodeType": "YulFunctionCall", - "src": "11303:79:39" - }, - "nativeSrc": "11303:79:39", - "nodeType": "YulExpressionStatement", - "src": "11303:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "11276:7:39", - "nodeType": "YulIdentifier", - "src": "11276:7:39" - }, - { - "name": "headStart", - "nativeSrc": "11285:9:39", - "nodeType": "YulIdentifier", - "src": "11285:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11272:3:39", - "nodeType": "YulIdentifier", - "src": "11272:3:39" - }, - "nativeSrc": "11272:23:39", - "nodeType": "YulFunctionCall", - "src": "11272:23:39" - }, - { - "kind": "number", - "nativeSrc": "11297:2:39", - "nodeType": "YulLiteral", - "src": "11297:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "11268:3:39", - "nodeType": "YulIdentifier", - "src": "11268:3:39" - }, - "nativeSrc": "11268:32:39", - "nodeType": "YulFunctionCall", - "src": "11268:32:39" - }, - "nativeSrc": "11265:119:39", - "nodeType": "YulIf", - "src": "11265:119:39" - }, - { - "nativeSrc": "11394:128:39", - "nodeType": "YulBlock", - "src": "11394:128:39", - "statements": [ - { - "nativeSrc": "11409:15:39", - "nodeType": "YulVariableDeclaration", - "src": "11409:15:39", - "value": { - "kind": "number", - "nativeSrc": "11423:1:39", - "nodeType": "YulLiteral", - "src": "11423:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11413:6:39", - "nodeType": "YulTypedName", - "src": "11413:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "11438:74:39", - "nodeType": "YulAssignment", - "src": "11438:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11484:9:39", - "nodeType": "YulIdentifier", - "src": "11484:9:39" - }, - { - "name": "offset", - "nativeSrc": "11495:6:39", - "nodeType": "YulIdentifier", - "src": "11495:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11480:3:39", - "nodeType": "YulIdentifier", - "src": "11480:3:39" - }, - "nativeSrc": "11480:22:39", - "nodeType": "YulFunctionCall", - "src": "11480:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "11504:7:39", - "nodeType": "YulIdentifier", - "src": "11504:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "11448:31:39", - "nodeType": "YulIdentifier", - "src": "11448:31:39" - }, - "nativeSrc": "11448:64:39", - "nodeType": "YulFunctionCall", - "src": "11448:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "11438:6:39", - "nodeType": "YulIdentifier", - "src": "11438:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "11178:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11225:9:39", - "nodeType": "YulTypedName", - "src": "11225:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "11236:7:39", - "nodeType": "YulTypedName", - "src": "11236:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "11248:6:39", - "nodeType": "YulTypedName", - "src": "11248:6:39", - "type": "" - } - ], - "src": "11178:351:39" - }, - { - "body": { - "nativeSrc": "11661:206:39", - "nodeType": "YulBlock", - "src": "11661:206:39", - "statements": [ - { - "nativeSrc": "11671:26:39", - "nodeType": "YulAssignment", - "src": "11671:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11683:9:39", - "nodeType": "YulIdentifier", - "src": "11683:9:39" - }, - { - "kind": "number", - "nativeSrc": "11694:2:39", - "nodeType": "YulLiteral", - "src": "11694:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11679:3:39", - "nodeType": "YulIdentifier", - "src": "11679:3:39" - }, - "nativeSrc": "11679:18:39", - "nodeType": "YulFunctionCall", - "src": "11679:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "11671:4:39", - "nodeType": "YulIdentifier", - "src": "11671:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "11751:6:39", - "nodeType": "YulIdentifier", - "src": "11751:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11764:9:39", - "nodeType": "YulIdentifier", - "src": "11764:9:39" - }, - { - "kind": "number", - "nativeSrc": "11775:1:39", - "nodeType": "YulLiteral", - "src": "11775:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11760:3:39", - "nodeType": "YulIdentifier", - "src": "11760:3:39" - }, - "nativeSrc": "11760:17:39", - "nodeType": "YulFunctionCall", - "src": "11760:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "11707:43:39", - "nodeType": "YulIdentifier", - "src": "11707:43:39" - }, - "nativeSrc": "11707:71:39", - "nodeType": "YulFunctionCall", - "src": "11707:71:39" - }, - "nativeSrc": "11707:71:39", - "nodeType": "YulExpressionStatement", - "src": "11707:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "11832:6:39", - "nodeType": "YulIdentifier", - "src": "11832:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11845:9:39", - "nodeType": "YulIdentifier", - "src": "11845:9:39" - }, - { - "kind": "number", - "nativeSrc": "11856:2:39", - "nodeType": "YulLiteral", - "src": "11856:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11841:3:39", - "nodeType": "YulIdentifier", - "src": "11841:3:39" - }, - "nativeSrc": "11841:18:39", - "nodeType": "YulFunctionCall", - "src": "11841:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "11788:43:39", - "nodeType": "YulIdentifier", - "src": "11788:43:39" - }, - "nativeSrc": "11788:72:39", - "nodeType": "YulFunctionCall", - "src": "11788:72:39" - }, - "nativeSrc": "11788:72:39", - "nodeType": "YulExpressionStatement", - "src": "11788:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "11535:332:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11625:9:39", - "nodeType": "YulTypedName", - "src": "11625:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "11637:6:39", - "nodeType": "YulTypedName", - "src": "11637:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "11645:6:39", - "nodeType": "YulTypedName", - "src": "11645:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "11656:4:39", - "nodeType": "YulTypedName", - "src": "11656:4:39", - "type": "" - } - ], - "src": "11535:332:39" - }, - { - "body": { - "nativeSrc": "11927:32:39", - "nodeType": "YulBlock", - "src": "11927:32:39", - "statements": [ - { - "nativeSrc": "11937:16:39", - "nodeType": "YulAssignment", - "src": "11937:16:39", - "value": { - "name": "value", - "nativeSrc": "11948:5:39", - "nodeType": "YulIdentifier", - "src": "11948:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "11937:7:39", - "nodeType": "YulIdentifier", - "src": "11937:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_rational_48_by_1", - "nativeSrc": "11873:86:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "11909:5:39", - "nodeType": "YulTypedName", - "src": "11909:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "11919:7:39", - "nodeType": "YulTypedName", - "src": "11919:7:39", - "type": "" - } - ], - "src": "11873:86:39" - }, - { - "body": { - "nativeSrc": "12008:43:39", - "nodeType": "YulBlock", - "src": "12008:43:39", - "statements": [ - { - "nativeSrc": "12018:27:39", - "nodeType": "YulAssignment", - "src": "12018:27:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "12033:5:39", - "nodeType": "YulIdentifier", - "src": "12033:5:39" - }, - { - "kind": "number", - "nativeSrc": "12040:4:39", - "nodeType": "YulLiteral", - "src": "12040:4:39", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "12029:3:39", - "nodeType": "YulIdentifier", - "src": "12029:3:39" - }, - "nativeSrc": "12029:16:39", - "nodeType": "YulFunctionCall", - "src": "12029:16:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "12018:7:39", - "nodeType": "YulIdentifier", - "src": "12018:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint8", - "nativeSrc": "11965:86:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "11990:5:39", - "nodeType": "YulTypedName", - "src": "11990:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "12000:7:39", - "nodeType": "YulTypedName", - "src": "12000:7:39", - "type": "" - } - ], - "src": "11965:86:39" - }, - { - "body": { - "nativeSrc": "12124:89:39", - "nodeType": "YulBlock", - "src": "12124:89:39", - "statements": [ - { - "nativeSrc": "12134:73:39", - "nodeType": "YulAssignment", - "src": "12134:73:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "12199:5:39", - "nodeType": "YulIdentifier", - "src": "12199:5:39" - } - ], - "functionName": { - "name": "cleanup_t_rational_48_by_1", - "nativeSrc": "12172:26:39", - "nodeType": "YulIdentifier", - "src": "12172:26:39" - }, - "nativeSrc": "12172:33:39", - "nodeType": "YulFunctionCall", - "src": "12172:33:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "12163:8:39", - "nodeType": "YulIdentifier", - "src": "12163:8:39" - }, - "nativeSrc": "12163:43:39", - "nodeType": "YulFunctionCall", - "src": "12163:43:39" - } - ], - "functionName": { - "name": "cleanup_t_uint8", - "nativeSrc": "12147:15:39", - "nodeType": "YulIdentifier", - "src": "12147:15:39" - }, - "nativeSrc": "12147:60:39", - "nodeType": "YulFunctionCall", - "src": "12147:60:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "12134:9:39", - "nodeType": "YulIdentifier", - "src": "12134:9:39" - } - ] - } - ] - }, - "name": "convert_t_rational_48_by_1_to_t_uint8", - "nativeSrc": "12057:156:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "12104:5:39", - "nodeType": "YulTypedName", - "src": "12104:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "12114:9:39", - "nodeType": "YulTypedName", - "src": "12114:9:39", - "type": "" - } - ], - "src": "12057:156:39" - }, - { - "body": { - "nativeSrc": "12291:73:39", - "nodeType": "YulBlock", - "src": "12291:73:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "12308:3:39", - "nodeType": "YulIdentifier", - "src": "12308:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "12351:5:39", - "nodeType": "YulIdentifier", - "src": "12351:5:39" - } - ], - "functionName": { - "name": "convert_t_rational_48_by_1_to_t_uint8", - "nativeSrc": "12313:37:39", - "nodeType": "YulIdentifier", - "src": "12313:37:39" - }, - "nativeSrc": "12313:44:39", - "nodeType": "YulFunctionCall", - "src": "12313:44:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12301:6:39", - "nodeType": "YulIdentifier", - "src": "12301:6:39" - }, - "nativeSrc": "12301:57:39", - "nodeType": "YulFunctionCall", - "src": "12301:57:39" - }, - "nativeSrc": "12301:57:39", - "nodeType": "YulExpressionStatement", - "src": "12301:57:39" - } - ] - }, - "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", - "nativeSrc": "12219:145:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "12279:5:39", - "nodeType": "YulTypedName", - "src": "12279:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "12286:3:39", - "nodeType": "YulTypedName", - "src": "12286:3:39", - "type": "" - } - ], - "src": "12219:145:39" - }, - { - "body": { - "nativeSrc": "12503:213:39", - "nodeType": "YulBlock", - "src": "12503:213:39", - "statements": [ - { - "nativeSrc": "12513:26:39", - "nodeType": "YulAssignment", - "src": "12513:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12525:9:39", - "nodeType": "YulIdentifier", - "src": "12525:9:39" - }, - { - "kind": "number", - "nativeSrc": "12536:2:39", - "nodeType": "YulLiteral", - "src": "12536:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12521:3:39", - "nodeType": "YulIdentifier", - "src": "12521:3:39" - }, - "nativeSrc": "12521:18:39", - "nodeType": "YulFunctionCall", - "src": "12521:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "12513:4:39", - "nodeType": "YulIdentifier", - "src": "12513:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "12600:6:39", - "nodeType": "YulIdentifier", - "src": "12600:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12613:9:39", - "nodeType": "YulIdentifier", - "src": "12613:9:39" - }, - { - "kind": "number", - "nativeSrc": "12624:1:39", - "nodeType": "YulLiteral", - "src": "12624:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12609:3:39", - "nodeType": "YulIdentifier", - "src": "12609:3:39" - }, - "nativeSrc": "12609:17:39", - "nodeType": "YulFunctionCall", - "src": "12609:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_rational_48_by_1_to_t_uint8_fromStack", - "nativeSrc": "12549:50:39", - "nodeType": "YulIdentifier", - "src": "12549:50:39" - }, - "nativeSrc": "12549:78:39", - "nodeType": "YulFunctionCall", - "src": "12549:78:39" - }, - "nativeSrc": "12549:78:39", - "nodeType": "YulExpressionStatement", - "src": "12549:78:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "12681:6:39", - "nodeType": "YulIdentifier", - "src": "12681:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12694:9:39", - "nodeType": "YulIdentifier", - "src": "12694:9:39" - }, - { - "kind": "number", - "nativeSrc": "12705:2:39", - "nodeType": "YulLiteral", - "src": "12705:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12690:3:39", - "nodeType": "YulIdentifier", - "src": "12690:3:39" - }, - "nativeSrc": "12690:18:39", - "nodeType": "YulFunctionCall", - "src": "12690:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "12637:43:39", - "nodeType": "YulIdentifier", - "src": "12637:43:39" - }, - "nativeSrc": "12637:72:39", - "nodeType": "YulFunctionCall", - "src": "12637:72:39" - }, - "nativeSrc": "12637:72:39", - "nodeType": "YulExpressionStatement", - "src": "12637:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed", - "nativeSrc": "12370:346:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "12467:9:39", - "nodeType": "YulTypedName", - "src": "12467:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "12479:6:39", - "nodeType": "YulTypedName", - "src": "12479:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "12487:6:39", - "nodeType": "YulTypedName", - "src": "12487:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "12498:4:39", - "nodeType": "YulTypedName", - "src": "12498:4:39", - "type": "" - } - ], - "src": "12370:346:39" - }, - { - "body": { - "nativeSrc": "12766:160:39", - "nodeType": "YulBlock", - "src": "12766:160:39", - "statements": [ - { - "nativeSrc": "12776:24:39", - "nodeType": "YulAssignment", - "src": "12776:24:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "12798:1:39", - "nodeType": "YulIdentifier", - "src": "12798:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "12781:16:39", - "nodeType": "YulIdentifier", - "src": "12781:16:39" - }, - "nativeSrc": "12781:19:39", - "nodeType": "YulFunctionCall", - "src": "12781:19:39" - }, - "variableNames": [ - { - "name": "x", - "nativeSrc": "12776:1:39", - "nodeType": "YulIdentifier", - "src": "12776:1:39" - } - ] - }, - { - "nativeSrc": "12809:24:39", - "nodeType": "YulAssignment", - "src": "12809:24:39", - "value": { - "arguments": [ - { - "name": "y", - "nativeSrc": "12831:1:39", - "nodeType": "YulIdentifier", - "src": "12831:1:39" - } - ], - "functionName": { - "name": "cleanup_t_uint48", - "nativeSrc": "12814:16:39", - "nodeType": "YulIdentifier", - "src": "12814:16:39" - }, - "nativeSrc": "12814:19:39", - "nodeType": "YulFunctionCall", - "src": "12814:19:39" - }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "12809:1:39", - "nodeType": "YulIdentifier", - "src": "12809:1:39" - } - ] - }, - { - "nativeSrc": "12842:17:39", - "nodeType": "YulAssignment", - "src": "12842:17:39", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "12854:1:39", - "nodeType": "YulIdentifier", - "src": "12854:1:39" - }, - { - "name": "y", - "nativeSrc": "12857:1:39", - "nodeType": "YulIdentifier", - "src": "12857:1:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "12850:3:39", - "nodeType": "YulIdentifier", - "src": "12850:3:39" - }, - "nativeSrc": "12850:9:39", - "nodeType": "YulFunctionCall", - "src": "12850:9:39" - }, - "variableNames": [ - { - "name": "diff", - "nativeSrc": "12842:4:39", - "nodeType": "YulIdentifier", - "src": "12842:4:39" - } - ] - }, - { - "body": { - "nativeSrc": "12897:22:39", - "nodeType": "YulBlock", - "src": "12897:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "12899:16:39", - "nodeType": "YulIdentifier", - "src": "12899:16:39" - }, - "nativeSrc": "12899:18:39", - "nodeType": "YulFunctionCall", - "src": "12899:18:39" - }, - "nativeSrc": "12899:18:39", - "nodeType": "YulExpressionStatement", - "src": "12899:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "diff", - "nativeSrc": "12875:4:39", - "nodeType": "YulIdentifier", - "src": "12875:4:39" - }, - { - "kind": "number", - "nativeSrc": "12881:14:39", - "nodeType": "YulLiteral", - "src": "12881:14:39", - "type": "", - "value": "0xffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "12872:2:39", - "nodeType": "YulIdentifier", - "src": "12872:2:39" - }, - "nativeSrc": "12872:24:39", - "nodeType": "YulFunctionCall", - "src": "12872:24:39" - }, - "nativeSrc": "12869:50:39", - "nodeType": "YulIf", - "src": "12869:50:39" - } - ] - }, - "name": "checked_sub_t_uint48", - "nativeSrc": "12722:204:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "12752:1:39", - "nodeType": "YulTypedName", - "src": "12752:1:39", - "type": "" - }, - { - "name": "y", - "nativeSrc": "12755:1:39", - "nodeType": "YulTypedName", - "src": "12755:1:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "diff", - "nativeSrc": "12761:4:39", - "nodeType": "YulTypedName", - "src": "12761:4:39", - "type": "" - } - ], - "src": "12722:204:39" - } - ] - }, - "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_$8101_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IVerifier_$8101_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IVerifier_$8101_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IVerifier_$8101__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IVerifier_$8101_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_$8101_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_$8101_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_$7736_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7736_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7736_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_$8101(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IVerifier_$8101(value) {\n if iszero(eq(value, cleanup_t_contract$_IVerifier_$8101(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IVerifier_$8101(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IVerifier_$8101(value)\n }\n\n function abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8101(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_$8101(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_$8101(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_$8101(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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "7147": [ - { - "length": 32, - "start": 2340 - }, - { - "length": 32, - "start": 4442 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ccb565b6105ff565b6040516102279190611d13565b60405180910390f35b610238610679565b6040516102459190611d4f565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611da0565b61069c565b60405161027f9190611ddc565b60405180910390f35b6102a2600480360381019061029d9190611e55565b6106bb565b005b6102be60048036038101906102b99190611e55565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611da0565b610827565b6040516102f19190611ef4565b60405180910390f35b610314600480360381019061030f9190611da0565b610867565b6040516103249493929190611f37565b60405180910390f35b6103356108d7565b6040516103429190611d13565b60405180910390f35b61036560048036038101906103609190611f7c565b6108ee565b005b610381600480360381019061037c9190611fd5565b610908565b005b61038b610922565b6040516103989190612023565b60405180910390f35b6103bb60048036038101906103b69190611e55565b610946565b6040516103c89190611d13565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061203e565b60405180910390f35b6104016109e6565b60405161040e919061203e565b60405180910390f35b610431600480360381019061042c9190611e55565b6109f5565b60405161043e9190611d13565b60405180910390f35b61044f610a5f565b60405161045d929190612059565b60405180910390f35b61046e610abf565b60405161047b9190611ddc565b60405180910390f35b61049e60048036038101906104999190611da0565b610ac6565b6040516104ab9190612082565b60405180910390f35b6104ce60048036038101906104c991906120db565b610ae6565b005b6104ea60048036038101906104e5919061211b565b610b09565b005b6104f4610b17565b6040516105019190611ddc565b60405180910390f35b610512610b3b565b60405161051f9190611d4f565b60405180910390f35b610530610ba9565b005b61053a610c3f565b60405161054892919061215b565b60405180910390f35b61056b60048036038101906105669190611da0565b610c82565b604051610578919061203e565b60405180910390f35b61059b60048036038101906105969190611e55565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612184565b610d24565b005b6105cb610d3d565b6040516105d89190611ddc565b60405180910390f35b6105e9610d61565b6040516105f69190611ddc565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d4f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061203e565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061203e565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b6110119190612206565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d4f565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d9190612206565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612059565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061203e565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611ddc565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612255565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611243929190612282565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061203e565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d4f565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c4929190612282565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122f3565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b2919061231c565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061203e565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000611c408284108484611c48565b905092915050565b6000611c5384611c62565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ca881611c73565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b600060208284031215611ce157611ce0611c6e565b5b6000611cef84828501611cb6565b91505092915050565b60008115159050919050565b611d0d81611cf8565b82525050565b6000602082019050611d286000830184611d04565b92915050565b600065ffffffffffff82169050919050565b611d4981611d2e565b82525050565b6000602082019050611d646000830184611d40565b92915050565b6000819050919050565b611d7d81611d6a565b8114611d8857600080fd5b50565b600081359050611d9a81611d74565b92915050565b600060208284031215611db657611db5611c6e565b5b6000611dc484828501611d8b565b91505092915050565b611dd681611d6a565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e2282611df7565b9050919050565b611e3281611e17565b8114611e3d57600080fd5b50565b600081359050611e4f81611e29565b92915050565b60008060408385031215611e6c57611e6b611c6e565b5b6000611e7a85828601611d8b565b9250506020611e8b85828601611e40565b9150509250929050565b6000819050919050565b6000611eba611eb5611eb084611df7565b611e95565b611df7565b9050919050565b6000611ecc82611e9f565b9050919050565b6000611ede82611ec1565b9050919050565b611eee81611ed3565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b611f1881611e17565b82525050565b6000819050919050565b611f3181611f1e565b82525050565b6000608082019050611f4c6000830187611f0f565b611f596020830186611ee5565b611f666040830185611f28565b611f736060830184611f28565b95945050505050565b600060208284031215611f9257611f91611c6e565b5b6000611fa084828501611e40565b91505092915050565b611fb281611d2e565b8114611fbd57600080fd5b50565b600081359050611fcf81611fa9565b92915050565b600060208284031215611feb57611fea611c6e565b5b6000611ff984828501611fc0565b91505092915050565b600061200d82611ec1565b9050919050565b61201d81612002565b82525050565b60006020820190506120386000830184612014565b92915050565b60006020820190506120536000830184611f0f565b92915050565b600060408201905061206e6000830185611d40565b61207b6020830184611d40565b9392505050565b60006020820190506120976000830184611f28565b92915050565b60006120a882611e17565b9050919050565b6120b88161209d565b81146120c357600080fd5b50565b6000813590506120d5816120af565b92915050565b600080604083850312156120f2576120f1611c6e565b5b600061210085828601611d8b565b9250506020612111858286016120c6565b9150509250929050565b6000806040838503121561213257612131611c6e565b5b600061214085828601611e40565b925050602061215185828601611d8b565b9150509250929050565b60006040820190506121706000830185611f0f565b61217d6020830184611d40565b9392505050565b60008060006060848603121561219d5761219c611c6e565b5b60006121ab86828701611e40565b93505060206121bc86828701611d8b565b92505060406121cd868287016120c6565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061221182611d2e565b915061221c83611d2e565b9250828201905065ffffffffffff81111561223a576122396121d7565b5b92915050565b60008151905061224f81611e29565b92915050565b60006020828403121561226b5761226a611c6e565b5b600061227984828501612240565b91505092915050565b60006040820190506122976000830185611f0f565b6122a46020830184611dcd565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122dd6122d86122d3846122ab565b611e95565b6122b5565b9050919050565b6122ed816122c2565b82525050565b600060408201905061230860008301856122e4565b6123156020830184611f28565b9392505050565b600061232782611d2e565b915061233283611d2e565b9250828203905065ffffffffffff8111156123505761234f6121d7565b5b9291505056fea26469706673582212208d9faa5a557b2963a1f0927d9241c63c1ae66f5d48267732b4a8678b6cd45e3b64736f6c634300081c0033", - "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 0x1CCB JUMP JUMPDEST PUSH2 0x5FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x227 SWAP2 SWAP1 PUSH2 0x1D13 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 0x1D4F 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 0x1DA0 JUMP JUMPDEST PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1E55 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x1E55 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 0x1DA0 JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0x1EF4 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 0x1DA0 JUMP JUMPDEST PUSH2 0x867 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F37 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 0x1D13 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 0x1F7C JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x381 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x1FD5 JUMP JUMPDEST PUSH2 0x908 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x38B PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x398 SWAP2 SWAP1 PUSH2 0x2023 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 0x1E55 JUMP JUMPDEST PUSH2 0x946 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x1D13 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 0x203E 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 0x203E 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 0x1E55 JUMP JUMPDEST PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x1D13 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 0x2059 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 0x1DDC 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 0x1DA0 JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x2082 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 0x20DB JUMP JUMPDEST PUSH2 0xAE6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x211B JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F4 PUSH2 0xB17 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x501 SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1D4F 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 0x215B 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 0x1DA0 JUMP JUMPDEST PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x203E 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 0x1E55 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 0x2184 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5CB PUSH2 0xD3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D8 SWAP2 SWAP1 PUSH2 0x1DDC 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 0x1DDC 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 0x1D4F 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 0x203E 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 0x203E 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 0x2206 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 0x1D4F 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 0x2206 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 0x2059 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 0x203E 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 0x1DDC 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 0x2255 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 0x2282 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 0x203E 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 0x1D4F 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 0x2282 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 0x22F3 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 0x231C 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 0x203E 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 PUSH2 0x1C40 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1C48 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C53 DUP5 PUSH2 0x1C62 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CA8 DUP2 PUSH2 0x1C73 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CC5 DUP2 PUSH2 0x1C9F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE1 JUMPI PUSH2 0x1CE0 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CEF DUP5 DUP3 DUP6 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D0D DUP2 PUSH2 0x1CF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D28 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D04 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D49 DUP2 PUSH2 0x1D2E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D64 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D7D DUP2 PUSH2 0x1D6A JUMP JUMPDEST DUP2 EQ PUSH2 0x1D88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D9A DUP2 PUSH2 0x1D74 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DB6 JUMPI PUSH2 0x1DB5 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DC4 DUP5 DUP3 DUP6 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1DD6 DUP2 PUSH2 0x1D6A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DF1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DCD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E22 DUP3 PUSH2 0x1DF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E32 DUP2 PUSH2 0x1E17 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E4F DUP2 PUSH2 0x1E29 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E6C JUMPI PUSH2 0x1E6B PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7A DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E8B DUP6 DUP3 DUP7 ADD PUSH2 0x1E40 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 0x1EBA PUSH2 0x1EB5 PUSH2 0x1EB0 DUP5 PUSH2 0x1DF7 JUMP JUMPDEST PUSH2 0x1E95 JUMP JUMPDEST PUSH2 0x1DF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1ECC DUP3 PUSH2 0x1E9F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EDE DUP3 PUSH2 0x1EC1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EEE DUP2 PUSH2 0x1ED3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F09 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EE5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1F18 DUP2 PUSH2 0x1E17 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F31 DUP2 PUSH2 0x1F1E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1F4C PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x1F59 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EE5 JUMP JUMPDEST PUSH2 0x1F66 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1F28 JUMP JUMPDEST PUSH2 0x1F73 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F92 JUMPI PUSH2 0x1F91 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FA0 DUP5 DUP3 DUP6 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1FB2 DUP2 PUSH2 0x1D2E JUMP JUMPDEST DUP2 EQ PUSH2 0x1FBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FCF DUP2 PUSH2 0x1FA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FEB JUMPI PUSH2 0x1FEA PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FF9 DUP5 DUP3 DUP6 ADD PUSH2 0x1FC0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200D DUP3 PUSH2 0x1EC1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x201D DUP2 PUSH2 0x2002 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2038 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2014 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2053 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F0F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x206E PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1D40 JUMP JUMPDEST PUSH2 0x207B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2097 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A8 DUP3 PUSH2 0x1E17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x20B8 DUP2 PUSH2 0x209D JUMP JUMPDEST DUP2 EQ PUSH2 0x20C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x20D5 DUP2 PUSH2 0x20AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20F2 JUMPI PUSH2 0x20F1 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2100 DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2111 DUP6 DUP3 DUP7 ADD PUSH2 0x20C6 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2132 JUMPI PUSH2 0x2131 PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2140 DUP6 DUP3 DUP7 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2151 DUP6 DUP3 DUP7 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2170 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x217D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D40 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x219D JUMPI PUSH2 0x219C PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x21AB DUP7 DUP3 DUP8 ADD PUSH2 0x1E40 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x21BC DUP7 DUP3 DUP8 ADD PUSH2 0x1D8B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x21CD DUP7 DUP3 DUP8 ADD PUSH2 0x20C6 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 0x2211 DUP3 PUSH2 0x1D2E JUMP JUMPDEST SWAP2 POP PUSH2 0x221C DUP4 PUSH2 0x1D2E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x223A JUMPI PUSH2 0x2239 PUSH2 0x21D7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x224F DUP2 PUSH2 0x1E29 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x226B JUMPI PUSH2 0x226A PUSH2 0x1C6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2279 DUP5 DUP3 DUP6 ADD PUSH2 0x2240 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2297 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F0F JUMP JUMPDEST PUSH2 0x22A4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DCD 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 0x22DD PUSH2 0x22D8 PUSH2 0x22D3 DUP5 PUSH2 0x22AB JUMP JUMPDEST PUSH2 0x1E95 JUMP JUMPDEST PUSH2 0x22B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22ED DUP2 PUSH2 0x22C2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2308 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22E4 JUMP JUMPDEST PUSH2 0x2315 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2327 DUP3 PUSH2 0x1D2E JUMP JUMPDEST SWAP2 POP PUSH2 0x2332 DUP4 PUSH2 0x1D2E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2350 JUMPI PUSH2 0x234F PUSH2 0x21D7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 SWAP16 0xAA GAS SSTORE PUSH28 0x2963A1F0927D9241C63C1AE66F5D48267732B4A8678B6CD45E3B6473 PUSH16 0x6C634300081C00330000000000000000 ", - "sourceMap": "598:5743:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:219:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:126;;;:::i;:::-;;3810:120:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4273:137:36;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:566:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2945:77:36;;;:::i;:::-;;3596:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1662:68;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;1850:84:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8068:150:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;349:38:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3090:186:36;;;;;;;;;;;;;:::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:36;;;;;;;;;;;;;:::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:36;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3563:267:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8706:128;;;:::i;:::-;;2473:225:36;;;;;;;;;;;;;:::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:36:-;4348:18;4361:4;4348:12;:18::i;:::-;2464:16:6;2475:4;2464:10;:16::i;:::-;4378:25:36::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:36:-;1560:24;2464:16:6;2475:4;2464:10;:16::i;:::-;3005:10:36::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:23:-;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:29:-;;;:::o;3090:186:36:-;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:36::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:36:-;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:29;890:7;899:10;872:17;:38::i;:::-;3486:34:36::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:36:-;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:36:-;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:23:-;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:23:-;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:29:-;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:36:-;1474:19:23;:17;:19::i;:::-;5603:21:36::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:23::1;:17;:19::i;:::-;5140:34:36::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;763:146:25:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763: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:23:-;2265:8;:6;:8::i;:::-;2260:62;;2296:15;;;;;;;;;;;;;;2260:62;2202:126::o;14296:213:28:-;14352:6;14382:16;14374:24;;:5;:24;14370:103;;;14452:2;14456:5;14421:41;;;;;;;;;;;;:::i;:::-;;;;;;;;14370:103;14496:5;14482:20;;14296: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:23:-;2067:8;:6;:8::i;:::-;2063:61;;;2098:15;;;;;;;;;;;;;;2063:61;2002:128::o;6008:331:36:-;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;3371:111:27:-;3429:7;3455:20;3467:1;3463;:5;3470:1;3473;3455:7;:20::i;:::-;3448:27;;3371:111;;;;:::o;2825:294::-;2903:7;3075:26;3091:9;3075:15;:26::i;:::-;3070:1;3066;:5;3065:36;3060:1;:42;3053:49;;2825:294;;;;;:::o;34795:145:28:-;34842:9;34921:1;34914:9;34907:17;34902:22;;34795:145;;;:::o;88:117:39:-;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. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"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\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@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/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"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": 3500, - "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", - "label": "_paused", - "offset": 0, - "slot": "3", - "type": "t_bool" - }, - { - "astId": 7793, - "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", - "label": "domainHashToRecord", - "offset": 0, - "slot": "4", - "type": "t_mapping(t_bytes32,t_struct(Record)7772_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)8101": { - "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)7772_storage)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => struct SciRegistry.Record)", - "numberOfBytes": "32", - "value": "t_struct(Record)7772_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)7772_storage": { - "encoding": "inplace", - "label": "struct SciRegistry.Record", - "members": [ - { - "astId": 7764, - "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", - "label": "owner", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 7767, - "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", - "label": "verifier", - "offset": 0, - "slot": "1", - "type": "t_contract(IVerifier)8101" - }, - { - "astId": 7769, - "contract": "contracts/SciRegistry/SciRegistry.sol:SciRegistry", - "label": "ownerSetTime", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 7771, - "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": { - "@_7181": { - "entryPoint": null, - "id": 7181, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_8162": { - "entryPoint": null, - "id": 8162, - "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:39", - "nodeType": "YulBlock", - "src": "0:1199:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:81:39", - "nodeType": "YulBlock", - "src": "379:81:39", - "statements": [ - { - "nativeSrc": "389:65:39", - "nodeType": "YulAssignment", - "src": "389:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:39", - "nodeType": "YulIdentifier", - "src": "404:5:39" - }, - { - "kind": "number", - "nativeSrc": "411:42:39", - "nodeType": "YulLiteral", - "src": "411:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:39", - "nodeType": "YulIdentifier", - "src": "400:3:39" - }, - "nativeSrc": "400:54:39", - "nodeType": "YulFunctionCall", - "src": "400:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:126:39" - }, - { - "body": { - "nativeSrc": "511:51:39", - "nodeType": "YulBlock", - "src": "511:51:39", - "statements": [ - { - "nativeSrc": "521:35:39", - "nodeType": "YulAssignment", - "src": "521:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:39", - "nodeType": "YulIdentifier", - "src": "550:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:39", - "nodeType": "YulIdentifier", - "src": "532:17:39" - }, - "nativeSrc": "532:24:39", - "nodeType": "YulFunctionCall", - "src": "532:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:39", - "nodeType": "YulIdentifier", - "src": "521:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:39", - "nodeType": "YulTypedName", - "src": "493:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:39", - "nodeType": "YulTypedName", - "src": "503:7:39", - "type": "" - } - ], - "src": "466:96:39" - }, - { - "body": { - "nativeSrc": "611:79:39", - "nodeType": "YulBlock", - "src": "611:79:39", - "statements": [ - { - "body": { - "nativeSrc": "668:16:39", - "nodeType": "YulBlock", - "src": "668:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:39", - "nodeType": "YulLiteral", - "src": "677:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:39", - "nodeType": "YulLiteral", - "src": "680:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:39", - "nodeType": "YulIdentifier", - "src": "670:6:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulFunctionCall", - "src": "670:12:39" - }, - "nativeSrc": "670:12:39", - "nodeType": "YulExpressionStatement", - "src": "670:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:39", - "nodeType": "YulIdentifier", - "src": "634:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:39", - "nodeType": "YulIdentifier", - "src": "659:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:39", - "nodeType": "YulIdentifier", - "src": "641:17:39" - }, - "nativeSrc": "641:24:39", - "nodeType": "YulFunctionCall", - "src": "641:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:39", - "nodeType": "YulIdentifier", - "src": "631:2:39" - }, - "nativeSrc": "631:35:39", - "nodeType": "YulFunctionCall", - "src": "631:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:39", - "nodeType": "YulIdentifier", - "src": "624:6:39" - }, - "nativeSrc": "624:43:39", - "nodeType": "YulFunctionCall", - "src": "624:43:39" - }, - "nativeSrc": "621:63:39", - "nodeType": "YulIf", - "src": "621:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:39", - "nodeType": "YulTypedName", - "src": "604:5:39", - "type": "" - } - ], - "src": "568:122:39" - }, - { - "body": { - "nativeSrc": "759:80:39", - "nodeType": "YulBlock", - "src": "759:80:39", - "statements": [ - { - "nativeSrc": "769:22:39", - "nodeType": "YulAssignment", - "src": "769:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "784:6:39", - "nodeType": "YulIdentifier", - "src": "784:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "778:5:39", - "nodeType": "YulIdentifier", - "src": "778:5:39" - }, - "nativeSrc": "778:13:39", - "nodeType": "YulFunctionCall", - "src": "778:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "769:5:39", - "nodeType": "YulIdentifier", - "src": "769:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "827:5:39", - "nodeType": "YulIdentifier", - "src": "827:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "800:26:39", - "nodeType": "YulIdentifier", - "src": "800:26:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulFunctionCall", - "src": "800:33:39" - }, - "nativeSrc": "800:33:39", - "nodeType": "YulExpressionStatement", - "src": "800:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "696:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "737:6:39", - "nodeType": "YulTypedName", - "src": "737:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "745:3:39", - "nodeType": "YulTypedName", - "src": "745:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "753:5:39", - "nodeType": "YulTypedName", - "src": "753:5:39", - "type": "" - } - ], - "src": "696:143:39" - }, - { - "body": { - "nativeSrc": "922:274:39", - "nodeType": "YulBlock", - "src": "922:274:39", - "statements": [ - { - "body": { - "nativeSrc": "968:83:39", - "nodeType": "YulBlock", - "src": "968:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "970:77:39", - "nodeType": "YulIdentifier", - "src": "970:77:39" - }, - "nativeSrc": "970:79:39", - "nodeType": "YulFunctionCall", - "src": "970:79:39" - }, - "nativeSrc": "970:79:39", - "nodeType": "YulExpressionStatement", - "src": "970:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "943:7:39", - "nodeType": "YulIdentifier", - "src": "943:7:39" - }, - { - "name": "headStart", - "nativeSrc": "952:9:39", - "nodeType": "YulIdentifier", - "src": "952:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "939:3:39", - "nodeType": "YulIdentifier", - "src": "939:3:39" - }, - "nativeSrc": "939:23:39", - "nodeType": "YulFunctionCall", - "src": "939:23:39" - }, - { - "kind": "number", - "nativeSrc": "964:2:39", - "nodeType": "YulLiteral", - "src": "964:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "935:3:39", - "nodeType": "YulIdentifier", - "src": "935:3:39" - }, - "nativeSrc": "935:32:39", - "nodeType": "YulFunctionCall", - "src": "935:32:39" - }, - "nativeSrc": "932:119:39", - "nodeType": "YulIf", - "src": "932:119:39" - }, - { - "nativeSrc": "1061:128:39", - "nodeType": "YulBlock", - "src": "1061:128:39", - "statements": [ - { - "nativeSrc": "1076:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1076:15:39", - "value": { - "kind": "number", - "nativeSrc": "1090:1:39", - "nodeType": "YulLiteral", - "src": "1090:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1080:6:39", - "nodeType": "YulTypedName", - "src": "1080:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1105:74:39", - "nodeType": "YulAssignment", - "src": "1105:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1151:9:39", - "nodeType": "YulIdentifier", - "src": "1151:9:39" - }, - { - "name": "offset", - "nativeSrc": "1162:6:39", - "nodeType": "YulIdentifier", - "src": "1162:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1147:3:39", - "nodeType": "YulIdentifier", - "src": "1147:3:39" - }, - "nativeSrc": "1147:22:39", - "nodeType": "YulFunctionCall", - "src": "1147:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1171:7:39", - "nodeType": "YulIdentifier", - "src": "1171:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1115:31:39", - "nodeType": "YulIdentifier", - "src": "1115:31:39" - }, - "nativeSrc": "1115:64:39", - "nodeType": "YulFunctionCall", - "src": "1115:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1105:6:39", - "nodeType": "YulIdentifier", - "src": "1105:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "845:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "892:9:39", - "nodeType": "YulTypedName", - "src": "892:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "903:7:39", - "nodeType": "YulTypedName", - "src": "903:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "915:6:39", - "nodeType": "YulTypedName", - "src": "915:6:39", - "type": "" - } - ], - "src": "845:351:39" - } - ] - }, - "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": 39, - "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:38:-:0;;;1536:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1581:9;1171:19:29;1147:44;;;;;;;;;;1096:102;1536:58:38;626:3305;;88:117:39;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:38:-;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkDomainOwner_7203": { - "entryPoint": 1663, - "id": 7203, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_msgSender_3399": { - "entryPoint": 1655, - "id": 3399, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@addAddresses_8240": { - "entryPoint": 554, - "id": 8240, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@isVerified_8369": { - "entryPoint": 274, - "id": 8369, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@registry_7147": { - "entryPoint": 1105, - "id": 7147, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@removeAddresses_8320": { - "entryPoint": 1141, - "id": 8320, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@verifiedContracts_8131": { - "entryPoint": 1055, - "id": 8131, - "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_$7736_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_$7736__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_$7736_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:39", - "nodeType": "YulBlock", - "src": "0:9803:39", - "statements": [ - { - "body": { - "nativeSrc": "47:35:39", - "nodeType": "YulBlock", - "src": "47:35:39", - "statements": [ - { - "nativeSrc": "57:19:39", - "nodeType": "YulAssignment", - "src": "57:19:39", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:39", - "nodeType": "YulLiteral", - "src": "73:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:39", - "nodeType": "YulIdentifier", - "src": "67:5:39" - }, - "nativeSrc": "67:9:39", - "nodeType": "YulFunctionCall", - "src": "67:9:39" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:39", - "nodeType": "YulIdentifier", - "src": "57:6:39" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:39", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:39", - "nodeType": "YulTypedName", - "src": "40:6:39", - "type": "" - } - ], - "src": "7:75:39" - }, - { - "body": { - "nativeSrc": "177:28:39", - "nodeType": "YulBlock", - "src": "177:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:39", - "nodeType": "YulLiteral", - "src": "194:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:39", - "nodeType": "YulLiteral", - "src": "197:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:39", - "nodeType": "YulIdentifier", - "src": "187:6:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulFunctionCall", - "src": "187:12:39" - }, - "nativeSrc": "187:12:39", - "nodeType": "YulExpressionStatement", - "src": "187:12:39" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:39", - "nodeType": "YulFunctionDefinition", - "src": "88:117:39" - }, - { - "body": { - "nativeSrc": "300:28:39", - "nodeType": "YulBlock", - "src": "300:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:39", - "nodeType": "YulLiteral", - "src": "317:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:39", - "nodeType": "YulLiteral", - "src": "320:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:39", - "nodeType": "YulIdentifier", - "src": "310:6:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulFunctionCall", - "src": "310:12:39" - }, - "nativeSrc": "310:12:39", - "nodeType": "YulExpressionStatement", - "src": "310:12:39" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:39", - "nodeType": "YulFunctionDefinition", - "src": "211:117:39" - }, - { - "body": { - "nativeSrc": "379:32:39", - "nodeType": "YulBlock", - "src": "379:32:39", - "statements": [ - { - "nativeSrc": "389:16:39", - "nodeType": "YulAssignment", - "src": "389:16:39", - "value": { - "name": "value", - "nativeSrc": "400:5:39", - "nodeType": "YulIdentifier", - "src": "400:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:39", - "nodeType": "YulIdentifier", - "src": "389:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nativeSrc": "334:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:39", - "nodeType": "YulTypedName", - "src": "361:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:39", - "nodeType": "YulTypedName", - "src": "371:7:39", - "type": "" - } - ], - "src": "334:77:39" - }, - { - "body": { - "nativeSrc": "460:79:39", - "nodeType": "YulBlock", - "src": "460:79:39", - "statements": [ - { - "body": { - "nativeSrc": "517:16:39", - "nodeType": "YulBlock", - "src": "517:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "526:1:39", - "nodeType": "YulLiteral", - "src": "526:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "529:1:39", - "nodeType": "YulLiteral", - "src": "529:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "519:6:39", - "nodeType": "YulIdentifier", - "src": "519:6:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulFunctionCall", - "src": "519:12:39" - }, - "nativeSrc": "519:12:39", - "nodeType": "YulExpressionStatement", - "src": "519:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "483:5:39", - "nodeType": "YulIdentifier", - "src": "483:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "508:5:39", - "nodeType": "YulIdentifier", - "src": "508:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "490:17:39", - "nodeType": "YulIdentifier", - "src": "490:17:39" - }, - "nativeSrc": "490:24:39", - "nodeType": "YulFunctionCall", - "src": "490:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "480:2:39", - "nodeType": "YulIdentifier", - "src": "480:2:39" - }, - "nativeSrc": "480:35:39", - "nodeType": "YulFunctionCall", - "src": "480:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "473:6:39", - "nodeType": "YulIdentifier", - "src": "473:6:39" - }, - "nativeSrc": "473:43:39", - "nodeType": "YulFunctionCall", - "src": "473:43:39" - }, - "nativeSrc": "470:63:39", - "nodeType": "YulIf", - "src": "470:63:39" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "417:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "453:5:39", - "nodeType": "YulTypedName", - "src": "453:5:39", - "type": "" - } - ], - "src": "417:122:39" - }, - { - "body": { - "nativeSrc": "597:87:39", - "nodeType": "YulBlock", - "src": "597:87:39", - "statements": [ - { - "nativeSrc": "607:29:39", - "nodeType": "YulAssignment", - "src": "607:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "629:6:39", - "nodeType": "YulIdentifier", - "src": "629:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "616:12:39", - "nodeType": "YulIdentifier", - "src": "616:12:39" - }, - "nativeSrc": "616:20:39", - "nodeType": "YulFunctionCall", - "src": "616:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "607:5:39", - "nodeType": "YulIdentifier", - "src": "607:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "672:5:39", - "nodeType": "YulIdentifier", - "src": "672:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "645:26:39", - "nodeType": "YulIdentifier", - "src": "645:26:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulFunctionCall", - "src": "645:33:39" - }, - "nativeSrc": "645:33:39", - "nodeType": "YulExpressionStatement", - "src": "645:33:39" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "545:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "575:6:39", - "nodeType": "YulTypedName", - "src": "575:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "583:3:39", - "nodeType": "YulTypedName", - "src": "583:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "591:5:39", - "nodeType": "YulTypedName", - "src": "591:5:39", - "type": "" - } - ], - "src": "545:139:39" - }, - { - "body": { - "nativeSrc": "735:81:39", - "nodeType": "YulBlock", - "src": "735:81:39", - "statements": [ - { - "nativeSrc": "745:65:39", - "nodeType": "YulAssignment", - "src": "745:65:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "760:5:39", - "nodeType": "YulIdentifier", - "src": "760:5:39" - }, - { - "kind": "number", - "nativeSrc": "767:42:39", - "nodeType": "YulLiteral", - "src": "767:42:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "756:3:39", - "nodeType": "YulIdentifier", - "src": "756:3:39" - }, - "nativeSrc": "756:54:39", - "nodeType": "YulFunctionCall", - "src": "756:54:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "745:7:39", - "nodeType": "YulIdentifier", - "src": "745:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "690:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "717:5:39", - "nodeType": "YulTypedName", - "src": "717:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "727:7:39", - "nodeType": "YulTypedName", - "src": "727:7:39", - "type": "" - } - ], - "src": "690:126:39" - }, - { - "body": { - "nativeSrc": "867:51:39", - "nodeType": "YulBlock", - "src": "867:51:39", - "statements": [ - { - "nativeSrc": "877:35:39", - "nodeType": "YulAssignment", - "src": "877:35:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "906:5:39", - "nodeType": "YulIdentifier", - "src": "906:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "888:17:39", - "nodeType": "YulIdentifier", - "src": "888:17:39" - }, - "nativeSrc": "888:24:39", - "nodeType": "YulFunctionCall", - "src": "888:24:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "877:7:39", - "nodeType": "YulIdentifier", - "src": "877:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "822:96:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "849:5:39", - "nodeType": "YulTypedName", - "src": "849:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "859:7:39", - "nodeType": "YulTypedName", - "src": "859:7:39", - "type": "" - } - ], - "src": "822:96:39" - }, - { - "body": { - "nativeSrc": "967:79:39", - "nodeType": "YulBlock", - "src": "967:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1024:16:39", - "nodeType": "YulBlock", - "src": "1024:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1033:1:39", - "nodeType": "YulLiteral", - "src": "1033:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1036:1:39", - "nodeType": "YulLiteral", - "src": "1036:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1026:6:39", - "nodeType": "YulIdentifier", - "src": "1026:6:39" - }, - "nativeSrc": "1026:12:39", - "nodeType": "YulFunctionCall", - "src": "1026:12:39" - }, - "nativeSrc": "1026:12:39", - "nodeType": "YulExpressionStatement", - "src": "1026:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "990:5:39", - "nodeType": "YulIdentifier", - "src": "990:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1015:5:39", - "nodeType": "YulIdentifier", - "src": "1015:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "997:17:39", - "nodeType": "YulIdentifier", - "src": "997:17:39" - }, - "nativeSrc": "997:24:39", - "nodeType": "YulFunctionCall", - "src": "997:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "987:2:39", - "nodeType": "YulIdentifier", - "src": "987:2:39" - }, - "nativeSrc": "987:35:39", - "nodeType": "YulFunctionCall", - "src": "987:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "980:6:39", - "nodeType": "YulIdentifier", - "src": "980:6:39" - }, - "nativeSrc": "980:43:39", - "nodeType": "YulFunctionCall", - "src": "980:43:39" - }, - "nativeSrc": "977:63:39", - "nodeType": "YulIf", - "src": "977:63:39" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "924:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "960:5:39", - "nodeType": "YulTypedName", - "src": "960:5:39", - "type": "" - } - ], - "src": "924:122:39" - }, - { - "body": { - "nativeSrc": "1104:87:39", - "nodeType": "YulBlock", - "src": "1104:87:39", - "statements": [ - { - "nativeSrc": "1114:29:39", - "nodeType": "YulAssignment", - "src": "1114:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1136:6:39", - "nodeType": "YulIdentifier", - "src": "1136:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1123:12:39", - "nodeType": "YulIdentifier", - "src": "1123:12:39" - }, - "nativeSrc": "1123:20:39", - "nodeType": "YulFunctionCall", - "src": "1123:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1114:5:39", - "nodeType": "YulIdentifier", - "src": "1114:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1179:5:39", - "nodeType": "YulIdentifier", - "src": "1179:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "1152:26:39", - "nodeType": "YulIdentifier", - "src": "1152:26:39" - }, - "nativeSrc": "1152:33:39", - "nodeType": "YulFunctionCall", - "src": "1152:33:39" - }, - "nativeSrc": "1152:33:39", - "nodeType": "YulExpressionStatement", - "src": "1152:33:39" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "1052:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1082:6:39", - "nodeType": "YulTypedName", - "src": "1082:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1090:3:39", - "nodeType": "YulTypedName", - "src": "1090:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1098:5:39", - "nodeType": "YulTypedName", - "src": "1098:5:39", - "type": "" - } - ], - "src": "1052:139:39" - }, - { - "body": { - "nativeSrc": "1242:32:39", - "nodeType": "YulBlock", - "src": "1242:32:39", - "statements": [ - { - "nativeSrc": "1252:16:39", - "nodeType": "YulAssignment", - "src": "1252:16:39", - "value": { - "name": "value", - "nativeSrc": "1263:5:39", - "nodeType": "YulIdentifier", - "src": "1263:5:39" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1252:7:39", - "nodeType": "YulIdentifier", - "src": "1252:7:39" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "1197:77:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1224:5:39", - "nodeType": "YulTypedName", - "src": "1224:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1234:7:39", - "nodeType": "YulTypedName", - "src": "1234:7:39", - "type": "" - } - ], - "src": "1197:77:39" - }, - { - "body": { - "nativeSrc": "1323:79:39", - "nodeType": "YulBlock", - "src": "1323:79:39", - "statements": [ - { - "body": { - "nativeSrc": "1380:16:39", - "nodeType": "YulBlock", - "src": "1380:16:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1389:1:39", - "nodeType": "YulLiteral", - "src": "1389:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1392:1:39", - "nodeType": "YulLiteral", - "src": "1392:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1382:6:39", - "nodeType": "YulIdentifier", - "src": "1382:6:39" - }, - "nativeSrc": "1382:12:39", - "nodeType": "YulFunctionCall", - "src": "1382:12:39" - }, - "nativeSrc": "1382:12:39", - "nodeType": "YulExpressionStatement", - "src": "1382:12:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1346:5:39", - "nodeType": "YulIdentifier", - "src": "1346:5:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1371:5:39", - "nodeType": "YulIdentifier", - "src": "1371:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "1353:17:39", - "nodeType": "YulIdentifier", - "src": "1353:17:39" - }, - "nativeSrc": "1353:24:39", - "nodeType": "YulFunctionCall", - "src": "1353:24:39" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1343:2:39", - "nodeType": "YulIdentifier", - "src": "1343:2:39" - }, - "nativeSrc": "1343:35:39", - "nodeType": "YulFunctionCall", - "src": "1343:35:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1336:6:39", - "nodeType": "YulIdentifier", - "src": "1336:6:39" - }, - "nativeSrc": "1336:43:39", - "nodeType": "YulFunctionCall", - "src": "1336:43:39" - }, - "nativeSrc": "1333:63:39", - "nodeType": "YulIf", - "src": "1333:63:39" - } - ] - }, - "name": "validator_revert_t_uint256", - "nativeSrc": "1280:122:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1316:5:39", - "nodeType": "YulTypedName", - "src": "1316:5:39", - "type": "" - } - ], - "src": "1280:122:39" - }, - { - "body": { - "nativeSrc": "1460:87:39", - "nodeType": "YulBlock", - "src": "1460:87:39", - "statements": [ - { - "nativeSrc": "1470:29:39", - "nodeType": "YulAssignment", - "src": "1470:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1492:6:39", - "nodeType": "YulIdentifier", - "src": "1492:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1479:12:39", - "nodeType": "YulIdentifier", - "src": "1479:12:39" - }, - "nativeSrc": "1479:20:39", - "nodeType": "YulFunctionCall", - "src": "1479:20:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1470:5:39", - "nodeType": "YulIdentifier", - "src": "1470:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1535:5:39", - "nodeType": "YulIdentifier", - "src": "1535:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "1508:26:39", - "nodeType": "YulIdentifier", - "src": "1508:26:39" - }, - "nativeSrc": "1508:33:39", - "nodeType": "YulFunctionCall", - "src": "1508:33:39" - }, - "nativeSrc": "1508:33:39", - "nodeType": "YulExpressionStatement", - "src": "1508:33:39" - } - ] - }, - "name": "abi_decode_t_uint256", - "nativeSrc": "1408:139:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1438:6:39", - "nodeType": "YulTypedName", - "src": "1438:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1446:3:39", - "nodeType": "YulTypedName", - "src": "1446:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1454:5:39", - "nodeType": "YulTypedName", - "src": "1454:5:39", - "type": "" - } - ], - "src": "1408:139:39" - }, - { - "body": { - "nativeSrc": "1653:519:39", - "nodeType": "YulBlock", - "src": "1653:519:39", - "statements": [ - { - "body": { - "nativeSrc": "1699:83:39", - "nodeType": "YulBlock", - "src": "1699:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1701:77:39", - "nodeType": "YulIdentifier", - "src": "1701:77:39" - }, - "nativeSrc": "1701:79:39", - "nodeType": "YulFunctionCall", - "src": "1701:79:39" - }, - "nativeSrc": "1701:79:39", - "nodeType": "YulExpressionStatement", - "src": "1701:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1674:7:39", - "nodeType": "YulIdentifier", - "src": "1674:7:39" - }, - { - "name": "headStart", - "nativeSrc": "1683:9:39", - "nodeType": "YulIdentifier", - "src": "1683:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1670:3:39", - "nodeType": "YulIdentifier", - "src": "1670:3:39" - }, - "nativeSrc": "1670:23:39", - "nodeType": "YulFunctionCall", - "src": "1670:23:39" - }, - { - "kind": "number", - "nativeSrc": "1695:2:39", - "nodeType": "YulLiteral", - "src": "1695:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1666:3:39", - "nodeType": "YulIdentifier", - "src": "1666:3:39" - }, - "nativeSrc": "1666:32:39", - "nodeType": "YulFunctionCall", - "src": "1666:32:39" - }, - "nativeSrc": "1663:119:39", - "nodeType": "YulIf", - "src": "1663:119:39" - }, - { - "nativeSrc": "1792:117:39", - "nodeType": "YulBlock", - "src": "1792:117:39", - "statements": [ - { - "nativeSrc": "1807:15:39", - "nodeType": "YulVariableDeclaration", - "src": "1807:15:39", - "value": { - "kind": "number", - "nativeSrc": "1821:1:39", - "nodeType": "YulLiteral", - "src": "1821:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1811:6:39", - "nodeType": "YulTypedName", - "src": "1811:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1836:63:39", - "nodeType": "YulAssignment", - "src": "1836:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1871:9:39", - "nodeType": "YulIdentifier", - "src": "1871:9:39" - }, - { - "name": "offset", - "nativeSrc": "1882:6:39", - "nodeType": "YulIdentifier", - "src": "1882:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1867:3:39", - "nodeType": "YulIdentifier", - "src": "1867:3:39" - }, - "nativeSrc": "1867:22:39", - "nodeType": "YulFunctionCall", - "src": "1867:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "1891:7:39", - "nodeType": "YulIdentifier", - "src": "1891:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "1846:20:39", - "nodeType": "YulIdentifier", - "src": "1846:20:39" - }, - "nativeSrc": "1846:53:39", - "nodeType": "YulFunctionCall", - "src": "1846:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1836:6:39", - "nodeType": "YulIdentifier", - "src": "1836:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "1919:118:39", - "nodeType": "YulBlock", - "src": "1919:118:39", - "statements": [ - { - "nativeSrc": "1934:16:39", - "nodeType": "YulVariableDeclaration", - "src": "1934:16:39", - "value": { - "kind": "number", - "nativeSrc": "1948:2:39", - "nodeType": "YulLiteral", - "src": "1948:2:39", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1938:6:39", - "nodeType": "YulTypedName", - "src": "1938:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "1964:63:39", - "nodeType": "YulAssignment", - "src": "1964:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1999:9:39", - "nodeType": "YulIdentifier", - "src": "1999:9:39" - }, - { - "name": "offset", - "nativeSrc": "2010:6:39", - "nodeType": "YulIdentifier", - "src": "2010:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1995:3:39", - "nodeType": "YulIdentifier", - "src": "1995:3:39" - }, - "nativeSrc": "1995:22:39", - "nodeType": "YulFunctionCall", - "src": "1995:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2019:7:39", - "nodeType": "YulIdentifier", - "src": "2019:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "1974:20:39", - "nodeType": "YulIdentifier", - "src": "1974:20:39" - }, - "nativeSrc": "1974:53:39", - "nodeType": "YulFunctionCall", - "src": "1974:53:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1964:6:39", - "nodeType": "YulIdentifier", - "src": "1964:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "2047:118:39", - "nodeType": "YulBlock", - "src": "2047:118:39", - "statements": [ - { - "nativeSrc": "2062:16:39", - "nodeType": "YulVariableDeclaration", - "src": "2062:16:39", - "value": { - "kind": "number", - "nativeSrc": "2076:2:39", - "nodeType": "YulLiteral", - "src": "2076:2:39", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2066:6:39", - "nodeType": "YulTypedName", - "src": "2066:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "2092:63:39", - "nodeType": "YulAssignment", - "src": "2092:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2127:9:39", - "nodeType": "YulIdentifier", - "src": "2127:9:39" - }, - { - "name": "offset", - "nativeSrc": "2138:6:39", - "nodeType": "YulIdentifier", - "src": "2138:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2123:3:39", - "nodeType": "YulIdentifier", - "src": "2123:3:39" - }, - "nativeSrc": "2123:22:39", - "nodeType": "YulFunctionCall", - "src": "2123:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "2147:7:39", - "nodeType": "YulIdentifier", - "src": "2147:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "2102:20:39", - "nodeType": "YulIdentifier", - "src": "2102:20:39" - }, - "nativeSrc": "2102:53:39", - "nodeType": "YulFunctionCall", - "src": "2102:53:39" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "2092:6:39", - "nodeType": "YulIdentifier", - "src": "2092:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_addresst_uint256", - "nativeSrc": "1553:619:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1607:9:39", - "nodeType": "YulTypedName", - "src": "1607:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1618:7:39", - "nodeType": "YulTypedName", - "src": "1618:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1630:6:39", - "nodeType": "YulTypedName", - "src": "1630:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1638:6:39", - "nodeType": "YulTypedName", - "src": "1638:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1646:6:39", - "nodeType": "YulTypedName", - "src": "1646:6:39", - "type": "" - } - ], - "src": "1553:619:39" - }, - { - "body": { - "nativeSrc": "2243:53:39", - "nodeType": "YulBlock", - "src": "2243:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "2260:3:39", - "nodeType": "YulIdentifier", - "src": "2260:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2283:5:39", - "nodeType": "YulIdentifier", - "src": "2283:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "2265:17:39", - "nodeType": "YulIdentifier", - "src": "2265:17:39" - }, - "nativeSrc": "2265:24:39", - "nodeType": "YulFunctionCall", - "src": "2265:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2253:6:39", - "nodeType": "YulIdentifier", - "src": "2253:6:39" - }, - "nativeSrc": "2253:37:39", - "nodeType": "YulFunctionCall", - "src": "2253:37:39" - }, - "nativeSrc": "2253:37:39", - "nodeType": "YulExpressionStatement", - "src": "2253:37:39" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "2178:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2231:5:39", - "nodeType": "YulTypedName", - "src": "2231:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "2238:3:39", - "nodeType": "YulTypedName", - "src": "2238:3:39", - "type": "" - } - ], - "src": "2178:118:39" - }, - { - "body": { - "nativeSrc": "2400:124:39", - "nodeType": "YulBlock", - "src": "2400:124:39", - "statements": [ - { - "nativeSrc": "2410:26:39", - "nodeType": "YulAssignment", - "src": "2410:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2422:9:39", - "nodeType": "YulIdentifier", - "src": "2422:9:39" - }, - { - "kind": "number", - "nativeSrc": "2433:2:39", - "nodeType": "YulLiteral", - "src": "2433:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2418:3:39", - "nodeType": "YulIdentifier", - "src": "2418:3:39" - }, - "nativeSrc": "2418:18:39", - "nodeType": "YulFunctionCall", - "src": "2418:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2410:4:39", - "nodeType": "YulIdentifier", - "src": "2410:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2490:6:39", - "nodeType": "YulIdentifier", - "src": "2490:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2503:9:39", - "nodeType": "YulIdentifier", - "src": "2503:9:39" - }, - { - "kind": "number", - "nativeSrc": "2514:1:39", - "nodeType": "YulLiteral", - "src": "2514:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2499:3:39", - "nodeType": "YulIdentifier", - "src": "2499:3:39" - }, - "nativeSrc": "2499:17:39", - "nodeType": "YulFunctionCall", - "src": "2499:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "2446:43:39", - "nodeType": "YulIdentifier", - "src": "2446:43:39" - }, - "nativeSrc": "2446:71:39", - "nodeType": "YulFunctionCall", - "src": "2446:71:39" - }, - "nativeSrc": "2446:71:39", - "nodeType": "YulExpressionStatement", - "src": "2446:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "2302:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2372:9:39", - "nodeType": "YulTypedName", - "src": "2372:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2384:6:39", - "nodeType": "YulTypedName", - "src": "2384:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2395:4:39", - "nodeType": "YulTypedName", - "src": "2395:4:39", - "type": "" - } - ], - "src": "2302:222:39" - }, - { - "body": { - "nativeSrc": "2619:28:39", - "nodeType": "YulBlock", - "src": "2619:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2636:1:39", - "nodeType": "YulLiteral", - "src": "2636:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2639:1:39", - "nodeType": "YulLiteral", - "src": "2639:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2629:6:39", - "nodeType": "YulIdentifier", - "src": "2629:6:39" - }, - "nativeSrc": "2629:12:39", - "nodeType": "YulFunctionCall", - "src": "2629:12:39" - }, - "nativeSrc": "2629:12:39", - "nodeType": "YulExpressionStatement", - "src": "2629:12:39" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "2530:117:39", - "nodeType": "YulFunctionDefinition", - "src": "2530:117:39" - }, - { - "body": { - "nativeSrc": "2742:28:39", - "nodeType": "YulBlock", - "src": "2742:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2759:1:39", - "nodeType": "YulLiteral", - "src": "2759:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2762:1:39", - "nodeType": "YulLiteral", - "src": "2762:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2752:6:39", - "nodeType": "YulIdentifier", - "src": "2752:6:39" - }, - "nativeSrc": "2752:12:39", - "nodeType": "YulFunctionCall", - "src": "2752:12:39" - }, - "nativeSrc": "2752:12:39", - "nodeType": "YulExpressionStatement", - "src": "2752:12:39" - } - ] - }, - "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", - "nativeSrc": "2653:117:39", - "nodeType": "YulFunctionDefinition", - "src": "2653:117:39" - }, - { - "body": { - "nativeSrc": "2865:28:39", - "nodeType": "YulBlock", - "src": "2865:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2882:1:39", - "nodeType": "YulLiteral", - "src": "2882:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2885:1:39", - "nodeType": "YulLiteral", - "src": "2885:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2875:6:39", - "nodeType": "YulIdentifier", - "src": "2875:6:39" - }, - "nativeSrc": "2875:12:39", - "nodeType": "YulFunctionCall", - "src": "2875:12:39" - }, - "nativeSrc": "2875:12:39", - "nodeType": "YulExpressionStatement", - "src": "2875:12:39" - } - ] - }, - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "2776:117:39", - "nodeType": "YulFunctionDefinition", - "src": "2776:117:39" - }, - { - "body": { - "nativeSrc": "3006:478:39", - "nodeType": "YulBlock", - "src": "3006:478:39", - "statements": [ - { - "body": { - "nativeSrc": "3055:83:39", - "nodeType": "YulBlock", - "src": "3055:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "3057:77:39", - "nodeType": "YulIdentifier", - "src": "3057:77:39" - }, - "nativeSrc": "3057:79:39", - "nodeType": "YulFunctionCall", - "src": "3057:79:39" - }, - "nativeSrc": "3057:79:39", - "nodeType": "YulExpressionStatement", - "src": "3057:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3034:6:39", - "nodeType": "YulIdentifier", - "src": "3034:6:39" - }, - { - "kind": "number", - "nativeSrc": "3042:4:39", - "nodeType": "YulLiteral", - "src": "3042:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3030:3:39", - "nodeType": "YulIdentifier", - "src": "3030:3:39" - }, - "nativeSrc": "3030:17:39", - "nodeType": "YulFunctionCall", - "src": "3030:17:39" - }, - { - "name": "end", - "nativeSrc": "3049:3:39", - "nodeType": "YulIdentifier", - "src": "3049:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3026:3:39", - "nodeType": "YulIdentifier", - "src": "3026:3:39" - }, - "nativeSrc": "3026:27:39", - "nodeType": "YulFunctionCall", - "src": "3026:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3019:6:39", - "nodeType": "YulIdentifier", - "src": "3019:6:39" - }, - "nativeSrc": "3019:35:39", - "nodeType": "YulFunctionCall", - "src": "3019:35:39" - }, - "nativeSrc": "3016:122:39", - "nodeType": "YulIf", - "src": "3016:122:39" - }, - { - "nativeSrc": "3147:30:39", - "nodeType": "YulAssignment", - "src": "3147:30:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3170:6:39", - "nodeType": "YulIdentifier", - "src": "3170:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3157:12:39", - "nodeType": "YulIdentifier", - "src": "3157:12:39" - }, - "nativeSrc": "3157:20:39", - "nodeType": "YulFunctionCall", - "src": "3157:20:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "3147:6:39", - "nodeType": "YulIdentifier", - "src": "3147:6:39" - } - ] - }, - { - "body": { - "nativeSrc": "3220:83:39", - "nodeType": "YulBlock", - "src": "3220:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", - "nativeSrc": "3222:77:39", - "nodeType": "YulIdentifier", - "src": "3222:77:39" - }, - "nativeSrc": "3222:79:39", - "nodeType": "YulFunctionCall", - "src": "3222:79:39" - }, - "nativeSrc": "3222:79:39", - "nodeType": "YulExpressionStatement", - "src": "3222:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "3192:6:39", - "nodeType": "YulIdentifier", - "src": "3192:6:39" - }, - { - "kind": "number", - "nativeSrc": "3200:18:39", - "nodeType": "YulLiteral", - "src": "3200:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3189:2:39", - "nodeType": "YulIdentifier", - "src": "3189:2:39" - }, - "nativeSrc": "3189:30:39", - "nodeType": "YulFunctionCall", - "src": "3189:30:39" - }, - "nativeSrc": "3186:117:39", - "nodeType": "YulIf", - "src": "3186:117:39" - }, - { - "nativeSrc": "3312:29:39", - "nodeType": "YulAssignment", - "src": "3312:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3328:6:39", - "nodeType": "YulIdentifier", - "src": "3328:6:39" - }, - { - "kind": "number", - "nativeSrc": "3336:4:39", - "nodeType": "YulLiteral", - "src": "3336:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3324:3:39", - "nodeType": "YulIdentifier", - "src": "3324:3:39" - }, - "nativeSrc": "3324:17:39", - "nodeType": "YulFunctionCall", - "src": "3324:17:39" - }, - "variableNames": [ - { - "name": "arrayPos", - "nativeSrc": "3312:8:39", - "nodeType": "YulIdentifier", - "src": "3312:8:39" - } - ] - }, - { - "body": { - "nativeSrc": "3395:83:39", - "nodeType": "YulBlock", - "src": "3395:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "3397:77:39", - "nodeType": "YulIdentifier", - "src": "3397:77:39" - }, - "nativeSrc": "3397:79:39", - "nodeType": "YulFunctionCall", - "src": "3397:79:39" - }, - "nativeSrc": "3397:79:39", - "nodeType": "YulExpressionStatement", - "src": "3397:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "arrayPos", - "nativeSrc": "3360:8:39", - "nodeType": "YulIdentifier", - "src": "3360:8:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "3374:6:39", - "nodeType": "YulIdentifier", - "src": "3374:6:39" - }, - { - "kind": "number", - "nativeSrc": "3382:4:39", - "nodeType": "YulLiteral", - "src": "3382:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "3370:3:39", - "nodeType": "YulIdentifier", - "src": "3370:3:39" - }, - "nativeSrc": "3370:17:39", - "nodeType": "YulFunctionCall", - "src": "3370:17:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3356:3:39", - "nodeType": "YulIdentifier", - "src": "3356:3:39" - }, - "nativeSrc": "3356:32:39", - "nodeType": "YulFunctionCall", - "src": "3356:32:39" - }, - { - "name": "end", - "nativeSrc": "3390:3:39", - "nodeType": "YulIdentifier", - "src": "3390:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3353:2:39", - "nodeType": "YulIdentifier", - "src": "3353:2:39" - }, - "nativeSrc": "3353:41:39", - "nodeType": "YulFunctionCall", - "src": "3353:41:39" - }, - "nativeSrc": "3350:128:39", - "nodeType": "YulIf", - "src": "3350:128:39" - } - ] - }, - "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", - "nativeSrc": "2916:568:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2973:6:39", - "nodeType": "YulTypedName", - "src": "2973:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2981:3:39", - "nodeType": "YulTypedName", - "src": "2981:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "arrayPos", - "nativeSrc": "2989:8:39", - "nodeType": "YulTypedName", - "src": "2989:8:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2999:6:39", - "nodeType": "YulTypedName", - "src": "2999:6:39", - "type": "" - } - ], - "src": "2916:568:39" - }, - { - "body": { - "nativeSrc": "3626:478:39", - "nodeType": "YulBlock", - "src": "3626:478:39", - "statements": [ - { - "body": { - "nativeSrc": "3675:83:39", - "nodeType": "YulBlock", - "src": "3675:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "3677:77:39", - "nodeType": "YulIdentifier", - "src": "3677:77:39" - }, - "nativeSrc": "3677:79:39", - "nodeType": "YulFunctionCall", - "src": "3677:79:39" - }, - "nativeSrc": "3677:79:39", - "nodeType": "YulExpressionStatement", - "src": "3677:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3654:6:39", - "nodeType": "YulIdentifier", - "src": "3654:6:39" - }, - { - "kind": "number", - "nativeSrc": "3662:4:39", - "nodeType": "YulLiteral", - "src": "3662:4:39", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3650:3:39", - "nodeType": "YulIdentifier", - "src": "3650:3:39" - }, - "nativeSrc": "3650:17:39", - "nodeType": "YulFunctionCall", - "src": "3650:17:39" - }, - { - "name": "end", - "nativeSrc": "3669:3:39", - "nodeType": "YulIdentifier", - "src": "3669:3:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3646:3:39", - "nodeType": "YulIdentifier", - "src": "3646:3:39" - }, - "nativeSrc": "3646:27:39", - "nodeType": "YulFunctionCall", - "src": "3646:27:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3639:6:39", - "nodeType": "YulIdentifier", - "src": "3639:6:39" - }, - "nativeSrc": "3639:35:39", - "nodeType": "YulFunctionCall", - "src": "3639:35:39" - }, - "nativeSrc": "3636:122:39", - "nodeType": "YulIf", - "src": "3636:122:39" - }, - { - "nativeSrc": "3767:30:39", - "nodeType": "YulAssignment", - "src": "3767:30:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3790:6:39", - "nodeType": "YulIdentifier", - "src": "3790:6:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3777:12:39", - "nodeType": "YulIdentifier", - "src": "3777:12:39" - }, - "nativeSrc": "3777:20:39", - "nodeType": "YulFunctionCall", - "src": "3777:20:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "3767:6:39", - "nodeType": "YulIdentifier", - "src": "3767:6:39" - } - ] - }, - { - "body": { - "nativeSrc": "3840:83:39", - "nodeType": "YulBlock", - "src": "3840:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", - "nativeSrc": "3842:77:39", - "nodeType": "YulIdentifier", - "src": "3842:77:39" - }, - "nativeSrc": "3842:79:39", - "nodeType": "YulFunctionCall", - "src": "3842:79:39" - }, - "nativeSrc": "3842:79:39", - "nodeType": "YulExpressionStatement", - "src": "3842:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "3812:6:39", - "nodeType": "YulIdentifier", - "src": "3812:6:39" - }, - { - "kind": "number", - "nativeSrc": "3820:18:39", - "nodeType": "YulLiteral", - "src": "3820:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3809:2:39", - "nodeType": "YulIdentifier", - "src": "3809:2:39" - }, - "nativeSrc": "3809:30:39", - "nodeType": "YulFunctionCall", - "src": "3809:30:39" - }, - "nativeSrc": "3806:117:39", - "nodeType": "YulIf", - "src": "3806:117:39" - }, - { - "nativeSrc": "3932:29:39", - "nodeType": "YulAssignment", - "src": "3932:29:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3948:6:39", - "nodeType": "YulIdentifier", - "src": "3948:6:39" - }, - { - "kind": "number", - "nativeSrc": "3956:4:39", - "nodeType": "YulLiteral", - "src": "3956:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3944:3:39", - "nodeType": "YulIdentifier", - "src": "3944:3:39" - }, - "nativeSrc": "3944:17:39", - "nodeType": "YulFunctionCall", - "src": "3944:17:39" - }, - "variableNames": [ - { - "name": "arrayPos", - "nativeSrc": "3932:8:39", - "nodeType": "YulIdentifier", - "src": "3932:8:39" - } - ] - }, - { - "body": { - "nativeSrc": "4015:83:39", - "nodeType": "YulBlock", - "src": "4015:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "4017:77:39", - "nodeType": "YulIdentifier", - "src": "4017:77:39" - }, - "nativeSrc": "4017:79:39", - "nodeType": "YulFunctionCall", - "src": "4017:79:39" - }, - "nativeSrc": "4017:79:39", - "nodeType": "YulExpressionStatement", - "src": "4017:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "arrayPos", - "nativeSrc": "3980:8:39", - "nodeType": "YulIdentifier", - "src": "3980:8:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "3994:6:39", - "nodeType": "YulIdentifier", - "src": "3994:6:39" - }, - { - "kind": "number", - "nativeSrc": "4002:4:39", - "nodeType": "YulLiteral", - "src": "4002:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "3990:3:39", - "nodeType": "YulIdentifier", - "src": "3990:3:39" - }, - "nativeSrc": "3990:17:39", - "nodeType": "YulFunctionCall", - "src": "3990:17:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3976:3:39", - "nodeType": "YulIdentifier", - "src": "3976:3:39" - }, - "nativeSrc": "3976:32:39", - "nodeType": "YulFunctionCall", - "src": "3976:32:39" - }, - { - "name": "end", - "nativeSrc": "4010:3:39", - "nodeType": "YulIdentifier", - "src": "4010:3:39" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3973:2:39", - "nodeType": "YulIdentifier", - "src": "3973:2:39" - }, - "nativeSrc": "3973:41:39", - "nodeType": "YulFunctionCall", - "src": "3973:41:39" - }, - "nativeSrc": "3970:128:39", - "nodeType": "YulIf", - "src": "3970:128:39" - } - ] - }, - "name": "abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "nativeSrc": "3509:595:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3593:6:39", - "nodeType": "YulTypedName", - "src": "3593:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3601:3:39", - "nodeType": "YulTypedName", - "src": "3601:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "arrayPos", - "nativeSrc": "3609:8:39", - "nodeType": "YulTypedName", - "src": "3609:8:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3619:6:39", - "nodeType": "YulTypedName", - "src": "3619:6:39", - "type": "" - } - ], - "src": "3509:595:39" - }, - { - "body": { - "nativeSrc": "4307:936:39", - "nodeType": "YulBlock", - "src": "4307:936:39", - "statements": [ - { - "body": { - "nativeSrc": "4353:83:39", - "nodeType": "YulBlock", - "src": "4353:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "4355:77:39", - "nodeType": "YulIdentifier", - "src": "4355:77:39" - }, - "nativeSrc": "4355:79:39", - "nodeType": "YulFunctionCall", - "src": "4355:79:39" - }, - "nativeSrc": "4355:79:39", - "nodeType": "YulExpressionStatement", - "src": "4355:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4328:7:39", - "nodeType": "YulIdentifier", - "src": "4328:7:39" - }, - { - "name": "headStart", - "nativeSrc": "4337:9:39", - "nodeType": "YulIdentifier", - "src": "4337:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4324:3:39", - "nodeType": "YulIdentifier", - "src": "4324:3:39" - }, - "nativeSrc": "4324:23:39", - "nodeType": "YulFunctionCall", - "src": "4324:23:39" - }, - { - "kind": "number", - "nativeSrc": "4349:2:39", - "nodeType": "YulLiteral", - "src": "4349:2:39", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4320:3:39", - "nodeType": "YulIdentifier", - "src": "4320:3:39" - }, - "nativeSrc": "4320:32:39", - "nodeType": "YulFunctionCall", - "src": "4320:32:39" - }, - "nativeSrc": "4317:119:39", - "nodeType": "YulIf", - "src": "4317:119:39" - }, - { - "nativeSrc": "4446:117:39", - "nodeType": "YulBlock", - "src": "4446:117:39", - "statements": [ - { - "nativeSrc": "4461:15:39", - "nodeType": "YulVariableDeclaration", - "src": "4461:15:39", - "value": { - "kind": "number", - "nativeSrc": "4475:1:39", - "nodeType": "YulLiteral", - "src": "4475:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4465:6:39", - "nodeType": "YulTypedName", - "src": "4465:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "4490:63:39", - "nodeType": "YulAssignment", - "src": "4490:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4525:9:39", - "nodeType": "YulIdentifier", - "src": "4525:9:39" - }, - { - "name": "offset", - "nativeSrc": "4536:6:39", - "nodeType": "YulIdentifier", - "src": "4536:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4521:3:39", - "nodeType": "YulIdentifier", - "src": "4521:3:39" - }, - "nativeSrc": "4521:22:39", - "nodeType": "YulFunctionCall", - "src": "4521:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4545:7:39", - "nodeType": "YulIdentifier", - "src": "4545:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "4500:20:39", - "nodeType": "YulIdentifier", - "src": "4500:20:39" - }, - "nativeSrc": "4500:53:39", - "nodeType": "YulFunctionCall", - "src": "4500:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4490:6:39", - "nodeType": "YulIdentifier", - "src": "4490:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4573:313:39", - "nodeType": "YulBlock", - "src": "4573:313:39", - "statements": [ - { - "nativeSrc": "4588:46:39", - "nodeType": "YulVariableDeclaration", - "src": "4588:46:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4619:9:39", - "nodeType": "YulIdentifier", - "src": "4619:9:39" - }, - { - "kind": "number", - "nativeSrc": "4630:2:39", - "nodeType": "YulLiteral", - "src": "4630:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4615:3:39", - "nodeType": "YulIdentifier", - "src": "4615:3:39" - }, - "nativeSrc": "4615:18:39", - "nodeType": "YulFunctionCall", - "src": "4615:18:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4602:12:39", - "nodeType": "YulIdentifier", - "src": "4602:12:39" - }, - "nativeSrc": "4602:32:39", - "nodeType": "YulFunctionCall", - "src": "4602:32:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4592:6:39", - "nodeType": "YulTypedName", - "src": "4592:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "4681:83:39", - "nodeType": "YulBlock", - "src": "4681:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "4683:77:39", - "nodeType": "YulIdentifier", - "src": "4683:77:39" - }, - "nativeSrc": "4683:79:39", - "nodeType": "YulFunctionCall", - "src": "4683:79:39" - }, - "nativeSrc": "4683:79:39", - "nodeType": "YulExpressionStatement", - "src": "4683:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "4653:6:39", - "nodeType": "YulIdentifier", - "src": "4653:6:39" - }, - { - "kind": "number", - "nativeSrc": "4661:18:39", - "nodeType": "YulLiteral", - "src": "4661:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "4650:2:39", - "nodeType": "YulIdentifier", - "src": "4650:2:39" - }, - "nativeSrc": "4650:30:39", - "nodeType": "YulFunctionCall", - "src": "4650:30:39" - }, - "nativeSrc": "4647:117:39", - "nodeType": "YulIf", - "src": "4647:117:39" - }, - { - "nativeSrc": "4778:98:39", - "nodeType": "YulAssignment", - "src": "4778:98:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4848:9:39", - "nodeType": "YulIdentifier", - "src": "4848:9:39" - }, - { - "name": "offset", - "nativeSrc": "4859:6:39", - "nodeType": "YulIdentifier", - "src": "4859:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4844:3:39", - "nodeType": "YulIdentifier", - "src": "4844:3:39" - }, - "nativeSrc": "4844:22:39", - "nodeType": "YulFunctionCall", - "src": "4844:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "4868:7:39", - "nodeType": "YulIdentifier", - "src": "4868:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", - "nativeSrc": "4796:47:39", - "nodeType": "YulIdentifier", - "src": "4796:47:39" - }, - "nativeSrc": "4796:80:39", - "nodeType": "YulFunctionCall", - "src": "4796:80:39" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4778:6:39", - "nodeType": "YulIdentifier", - "src": "4778:6:39" - }, - { - "name": "value2", - "nativeSrc": "4786:6:39", - "nodeType": "YulIdentifier", - "src": "4786:6:39" - } - ] - } - ] - }, - { - "nativeSrc": "4896:340:39", - "nodeType": "YulBlock", - "src": "4896:340:39", - "statements": [ - { - "nativeSrc": "4911:46:39", - "nodeType": "YulVariableDeclaration", - "src": "4911:46:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4942:9:39", - "nodeType": "YulIdentifier", - "src": "4942:9:39" - }, - { - "kind": "number", - "nativeSrc": "4953:2:39", - "nodeType": "YulLiteral", - "src": "4953:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4938:3:39", - "nodeType": "YulIdentifier", - "src": "4938:3:39" - }, - "nativeSrc": "4938:18:39", - "nodeType": "YulFunctionCall", - "src": "4938:18:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4925:12:39", - "nodeType": "YulIdentifier", - "src": "4925:12:39" - }, - "nativeSrc": "4925:32:39", - "nodeType": "YulFunctionCall", - "src": "4925:32:39" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4915:6:39", - "nodeType": "YulTypedName", - "src": "4915:6:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5004:83:39", - "nodeType": "YulBlock", - "src": "5004:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "5006:77:39", - "nodeType": "YulIdentifier", - "src": "5006:77:39" - }, - "nativeSrc": "5006:79:39", - "nodeType": "YulFunctionCall", - "src": "5006:79:39" - }, - "nativeSrc": "5006:79:39", - "nodeType": "YulExpressionStatement", - "src": "5006:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "4976:6:39", - "nodeType": "YulIdentifier", - "src": "4976:6:39" - }, - { - "kind": "number", - "nativeSrc": "4984:18:39", - "nodeType": "YulLiteral", - "src": "4984:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "4973:2:39", - "nodeType": "YulIdentifier", - "src": "4973:2:39" - }, - "nativeSrc": "4973:30:39", - "nodeType": "YulFunctionCall", - "src": "4973:30:39" - }, - "nativeSrc": "4970:117:39", - "nodeType": "YulIf", - "src": "4970:117:39" - }, - { - "nativeSrc": "5101:125:39", - "nodeType": "YulAssignment", - "src": "5101:125:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5198:9:39", - "nodeType": "YulIdentifier", - "src": "5198:9:39" - }, - { - "name": "offset", - "nativeSrc": "5209:6:39", - "nodeType": "YulIdentifier", - "src": "5209:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5194:3:39", - "nodeType": "YulIdentifier", - "src": "5194:3:39" - }, - "nativeSrc": "5194:22:39", - "nodeType": "YulFunctionCall", - "src": "5194:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "5218:7:39", - "nodeType": "YulIdentifier", - "src": "5218:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr", - "nativeSrc": "5119:74:39", - "nodeType": "YulIdentifier", - "src": "5119:74:39" - }, - "nativeSrc": "5119:107:39", - "nodeType": "YulFunctionCall", - "src": "5119:107:39" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "5101:6:39", - "nodeType": "YulIdentifier", - "src": "5101:6:39" - }, - { - "name": "value4", - "nativeSrc": "5109:6:39", - "nodeType": "YulIdentifier", - "src": "5109:6:39" - } - ] - } - ] - } - ] - }, - "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:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4245:9:39", - "nodeType": "YulTypedName", - "src": "4245:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4256:7:39", - "nodeType": "YulTypedName", - "src": "4256:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4268:6:39", - "nodeType": "YulTypedName", - "src": "4268:6:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4276:6:39", - "nodeType": "YulTypedName", - "src": "4276:6:39", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4284:6:39", - "nodeType": "YulTypedName", - "src": "4284:6:39", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "4292:6:39", - "nodeType": "YulTypedName", - "src": "4292:6:39", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "4300:6:39", - "nodeType": "YulTypedName", - "src": "4300:6:39", - "type": "" - } - ], - "src": "4110:1133:39" - }, - { - "body": { - "nativeSrc": "5281:28:39", - "nodeType": "YulBlock", - "src": "5281:28:39", - "statements": [ - { - "nativeSrc": "5291:12:39", - "nodeType": "YulAssignment", - "src": "5291:12:39", - "value": { - "name": "value", - "nativeSrc": "5298:5:39", - "nodeType": "YulIdentifier", - "src": "5298:5:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "5291:3:39", - "nodeType": "YulIdentifier", - "src": "5291:3:39" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "5249:60:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5267:5:39", - "nodeType": "YulTypedName", - "src": "5267:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "5277:3:39", - "nodeType": "YulTypedName", - "src": "5277:3:39", - "type": "" - } - ], - "src": "5249:60:39" - }, - { - "body": { - "nativeSrc": "5375:82:39", - "nodeType": "YulBlock", - "src": "5375:82:39", - "statements": [ - { - "nativeSrc": "5385:66:39", - "nodeType": "YulAssignment", - "src": "5385:66:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5443:5:39", - "nodeType": "YulIdentifier", - "src": "5443:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "5425:17:39", - "nodeType": "YulIdentifier", - "src": "5425:17:39" - }, - "nativeSrc": "5425:24:39", - "nodeType": "YulFunctionCall", - "src": "5425:24:39" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "5416:8:39", - "nodeType": "YulIdentifier", - "src": "5416:8:39" - }, - "nativeSrc": "5416:34:39", - "nodeType": "YulFunctionCall", - "src": "5416:34:39" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "5398:17:39", - "nodeType": "YulIdentifier", - "src": "5398:17:39" - }, - "nativeSrc": "5398:53:39", - "nodeType": "YulFunctionCall", - "src": "5398:53:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5385:9:39", - "nodeType": "YulIdentifier", - "src": "5385:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "5315:142:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5355:5:39", - "nodeType": "YulTypedName", - "src": "5355:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5365:9:39", - "nodeType": "YulTypedName", - "src": "5365:9:39", - "type": "" - } - ], - "src": "5315:142:39" - }, - { - "body": { - "nativeSrc": "5523:66:39", - "nodeType": "YulBlock", - "src": "5523:66:39", - "statements": [ - { - "nativeSrc": "5533:50:39", - "nodeType": "YulAssignment", - "src": "5533:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5577:5:39", - "nodeType": "YulIdentifier", - "src": "5577:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_uint160", - "nativeSrc": "5546:30:39", - "nodeType": "YulIdentifier", - "src": "5546:30:39" - }, - "nativeSrc": "5546:37:39", - "nodeType": "YulFunctionCall", - "src": "5546:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5533:9:39", - "nodeType": "YulIdentifier", - "src": "5533:9:39" - } - ] - } - ] - }, - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "5463:126:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5503:5:39", - "nodeType": "YulTypedName", - "src": "5503:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5513:9:39", - "nodeType": "YulTypedName", - "src": "5513:9:39", - "type": "" - } - ], - "src": "5463:126:39" - }, - { - "body": { - "nativeSrc": "5676:66:39", - "nodeType": "YulBlock", - "src": "5676:66:39", - "statements": [ - { - "nativeSrc": "5686:50:39", - "nodeType": "YulAssignment", - "src": "5686:50:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5730:5:39", - "nodeType": "YulIdentifier", - "src": "5730:5:39" - } - ], - "functionName": { - "name": "convert_t_uint160_to_t_address", - "nativeSrc": "5699:30:39", - "nodeType": "YulIdentifier", - "src": "5699:30:39" - }, - "nativeSrc": "5699:37:39", - "nodeType": "YulFunctionCall", - "src": "5699:37:39" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "5686:9:39", - "nodeType": "YulIdentifier", - "src": "5686:9:39" - } - ] - } - ] - }, - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "5595:147:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5656:5:39", - "nodeType": "YulTypedName", - "src": "5656:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "5666:9:39", - "nodeType": "YulTypedName", - "src": "5666:9:39", - "type": "" - } - ], - "src": "5595:147:39" - }, - { - "body": { - "nativeSrc": "5834:87:39", - "nodeType": "YulBlock", - "src": "5834:87:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5851:3:39", - "nodeType": "YulIdentifier", - "src": "5851:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5908:5:39", - "nodeType": "YulIdentifier", - "src": "5908:5:39" - } - ], - "functionName": { - "name": "convert_t_contract$_ISciRegistry_$7736_to_t_address", - "nativeSrc": "5856:51:39", - "nodeType": "YulIdentifier", - "src": "5856:51:39" - }, - "nativeSrc": "5856:58:39", - "nodeType": "YulFunctionCall", - "src": "5856:58:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5844:6:39", - "nodeType": "YulIdentifier", - "src": "5844:6:39" - }, - "nativeSrc": "5844:71:39", - "nodeType": "YulFunctionCall", - "src": "5844:71:39" - }, - "nativeSrc": "5844:71:39", - "nodeType": "YulExpressionStatement", - "src": "5844:71:39" - } - ] - }, - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "5748:173:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5822:5:39", - "nodeType": "YulTypedName", - "src": "5822:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5829:3:39", - "nodeType": "YulTypedName", - "src": "5829:3:39", - "type": "" - } - ], - "src": "5748:173:39" - }, - { - "body": { - "nativeSrc": "6046:145:39", - "nodeType": "YulBlock", - "src": "6046:145:39", - "statements": [ - { - "nativeSrc": "6056:26:39", - "nodeType": "YulAssignment", - "src": "6056:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6068:9:39", - "nodeType": "YulIdentifier", - "src": "6068:9:39" - }, - { - "kind": "number", - "nativeSrc": "6079:2:39", - "nodeType": "YulLiteral", - "src": "6079:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6064:3:39", - "nodeType": "YulIdentifier", - "src": "6064:3:39" - }, - "nativeSrc": "6064:18:39", - "nodeType": "YulFunctionCall", - "src": "6064:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6056:4:39", - "nodeType": "YulIdentifier", - "src": "6056:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6157:6:39", - "nodeType": "YulIdentifier", - "src": "6157:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6170:9:39", - "nodeType": "YulIdentifier", - "src": "6170:9:39" - }, - { - "kind": "number", - "nativeSrc": "6181:1:39", - "nodeType": "YulLiteral", - "src": "6181:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6166:3:39", - "nodeType": "YulIdentifier", - "src": "6166:3:39" - }, - "nativeSrc": "6166:17:39", - "nodeType": "YulFunctionCall", - "src": "6166:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack", - "nativeSrc": "6092:64:39", - "nodeType": "YulIdentifier", - "src": "6092:64:39" - }, - "nativeSrc": "6092:92:39", - "nodeType": "YulFunctionCall", - "src": "6092:92:39" - }, - "nativeSrc": "6092:92:39", - "nodeType": "YulExpressionStatement", - "src": "6092:92:39" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed", - "nativeSrc": "5927:264:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6018:9:39", - "nodeType": "YulTypedName", - "src": "6018:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "6030:6:39", - "nodeType": "YulTypedName", - "src": "6030:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "6041:4:39", - "nodeType": "YulTypedName", - "src": "6041:4:39", - "type": "" - } - ], - "src": "5927:264:39" - }, - { - "body": { - "nativeSrc": "6225:152:39", - "nodeType": "YulBlock", - "src": "6225:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6242:1:39", - "nodeType": "YulLiteral", - "src": "6242:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6245:77:39", - "nodeType": "YulLiteral", - "src": "6245:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6235:6:39", - "nodeType": "YulIdentifier", - "src": "6235:6:39" - }, - "nativeSrc": "6235:88:39", - "nodeType": "YulFunctionCall", - "src": "6235:88:39" - }, - "nativeSrc": "6235:88:39", - "nodeType": "YulExpressionStatement", - "src": "6235:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6339:1:39", - "nodeType": "YulLiteral", - "src": "6339:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "6342:4:39", - "nodeType": "YulLiteral", - "src": "6342:4:39", - "type": "", - "value": "0x32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6332:6:39", - "nodeType": "YulIdentifier", - "src": "6332:6:39" - }, - "nativeSrc": "6332:15:39", - "nodeType": "YulFunctionCall", - "src": "6332:15:39" - }, - "nativeSrc": "6332:15:39", - "nodeType": "YulExpressionStatement", - "src": "6332:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6363:1:39", - "nodeType": "YulLiteral", - "src": "6363:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6366:4:39", - "nodeType": "YulLiteral", - "src": "6366:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6356:6:39", - "nodeType": "YulIdentifier", - "src": "6356:6:39" - }, - "nativeSrc": "6356:15:39", - "nodeType": "YulFunctionCall", - "src": "6356:15:39" - }, - "nativeSrc": "6356:15:39", - "nodeType": "YulExpressionStatement", - "src": "6356:15:39" - } - ] - }, - "name": "panic_error_0x32", - "nativeSrc": "6197:180:39", - "nodeType": "YulFunctionDefinition", - "src": "6197:180:39" - }, - { - "body": { - "nativeSrc": "6472:28:39", - "nodeType": "YulBlock", - "src": "6472:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6489:1:39", - "nodeType": "YulLiteral", - "src": "6489:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6492:1:39", - "nodeType": "YulLiteral", - "src": "6492:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6482:6:39", - "nodeType": "YulIdentifier", - "src": "6482:6:39" - }, - "nativeSrc": "6482:12:39", - "nodeType": "YulFunctionCall", - "src": "6482:12:39" - }, - "nativeSrc": "6482:12:39", - "nodeType": "YulExpressionStatement", - "src": "6482:12:39" - } - ] - }, - "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", - "nativeSrc": "6383:117:39", - "nodeType": "YulFunctionDefinition", - "src": "6383:117:39" - }, - { - "body": { - "nativeSrc": "6595:28:39", - "nodeType": "YulBlock", - "src": "6595:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6612:1:39", - "nodeType": "YulLiteral", - "src": "6612:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6615:1:39", - "nodeType": "YulLiteral", - "src": "6615:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6605:6:39", - "nodeType": "YulIdentifier", - "src": "6605:6:39" - }, - "nativeSrc": "6605:12:39", - "nodeType": "YulFunctionCall", - "src": "6605:12:39" - }, - "nativeSrc": "6605:12:39", - "nodeType": "YulExpressionStatement", - "src": "6605:12:39" - } - ] - }, - "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", - "nativeSrc": "6506:117:39", - "nodeType": "YulFunctionDefinition", - "src": "6506:117:39" - }, - { - "body": { - "nativeSrc": "6718:28:39", - "nodeType": "YulBlock", - "src": "6718:28:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6735:1:39", - "nodeType": "YulLiteral", - "src": "6735:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6738:1:39", - "nodeType": "YulLiteral", - "src": "6738:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6728:6:39", - "nodeType": "YulIdentifier", - "src": "6728:6:39" - }, - "nativeSrc": "6728:12:39", - "nodeType": "YulFunctionCall", - "src": "6728:12:39" - }, - "nativeSrc": "6728:12:39", - "nodeType": "YulExpressionStatement", - "src": "6728:12:39" - } - ] - }, - "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", - "nativeSrc": "6629:117:39", - "nodeType": "YulFunctionDefinition", - "src": "6629:117:39" - }, - { - "body": { - "nativeSrc": "6858:634:39", - "nodeType": "YulBlock", - "src": "6858:634:39", - "statements": [ - { - "nativeSrc": "6868:51:39", - "nodeType": "YulVariableDeclaration", - "src": "6868:51:39", - "value": { - "arguments": [ - { - "name": "ptr_to_tail", - "nativeSrc": "6907:11:39", - "nodeType": "YulIdentifier", - "src": "6907:11:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "6894:12:39", - "nodeType": "YulIdentifier", - "src": "6894:12:39" - }, - "nativeSrc": "6894:25:39", - "nodeType": "YulFunctionCall", - "src": "6894:25:39" - }, - "variables": [ - { - "name": "rel_offset_of_tail", - "nativeSrc": "6872:18:39", - "nodeType": "YulTypedName", - "src": "6872:18:39", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "7013:83:39", - "nodeType": "YulBlock", - "src": "7013:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", - "nativeSrc": "7015:77:39", - "nodeType": "YulIdentifier", - "src": "7015:77:39" - }, - "nativeSrc": "7015:79:39", - "nodeType": "YulFunctionCall", - "src": "7015:79:39" - }, - "nativeSrc": "7015:79:39", - "nodeType": "YulExpressionStatement", - "src": "7015:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "rel_offset_of_tail", - "nativeSrc": "6942:18:39", - "nodeType": "YulIdentifier", - "src": "6942:18:39" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "calldatasize", - "nativeSrc": "6970:12:39", - "nodeType": "YulIdentifier", - "src": "6970:12:39" - }, - "nativeSrc": "6970:14:39", - "nodeType": "YulFunctionCall", - "src": "6970:14:39" - }, - { - "name": "base_ref", - "nativeSrc": "6986:8:39", - "nodeType": "YulIdentifier", - "src": "6986:8:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6966:3:39", - "nodeType": "YulIdentifier", - "src": "6966:3:39" - }, - "nativeSrc": "6966:29:39", - "nodeType": "YulFunctionCall", - "src": "6966:29:39" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7001:4:39", - "nodeType": "YulLiteral", - "src": "7001:4:39", - "type": "", - "value": "0x20" - }, - { - "kind": "number", - "nativeSrc": "7007:1:39", - "nodeType": "YulLiteral", - "src": "7007:1:39", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6997:3:39", - "nodeType": "YulIdentifier", - "src": "6997:3:39" - }, - "nativeSrc": "6997:12:39", - "nodeType": "YulFunctionCall", - "src": "6997:12:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6962:3:39", - "nodeType": "YulIdentifier", - "src": "6962:3:39" - }, - "nativeSrc": "6962:48:39", - "nodeType": "YulFunctionCall", - "src": "6962:48:39" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6938:3:39", - "nodeType": "YulIdentifier", - "src": "6938:3:39" - }, - "nativeSrc": "6938:73:39", - "nodeType": "YulFunctionCall", - "src": "6938:73:39" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "6931:6:39", - "nodeType": "YulIdentifier", - "src": "6931:6:39" - }, - "nativeSrc": "6931:81:39", - "nodeType": "YulFunctionCall", - "src": "6931:81:39" - }, - "nativeSrc": "6928:168:39", - "nodeType": "YulIf", - "src": "6928:168:39" - }, - { - "nativeSrc": "7105:41:39", - "nodeType": "YulAssignment", - "src": "7105:41:39", - "value": { - "arguments": [ - { - "name": "base_ref", - "nativeSrc": "7117:8:39", - "nodeType": "YulIdentifier", - "src": "7117:8:39" - }, - { - "name": "rel_offset_of_tail", - "nativeSrc": "7127:18:39", - "nodeType": "YulIdentifier", - "src": "7127:18:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7113:3:39", - "nodeType": "YulIdentifier", - "src": "7113:3:39" - }, - "nativeSrc": "7113:33:39", - "nodeType": "YulFunctionCall", - "src": "7113:33:39" - }, - "variableNames": [ - { - "name": "addr", - "nativeSrc": "7105:4:39", - "nodeType": "YulIdentifier", - "src": "7105:4:39" - } - ] - }, - { - "nativeSrc": "7156:28:39", - "nodeType": "YulAssignment", - "src": "7156:28:39", - "value": { - "arguments": [ - { - "name": "addr", - "nativeSrc": "7179:4:39", - "nodeType": "YulIdentifier", - "src": "7179:4:39" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7166:12:39", - "nodeType": "YulIdentifier", - "src": "7166:12:39" - }, - "nativeSrc": "7166:18:39", - "nodeType": "YulFunctionCall", - "src": "7166:18:39" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "7156:6:39", - "nodeType": "YulIdentifier", - "src": "7156:6:39" - } - ] - }, - { - "body": { - "nativeSrc": "7227:83:39", - "nodeType": "YulBlock", - "src": "7227:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", - "nativeSrc": "7229:77:39", - "nodeType": "YulIdentifier", - "src": "7229:77:39" - }, - "nativeSrc": "7229:79:39", - "nodeType": "YulFunctionCall", - "src": "7229:79:39" - }, - "nativeSrc": "7229:79:39", - "nodeType": "YulExpressionStatement", - "src": "7229:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "7199:6:39", - "nodeType": "YulIdentifier", - "src": "7199:6:39" - }, - { - "kind": "number", - "nativeSrc": "7207:18:39", - "nodeType": "YulLiteral", - "src": "7207:18:39", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "7196:2:39", - "nodeType": "YulIdentifier", - "src": "7196:2:39" - }, - "nativeSrc": "7196:30:39", - "nodeType": "YulFunctionCall", - "src": "7196:30:39" - }, - "nativeSrc": "7193:117:39", - "nodeType": "YulIf", - "src": "7193:117:39" - }, - { - "nativeSrc": "7319:21:39", - "nodeType": "YulAssignment", - "src": "7319:21:39", - "value": { - "arguments": [ - { - "name": "addr", - "nativeSrc": "7331:4:39", - "nodeType": "YulIdentifier", - "src": "7331:4:39" - }, - { - "kind": "number", - "nativeSrc": "7337:2:39", - "nodeType": "YulLiteral", - "src": "7337:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7327:3:39", - "nodeType": "YulIdentifier", - "src": "7327:3:39" - }, - "nativeSrc": "7327:13:39", - "nodeType": "YulFunctionCall", - "src": "7327:13:39" - }, - "variableNames": [ - { - "name": "addr", - "nativeSrc": "7319:4:39", - "nodeType": "YulIdentifier", - "src": "7319:4:39" - } - ] - }, - { - "body": { - "nativeSrc": "7402:83:39", - "nodeType": "YulBlock", - "src": "7402:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", - "nativeSrc": "7404:77:39", - "nodeType": "YulIdentifier", - "src": "7404:77:39" - }, - "nativeSrc": "7404:79:39", - "nodeType": "YulFunctionCall", - "src": "7404:79:39" - }, - "nativeSrc": "7404:79:39", - "nodeType": "YulExpressionStatement", - "src": "7404:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "addr", - "nativeSrc": "7356:4:39", - "nodeType": "YulIdentifier", - "src": "7356:4:39" - }, - { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "calldatasize", - "nativeSrc": "7366:12:39", - "nodeType": "YulIdentifier", - "src": "7366:12:39" - }, - "nativeSrc": "7366:14:39", - "nodeType": "YulFunctionCall", - "src": "7366:14:39" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "7386:6:39", - "nodeType": "YulIdentifier", - "src": "7386:6:39" - }, - { - "kind": "number", - "nativeSrc": "7394:4:39", - "nodeType": "YulLiteral", - "src": "7394:4:39", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "7382:3:39", - "nodeType": "YulIdentifier", - "src": "7382:3:39" - }, - "nativeSrc": "7382:17:39", - "nodeType": "YulFunctionCall", - "src": "7382:17:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7362:3:39", - "nodeType": "YulIdentifier", - "src": "7362:3:39" - }, - "nativeSrc": "7362:38:39", - "nodeType": "YulFunctionCall", - "src": "7362:38:39" - } - ], - "functionName": { - "name": "sgt", - "nativeSrc": "7352:3:39", - "nodeType": "YulIdentifier", - "src": "7352:3:39" - }, - "nativeSrc": "7352:49:39", - "nodeType": "YulFunctionCall", - "src": "7352:49:39" - }, - "nativeSrc": "7349:136:39", - "nodeType": "YulIf", - "src": "7349:136:39" - } - ] - }, - "name": "access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr", - "nativeSrc": "6752:740:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "base_ref", - "nativeSrc": "6819:8:39", - "nodeType": "YulTypedName", - "src": "6819:8:39", - "type": "" - }, - { - "name": "ptr_to_tail", - "nativeSrc": "6829:11:39", - "nodeType": "YulTypedName", - "src": "6829:11:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "addr", - "nativeSrc": "6845:4:39", - "nodeType": "YulTypedName", - "src": "6845:4:39", - "type": "" - }, - { - "name": "length", - "nativeSrc": "6851:6:39", - "nodeType": "YulTypedName", - "src": "6851:6:39", - "type": "" - } - ], - "src": "6752:740:39" - }, - { - "body": { - "nativeSrc": "7564:263:39", - "nodeType": "YulBlock", - "src": "7564:263:39", - "statements": [ - { - "body": { - "nativeSrc": "7610:83:39", - "nodeType": "YulBlock", - "src": "7610:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "7612:77:39", - "nodeType": "YulIdentifier", - "src": "7612:77:39" - }, - "nativeSrc": "7612:79:39", - "nodeType": "YulFunctionCall", - "src": "7612:79:39" - }, - "nativeSrc": "7612:79:39", - "nodeType": "YulExpressionStatement", - "src": "7612:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "7585:7:39", - "nodeType": "YulIdentifier", - "src": "7585:7:39" - }, - { - "name": "headStart", - "nativeSrc": "7594:9:39", - "nodeType": "YulIdentifier", - "src": "7594:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7581:3:39", - "nodeType": "YulIdentifier", - "src": "7581:3:39" - }, - "nativeSrc": "7581:23:39", - "nodeType": "YulFunctionCall", - "src": "7581:23:39" - }, - { - "kind": "number", - "nativeSrc": "7606:2:39", - "nodeType": "YulLiteral", - "src": "7606:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "7577:3:39", - "nodeType": "YulIdentifier", - "src": "7577:3:39" - }, - "nativeSrc": "7577:32:39", - "nodeType": "YulFunctionCall", - "src": "7577:32:39" - }, - "nativeSrc": "7574:119:39", - "nodeType": "YulIf", - "src": "7574:119:39" - }, - { - "nativeSrc": "7703:117:39", - "nodeType": "YulBlock", - "src": "7703:117:39", - "statements": [ - { - "nativeSrc": "7718:15:39", - "nodeType": "YulVariableDeclaration", - "src": "7718:15:39", - "value": { - "kind": "number", - "nativeSrc": "7732:1:39", - "nodeType": "YulLiteral", - "src": "7732:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "7722:6:39", - "nodeType": "YulTypedName", - "src": "7722:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "7747:63:39", - "nodeType": "YulAssignment", - "src": "7747:63:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7782:9:39", - "nodeType": "YulIdentifier", - "src": "7782:9:39" - }, - { - "name": "offset", - "nativeSrc": "7793:6:39", - "nodeType": "YulIdentifier", - "src": "7793:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7778:3:39", - "nodeType": "YulIdentifier", - "src": "7778:3:39" - }, - "nativeSrc": "7778:22:39", - "nodeType": "YulFunctionCall", - "src": "7778:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "7802:7:39", - "nodeType": "YulIdentifier", - "src": "7802:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "7757:20:39", - "nodeType": "YulIdentifier", - "src": "7757:20:39" - }, - "nativeSrc": "7757:53:39", - "nodeType": "YulFunctionCall", - "src": "7757:53:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "7747:6:39", - "nodeType": "YulIdentifier", - "src": "7747:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "7498:329:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7534:9:39", - "nodeType": "YulTypedName", - "src": "7534:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "7545:7:39", - "nodeType": "YulTypedName", - "src": "7545:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "7557:6:39", - "nodeType": "YulTypedName", - "src": "7557:6:39", - "type": "" - } - ], - "src": "7498:329:39" - }, - { - "body": { - "nativeSrc": "7898:53:39", - "nodeType": "YulBlock", - "src": "7898:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7915:3:39", - "nodeType": "YulIdentifier", - "src": "7915:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "7938:5:39", - "nodeType": "YulIdentifier", - "src": "7938:5:39" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "7920:17:39", - "nodeType": "YulIdentifier", - "src": "7920:17:39" - }, - "nativeSrc": "7920:24:39", - "nodeType": "YulFunctionCall", - "src": "7920:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7908:6:39", - "nodeType": "YulIdentifier", - "src": "7908:6:39" - }, - "nativeSrc": "7908:37:39", - "nodeType": "YulFunctionCall", - "src": "7908:37:39" - }, - "nativeSrc": "7908:37:39", - "nodeType": "YulExpressionStatement", - "src": "7908:37:39" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "7833:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "7886:5:39", - "nodeType": "YulTypedName", - "src": "7886:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "7893:3:39", - "nodeType": "YulTypedName", - "src": "7893:3:39", - "type": "" - } - ], - "src": "7833:118:39" - }, - { - "body": { - "nativeSrc": "8055:124:39", - "nodeType": "YulBlock", - "src": "8055:124:39", - "statements": [ - { - "nativeSrc": "8065:26:39", - "nodeType": "YulAssignment", - "src": "8065:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8077:9:39", - "nodeType": "YulIdentifier", - "src": "8077:9:39" - }, - { - "kind": "number", - "nativeSrc": "8088:2:39", - "nodeType": "YulLiteral", - "src": "8088:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8073:3:39", - "nodeType": "YulIdentifier", - "src": "8073:3:39" - }, - "nativeSrc": "8073:18:39", - "nodeType": "YulFunctionCall", - "src": "8073:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8065:4:39", - "nodeType": "YulIdentifier", - "src": "8065:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8145:6:39", - "nodeType": "YulIdentifier", - "src": "8145:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8158:9:39", - "nodeType": "YulIdentifier", - "src": "8158:9:39" - }, - { - "kind": "number", - "nativeSrc": "8169:1:39", - "nodeType": "YulLiteral", - "src": "8169:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8154:3:39", - "nodeType": "YulIdentifier", - "src": "8154:3:39" - }, - "nativeSrc": "8154:17:39", - "nodeType": "YulFunctionCall", - "src": "8154:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "8101:43:39", - "nodeType": "YulIdentifier", - "src": "8101:43:39" - }, - "nativeSrc": "8101:71:39", - "nodeType": "YulFunctionCall", - "src": "8101:71:39" - }, - "nativeSrc": "8101:71:39", - "nodeType": "YulExpressionStatement", - "src": "8101:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "7957:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8027:9:39", - "nodeType": "YulTypedName", - "src": "8027:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8039:6:39", - "nodeType": "YulTypedName", - "src": "8039:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8050:4:39", - "nodeType": "YulTypedName", - "src": "8050:4:39", - "type": "" - } - ], - "src": "7957:222:39" - }, - { - "body": { - "nativeSrc": "8213:152:39", - "nodeType": "YulBlock", - "src": "8213:152:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8230:1:39", - "nodeType": "YulLiteral", - "src": "8230:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8233:77:39", - "nodeType": "YulLiteral", - "src": "8233:77:39", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8223:6:39", - "nodeType": "YulIdentifier", - "src": "8223:6:39" - }, - "nativeSrc": "8223:88:39", - "nodeType": "YulFunctionCall", - "src": "8223:88:39" - }, - "nativeSrc": "8223:88:39", - "nodeType": "YulExpressionStatement", - "src": "8223:88:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8327:1:39", - "nodeType": "YulLiteral", - "src": "8327:1:39", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "8330:4:39", - "nodeType": "YulLiteral", - "src": "8330:4:39", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8320:6:39", - "nodeType": "YulIdentifier", - "src": "8320:6:39" - }, - "nativeSrc": "8320:15:39", - "nodeType": "YulFunctionCall", - "src": "8320:15:39" - }, - "nativeSrc": "8320:15:39", - "nodeType": "YulExpressionStatement", - "src": "8320:15:39" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8351:1:39", - "nodeType": "YulLiteral", - "src": "8351:1:39", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8354:4:39", - "nodeType": "YulLiteral", - "src": "8354:4:39", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "8344:6:39", - "nodeType": "YulIdentifier", - "src": "8344:6:39" - }, - "nativeSrc": "8344:15:39", - "nodeType": "YulFunctionCall", - "src": "8344:15:39" - }, - "nativeSrc": "8344:15:39", - "nodeType": "YulExpressionStatement", - "src": "8344:15:39" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "8185:180:39", - "nodeType": "YulFunctionDefinition", - "src": "8185:180:39" - }, - { - "body": { - "nativeSrc": "8414:190:39", - "nodeType": "YulBlock", - "src": "8414:190:39", - "statements": [ - { - "nativeSrc": "8424:33:39", - "nodeType": "YulAssignment", - "src": "8424:33:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8451:5:39", - "nodeType": "YulIdentifier", - "src": "8451:5:39" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "8433:17:39", - "nodeType": "YulIdentifier", - "src": "8433:17:39" - }, - "nativeSrc": "8433:24:39", - "nodeType": "YulFunctionCall", - "src": "8433:24:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "8424:5:39", - "nodeType": "YulIdentifier", - "src": "8424:5:39" - } - ] - }, - { - "body": { - "nativeSrc": "8547:22:39", - "nodeType": "YulBlock", - "src": "8547:22:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "8549:16:39", - "nodeType": "YulIdentifier", - "src": "8549:16:39" - }, - "nativeSrc": "8549:18:39", - "nodeType": "YulFunctionCall", - "src": "8549:18:39" - }, - "nativeSrc": "8549:18:39", - "nodeType": "YulExpressionStatement", - "src": "8549:18:39" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8472:5:39", - "nodeType": "YulIdentifier", - "src": "8472:5:39" - }, - { - "kind": "number", - "nativeSrc": "8479:66:39", - "nodeType": "YulLiteral", - "src": "8479:66:39", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "8469:2:39", - "nodeType": "YulIdentifier", - "src": "8469:2:39" - }, - "nativeSrc": "8469:77:39", - "nodeType": "YulFunctionCall", - "src": "8469:77:39" - }, - "nativeSrc": "8466:103:39", - "nodeType": "YulIf", - "src": "8466:103:39" - }, - { - "nativeSrc": "8578:20:39", - "nodeType": "YulAssignment", - "src": "8578:20:39", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8589:5:39", - "nodeType": "YulIdentifier", - "src": "8589:5:39" - }, - { - "kind": "number", - "nativeSrc": "8596:1:39", - "nodeType": "YulLiteral", - "src": "8596:1:39", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8585:3:39", - "nodeType": "YulIdentifier", - "src": "8585:3:39" - }, - "nativeSrc": "8585:13:39", - "nodeType": "YulFunctionCall", - "src": "8585:13:39" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "8578:3:39", - "nodeType": "YulIdentifier", - "src": "8578:3:39" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nativeSrc": "8371:233:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8400:5:39", - "nodeType": "YulTypedName", - "src": "8400:5:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "8410:3:39", - "nodeType": "YulTypedName", - "src": "8410:3:39", - "type": "" - } - ], - "src": "8371:233:39" - }, - { - "body": { - "nativeSrc": "8675:53:39", - "nodeType": "YulBlock", - "src": "8675:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8692:3:39", - "nodeType": "YulIdentifier", - "src": "8692:3:39" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "8715:5:39", - "nodeType": "YulIdentifier", - "src": "8715:5:39" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "8697:17:39", - "nodeType": "YulIdentifier", - "src": "8697:17:39" - }, - "nativeSrc": "8697:24:39", - "nodeType": "YulFunctionCall", - "src": "8697:24:39" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8685:6:39", - "nodeType": "YulIdentifier", - "src": "8685:6:39" - }, - "nativeSrc": "8685:37:39", - "nodeType": "YulFunctionCall", - "src": "8685:37:39" - }, - "nativeSrc": "8685:37:39", - "nodeType": "YulExpressionStatement", - "src": "8685:37:39" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "8610:118:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8663:5:39", - "nodeType": "YulTypedName", - "src": "8663:5:39", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "8670:3:39", - "nodeType": "YulTypedName", - "src": "8670:3:39", - "type": "" - } - ], - "src": "8610:118:39" - }, - { - "body": { - "nativeSrc": "8832:124:39", - "nodeType": "YulBlock", - "src": "8832:124:39", - "statements": [ - { - "nativeSrc": "8842:26:39", - "nodeType": "YulAssignment", - "src": "8842:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8854:9:39", - "nodeType": "YulIdentifier", - "src": "8854:9:39" - }, - { - "kind": "number", - "nativeSrc": "8865:2:39", - "nodeType": "YulLiteral", - "src": "8865:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8850:3:39", - "nodeType": "YulIdentifier", - "src": "8850:3:39" - }, - "nativeSrc": "8850:18:39", - "nodeType": "YulFunctionCall", - "src": "8850:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8842:4:39", - "nodeType": "YulIdentifier", - "src": "8842:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8922:6:39", - "nodeType": "YulIdentifier", - "src": "8922:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8935:9:39", - "nodeType": "YulIdentifier", - "src": "8935:9:39" - }, - { - "kind": "number", - "nativeSrc": "8946:1:39", - "nodeType": "YulLiteral", - "src": "8946:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8931:3:39", - "nodeType": "YulIdentifier", - "src": "8931:3:39" - }, - "nativeSrc": "8931:17:39", - "nodeType": "YulFunctionCall", - "src": "8931:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "8878:43:39", - "nodeType": "YulIdentifier", - "src": "8878:43:39" - }, - "nativeSrc": "8878:71:39", - "nodeType": "YulFunctionCall", - "src": "8878:71:39" - }, - "nativeSrc": "8878:71:39", - "nodeType": "YulExpressionStatement", - "src": "8878:71:39" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "8734:222:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8804:9:39", - "nodeType": "YulTypedName", - "src": "8804:9:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8816:6:39", - "nodeType": "YulTypedName", - "src": "8816:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8827:4:39", - "nodeType": "YulTypedName", - "src": "8827:4:39", - "type": "" - } - ], - "src": "8734:222:39" - }, - { - "body": { - "nativeSrc": "9025:80:39", - "nodeType": "YulBlock", - "src": "9025:80:39", - "statements": [ - { - "nativeSrc": "9035:22:39", - "nodeType": "YulAssignment", - "src": "9035:22:39", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "9050:6:39", - "nodeType": "YulIdentifier", - "src": "9050:6:39" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "9044:5:39", - "nodeType": "YulIdentifier", - "src": "9044:5:39" - }, - "nativeSrc": "9044:13:39", - "nodeType": "YulFunctionCall", - "src": "9044:13:39" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "9035:5:39", - "nodeType": "YulIdentifier", - "src": "9035:5:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "9093:5:39", - "nodeType": "YulIdentifier", - "src": "9093:5:39" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "9066:26:39", - "nodeType": "YulIdentifier", - "src": "9066:26:39" - }, - "nativeSrc": "9066:33:39", - "nodeType": "YulFunctionCall", - "src": "9066:33:39" - }, - "nativeSrc": "9066:33:39", - "nodeType": "YulExpressionStatement", - "src": "9066:33:39" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "8962:143:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "9003:6:39", - "nodeType": "YulTypedName", - "src": "9003:6:39", - "type": "" - }, - { - "name": "end", - "nativeSrc": "9011:3:39", - "nodeType": "YulTypedName", - "src": "9011:3:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "9019:5:39", - "nodeType": "YulTypedName", - "src": "9019:5:39", - "type": "" - } - ], - "src": "8962:143:39" - }, - { - "body": { - "nativeSrc": "9188:274:39", - "nodeType": "YulBlock", - "src": "9188:274:39", - "statements": [ - { - "body": { - "nativeSrc": "9234:83:39", - "nodeType": "YulBlock", - "src": "9234:83:39", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "9236:77:39", - "nodeType": "YulIdentifier", - "src": "9236:77:39" - }, - "nativeSrc": "9236:79:39", - "nodeType": "YulFunctionCall", - "src": "9236:79:39" - }, - "nativeSrc": "9236:79:39", - "nodeType": "YulExpressionStatement", - "src": "9236:79:39" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "9209:7:39", - "nodeType": "YulIdentifier", - "src": "9209:7:39" - }, - { - "name": "headStart", - "nativeSrc": "9218:9:39", - "nodeType": "YulIdentifier", - "src": "9218:9:39" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "9205:3:39", - "nodeType": "YulIdentifier", - "src": "9205:3:39" - }, - "nativeSrc": "9205:23:39", - "nodeType": "YulFunctionCall", - "src": "9205:23:39" - }, - { - "kind": "number", - "nativeSrc": "9230:2:39", - "nodeType": "YulLiteral", - "src": "9230:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "9201:3:39", - "nodeType": "YulIdentifier", - "src": "9201:3:39" - }, - "nativeSrc": "9201:32:39", - "nodeType": "YulFunctionCall", - "src": "9201:32:39" - }, - "nativeSrc": "9198:119:39", - "nodeType": "YulIf", - "src": "9198:119:39" - }, - { - "nativeSrc": "9327:128:39", - "nodeType": "YulBlock", - "src": "9327:128:39", - "statements": [ - { - "nativeSrc": "9342:15:39", - "nodeType": "YulVariableDeclaration", - "src": "9342:15:39", - "value": { - "kind": "number", - "nativeSrc": "9356:1:39", - "nodeType": "YulLiteral", - "src": "9356:1:39", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "9346:6:39", - "nodeType": "YulTypedName", - "src": "9346:6:39", - "type": "" - } - ] - }, - { - "nativeSrc": "9371:74:39", - "nodeType": "YulAssignment", - "src": "9371:74:39", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9417:9:39", - "nodeType": "YulIdentifier", - "src": "9417:9:39" - }, - { - "name": "offset", - "nativeSrc": "9428:6:39", - "nodeType": "YulIdentifier", - "src": "9428:6:39" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9413:3:39", - "nodeType": "YulIdentifier", - "src": "9413:3:39" - }, - "nativeSrc": "9413:22:39", - "nodeType": "YulFunctionCall", - "src": "9413:22:39" - }, - { - "name": "dataEnd", - "nativeSrc": "9437:7:39", - "nodeType": "YulIdentifier", - "src": "9437:7:39" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "9381:31:39", - "nodeType": "YulIdentifier", - "src": "9381:31:39" - }, - "nativeSrc": "9381:64:39", - "nodeType": "YulFunctionCall", - "src": "9381:64:39" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "9371:6:39", - "nodeType": "YulIdentifier", - "src": "9371:6:39" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "9111:351:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9158:9:39", - "nodeType": "YulTypedName", - "src": "9158:9:39", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "9169:7:39", - "nodeType": "YulTypedName", - "src": "9169:7:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "9181:6:39", - "nodeType": "YulTypedName", - "src": "9181:6:39", - "type": "" - } - ], - "src": "9111:351:39" - }, - { - "body": { - "nativeSrc": "9594:206:39", - "nodeType": "YulBlock", - "src": "9594:206:39", - "statements": [ - { - "nativeSrc": "9604:26:39", - "nodeType": "YulAssignment", - "src": "9604:26:39", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9616:9:39", - "nodeType": "YulIdentifier", - "src": "9616:9:39" - }, - { - "kind": "number", - "nativeSrc": "9627:2:39", - "nodeType": "YulLiteral", - "src": "9627:2:39", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9612:3:39", - "nodeType": "YulIdentifier", - "src": "9612:3:39" - }, - "nativeSrc": "9612:18:39", - "nodeType": "YulFunctionCall", - "src": "9612:18:39" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "9604:4:39", - "nodeType": "YulIdentifier", - "src": "9604:4:39" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "9684:6:39", - "nodeType": "YulIdentifier", - "src": "9684:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9697:9:39", - "nodeType": "YulIdentifier", - "src": "9697:9:39" - }, - { - "kind": "number", - "nativeSrc": "9708:1:39", - "nodeType": "YulLiteral", - "src": "9708:1:39", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9693:3:39", - "nodeType": "YulIdentifier", - "src": "9693:3:39" - }, - "nativeSrc": "9693:17:39", - "nodeType": "YulFunctionCall", - "src": "9693:17:39" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "9640:43:39", - "nodeType": "YulIdentifier", - "src": "9640:43:39" - }, - "nativeSrc": "9640:71:39", - "nodeType": "YulFunctionCall", - "src": "9640:71:39" - }, - "nativeSrc": "9640:71:39", - "nodeType": "YulExpressionStatement", - "src": "9640:71:39" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "9765:6:39", - "nodeType": "YulIdentifier", - "src": "9765:6:39" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9778:9:39", - "nodeType": "YulIdentifier", - "src": "9778:9:39" - }, - { - "kind": "number", - "nativeSrc": "9789:2:39", - "nodeType": "YulLiteral", - "src": "9789:2:39", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9774:3:39", - "nodeType": "YulIdentifier", - "src": "9774:3:39" - }, - "nativeSrc": "9774:18:39", - "nodeType": "YulFunctionCall", - "src": "9774:18:39" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "9721:43:39", - "nodeType": "YulIdentifier", - "src": "9721:43:39" - }, - "nativeSrc": "9721:72:39", - "nodeType": "YulFunctionCall", - "src": "9721:72:39" - }, - "nativeSrc": "9721:72:39", - "nodeType": "YulExpressionStatement", - "src": "9721:72:39" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "9468:332:39", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9558:9:39", - "nodeType": "YulTypedName", - "src": "9558:9:39", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "9570:6:39", - "nodeType": "YulTypedName", - "src": "9570:6:39", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "9578:6:39", - "nodeType": "YulTypedName", - "src": "9578:6:39", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "9589:4:39", - "nodeType": "YulTypedName", - "src": "9589:4:39", - "type": "" - } - ], - "src": "9468:332:39" - } - ] - }, - "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_$7736_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ISciRegistry_$7736_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ISciRegistry_$7736_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ISciRegistry_$7736__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ISciRegistry_$7736_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": 39, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "7147": [ - { - "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:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3372:557;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1774:690;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;817:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;349:38:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2647:663:38;;;;;;;;;;;;;:::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:29;890:7;899:10;872:17;:38::i;:::-;1981:9:38::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:29:-;;;:::o;2647:663:38:-;2816:12;:10;:12::i;:::-;2830:10;872:38:29;890:7;899:10;872:17;:38::i;:::-;2857:9:38::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:29:-;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:39:-;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": 8131, - "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 deleted file mode 100644 index 0f72186..0000000 --- a/ignition/deployments/chain-11155111/deployed_addresses.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "ProxyModule#SCI": "0x79A2C5A82E3d94513a0e9c3aC409a546D79b27b1", - "SciRegistry#SciRegistry": "0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf", - "EnsRegistrar#EnsRegistrar": "0x9a33cD737a74939830e7a0bF6B3bFd67219d61E6", - "PublicListVerifier#PublicListVerifier": "0x2E242894dC1580204037740f54984FA1d38931FD", - "SciRegstrar#SciRegistrar": "0x64349bD9Ba62BaDCF92cAfbD08A337428360cE24", - "ProxyModule#TransparentUpgradeableProxy": "0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0", - "ProxyModule#ProxyAdmin": "0x4399350BBC86F1CB8F605cc6816507F96428656e", - "SciModule#SCI": "0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0" -} diff --git a/ignition/deployments/chain-11155111/journal.jsonl b/ignition/deployments/chain-11155111/journal.jsonl deleted file mode 100644 index df1d0a1..0000000 --- a/ignition/deployments/chain-11155111/journal.jsonl +++ /dev/null @@ -1,72 +0,0 @@ - -{"chainId":11155111,"type":"DEPLOYMENT_INITIALIZE"} -{"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":"0x6080604052348015600f57600080fd5b5061142d8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637b103999116100715780637b103999146101415780638da5cb5b1461015f578063929d1ac11461017d578063a91ee0dc146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae578063485cc955146100de5780635b377fa2146100fa578063715018a61461012d57806379ba509714610137575b600080fd5b6100c860048036038101906100c39190610d38565b610203565b6040516100d59190610d9a565b60405180910390f35b6100f860048036038101906100f39190610db5565b61036c565b005b610114600480360381019061010f9190610df5565b61050d565b6040516101249493929190610e90565b60405180910390f35b6101356105bc565b005b61013f6105d0565b005b61014961065f565b6040516101569190610ef6565b60405180910390f35b610167610683565b6040516101749190610f11565b60405180910390f35b61019760048036038101906101929190611085565b6106bb565b6040516101a491906111b2565b60405180910390f35b6101c760048036038101906101c291906111d4565b610778565b005b6101d1610844565b6040516101de9190610f11565b60405180910390f35b61020160048036038101906101fc91906111d4565b61087c565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f9190611210565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611293565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112fa565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103619190611331565b9150505b9392505050565b6000610376610938565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156103c45750825b9050600060018367ffffffffffffffff161480156103f9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610407575080155b1561043e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550831561048e5760018560000160086101000a81548160ff0219169083151502179055505b610496610960565b61049f8761096a565b6104a886610778565b83156105045760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516104fb91906113ad565b60405180910390a15b50505050505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161056c9190611210565b608060405180830381865afa158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad9190611293565b93509350935093509193509193565b6105c461097e565b6105ce6000610a05565b565b60006105da610a45565b90508073ffffffffffffffffffffffffffffffffffffffff166105fb610844565b73ffffffffffffffffffffffffffffffffffffffff161461065357806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610f11565b60405180910390fd5b61065c81610a05565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068e610a4d565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff8111156106da576106d9610f42565b5b6040519080825280602002602001820160405280156107085781602001602082028036833780820191505090505b50905060008551905060005b8181101561076b57610741878281518110610732576107316113c8565b5b60200260200101518787610203565b838281518110610754576107536113c8565b5b602002602001018181525050806001019050610714565b5081925050509392505050565b61078061097e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60008061084f610a75565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61088461097e565b600061088e610a75565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108f2610683565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610968610a9d565b565b610972610a9d565b61097b81610add565b50565b610986610a45565b73ffffffffffffffffffffffffffffffffffffffff166109a4610683565b73ffffffffffffffffffffffffffffffffffffffff1614610a03576109c7610a45565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109fa9190610f11565b60405180910390fd5b565b6000610a0f610a75565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a4182610b63565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b610aa5610c3a565b610adb576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610ae5610a9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b575760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b4e9190610f11565b60405180910390fd5b610b6081610a05565b50565b6000610b6d610a4d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000610c44610938565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c8181610c6e565b8114610c8c57600080fd5b50565b600081359050610c9e81610c78565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ccf82610ca4565b9050919050565b610cdf81610cc4565b8114610cea57600080fd5b50565b600081359050610cfc81610cd6565b92915050565b6000819050919050565b610d1581610d02565b8114610d2057600080fd5b50565b600081359050610d3281610d0c565b92915050565b600080600060608486031215610d5157610d50610c64565b5b6000610d5f86828701610c8f565b9350506020610d7086828701610ced565b9250506040610d8186828701610d23565b9150509250925092565b610d9481610d02565b82525050565b6000602082019050610daf6000830184610d8b565b92915050565b60008060408385031215610dcc57610dcb610c64565b5b6000610dda85828601610ced565b9250506020610deb85828601610ced565b9150509250929050565b600060208284031215610e0b57610e0a610c64565b5b6000610e1984828501610c8f565b91505092915050565b610e2b81610cc4565b82525050565b6000819050919050565b6000610e56610e51610e4c84610ca4565b610e31565b610ca4565b9050919050565b6000610e6882610e3b565b9050919050565b6000610e7a82610e5d565b9050919050565b610e8a81610e6f565b82525050565b6000608082019050610ea56000830187610e22565b610eb26020830186610e81565b610ebf6040830185610d8b565b610ecc6060830184610d8b565b95945050505050565b6000610ee082610e5d565b9050919050565b610ef081610ed5565b82525050565b6000602082019050610f0b6000830184610ee7565b92915050565b6000602082019050610f266000830184610e22565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f7a82610f31565b810181811067ffffffffffffffff82111715610f9957610f98610f42565b5b80604052505050565b6000610fac610c5a565b9050610fb88282610f71565b919050565b600067ffffffffffffffff821115610fd857610fd7610f42565b5b602082029050602081019050919050565b600080fd5b6000611001610ffc84610fbd565b610fa2565b9050808382526020820190506020840283018581111561102457611023610fe9565b5b835b8181101561104d57806110398882610c8f565b845260208401935050602081019050611026565b5050509392505050565b600082601f83011261106c5761106b610f2c565b5b813561107c848260208601610fee565b91505092915050565b60008060006060848603121561109e5761109d610c64565b5b600084013567ffffffffffffffff8111156110bc576110bb610c69565b5b6110c886828701611057565b93505060206110d986828701610ced565b92505060406110ea86828701610d23565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61112981610d02565b82525050565b600061113b8383611120565b60208301905092915050565b6000602082019050919050565b600061115f826110f4565b61116981856110ff565b935061117483611110565b8060005b838110156111a557815161118c888261112f565b975061119783611147565b925050600181019050611178565b5085935050505092915050565b600060208201905081810360008301526111cc8184611154565b905092915050565b6000602082840312156111ea576111e9610c64565b5b60006111f884828501610ced565b91505092915050565b61120a81610c6e565b82525050565b60006020820190506112256000830184611201565b92915050565b60008151905061123a81610cd6565b92915050565b600061124b82610cc4565b9050919050565b61125b81611240565b811461126657600080fd5b50565b60008151905061127881611252565b92915050565b60008151905061128d81610d0c565b92915050565b600080600080608085870312156112ad576112ac610c64565b5b60006112bb8782880161122b565b94505060206112cc87828801611269565b93505060406112dd8782880161127e565b92505060606112ee8782880161127e565b91505092959194509250565b600060608201905061130f6000830186611201565b61131c6020830185610e22565b6113296040830184610d8b565b949350505050565b60006020828403121561134757611346610c64565b5b60006113558482850161127e565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061139761139261138d8461135e565b610e31565b611368565b9050919050565b6113a78161137c565b82525050565b60006020820190506113c2600083018461139e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220272ce14602f75614b18cf2bf19ab680c14b11f226e3a446f76e4fe0c0e360dc764736f6c634300081c0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"ProxyModule#SCI","networkInteractionId":1,"nonce":24,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"6371614105"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"43792295"}},"hash":"0xfc47798db3dc1a9b3763fbf6ea8d71907a0dfce54273732c256aa40795333969"},"type":"TRANSACTION_SEND"} -{"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":"0x60a060405234801561001057600080fd5b506040516129513803806129518339818101604052810190610032919061051a565b308161004261019560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b45760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100ab9190610588565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100ec6000801b8261019d60201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506000600360006101000a81548160ff02191690831515021790555061018f7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092387f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750961027660201b60201c565b506105a3565b600033905090565b60008060001b830361025e57600073ffffffffffffffffffffffffffffffffffffffff166101cf6102c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461021c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61026e83836102f060201b60201c565b905092915050565b6000801b82036102b2576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102c282826103ed60201b60201c565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610302838361044e60201b60201c565b6103e257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061037f61019560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506103e7565b600090505b92915050565b60006103fe836104b860201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806000838152602001908152602001600020600101549050919050565b600080fd5b600065ffffffffffff82169050919050565b6104f7816104dc565b811461050257600080fd5b50565b600081519050610514816104ee565b92915050565b6000602082840312156105305761052f6104d7565b5b600061053e84828501610505565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061057282610547565b9050919050565b61058281610567565b82525050565b600060208201905061059d6000830184610579565b92915050565b60805161238c6105c560003960008181610924015261115a015261238c6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611ccb565b6105ff565b6040516102279190611d13565b60405180910390f35b610238610679565b6040516102459190611d4f565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611da0565b61069c565b60405161027f9190611ddc565b60405180910390f35b6102a2600480360381019061029d9190611e55565b6106bb565b005b6102be60048036038101906102b99190611e55565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611da0565b610827565b6040516102f19190611ef4565b60405180910390f35b610314600480360381019061030f9190611da0565b610867565b6040516103249493929190611f37565b60405180910390f35b6103356108d7565b6040516103429190611d13565b60405180910390f35b61036560048036038101906103609190611f7c565b6108ee565b005b610381600480360381019061037c9190611fd5565b610908565b005b61038b610922565b6040516103989190612023565b60405180910390f35b6103bb60048036038101906103b69190611e55565b610946565b6040516103c89190611d13565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f0919061203e565b60405180910390f35b6104016109e6565b60405161040e919061203e565b60405180910390f35b610431600480360381019061042c9190611e55565b6109f5565b60405161043e9190611d13565b60405180910390f35b61044f610a5f565b60405161045d929190612059565b60405180910390f35b61046e610abf565b60405161047b9190611ddc565b60405180910390f35b61049e60048036038101906104999190611da0565b610ac6565b6040516104ab9190612082565b60405180910390f35b6104ce60048036038101906104c991906120db565b610ae6565b005b6104ea60048036038101906104e5919061211b565b610b09565b005b6104f4610b17565b6040516105019190611ddc565b60405180910390f35b610512610b3b565b60405161051f9190611d4f565b60405180910390f35b610530610ba9565b005b61053a610c3f565b60405161054892919061215b565b60405180910390f35b61056b60048036038101906105669190611da0565b610c82565b604051610578919061203e565b60405180910390f35b61059b60048036038101906105969190611e55565b610cc2565b005b6105a5610d0c565b005b6105c160048036038101906105bc9190612184565b610d24565b005b6105cb610d3d565b6040516105d89190611ddc565b60405180910390f35b6105e9610d61565b6040516105f69190611ddc565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d85565b5b9050919050565b600062069780905090565b6000801b61069181610dff565b610699610e13565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610dff565b6106d78383610e20565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c3f565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610eed565b155b80610788575061078681610f02565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d4f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f16565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610dff565b610824610f91565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610dff565b61090482610ff4565b5050565b6000801b61091581610dff565b61091e8261106f565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c82565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610dff565b6109b96110d6565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610eed565b8015610a945750610a9281610f02565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b610aee611139565b82610af98282611141565b610b038484611250565b50505050565b610b138282611375565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5e81610eed565b8015610b6f5750610b6e81610f02565b5b610b8d576001601a9054906101000a900465ffffffffffff16610ba3565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bb3610c3f565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bd5611139565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457610bf8611139565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c2b919061203e565b60405180910390fd5b610c3c611418565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cfe576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0882826114e7565b5050565b6000801b610d1981610dff565b610d21611509565b50565b610d2e8383611375565b610d388282611250565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df85750610df782611516565b5b9050919050565b610e1081610e0b611139565b611580565b50565b610e1e6000806115d1565b565b60008060001b8303610edb57600073ffffffffffffffffffffffffffffffffffffffff16610e4c6109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e99576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ee583836116c1565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f1e611139565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8c82826117b2565b505050565b610f99611835565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fdd611139565b604051610fea919061203e565b60405180910390a1565b6000610ffe610b3b565b61100742611875565b6110119190612206565b905061101d82826118cf565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516110639190611d4f565b60405180910390a25050565b600061107a82611982565b61108342611875565b61108d9190612206565b905061109982826115d1565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110ca929190612059565b60405180910390a15050565b6110de6119e1565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611122611139565b60405161112f919061203e565b60405180910390a1565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111b19190611ddc565b602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190612255565b73ffffffffffffffffffffffffffffffffffffffff161461124c5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611243929190612282565b60405180910390fd5b5050565b6112586119e1565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd261135b611139565b604051611368919061203e565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861139f81610dff565b6113a76119e1565b6113b18284611a22565b818373ffffffffffffffffffffffffffffffffffffffff166113d1611139565b73ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600080611423610c3f565b9150915061143081610eed565b1580611442575061144081610f02565b155b1561148457806040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815260040161147b9190611d4f565b60405180910390fd5b6114986000801b6114936109bc565b6117b2565b506114a66000801b83610e20565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114f08261069c565b6114f981610dff565b61150383836117b2565b50505050565b6115146000806118cf565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61158a82826109f5565b6115cd5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115c4929190612282565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115f381610eed565b156116725761160181610f02565b1561164457600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550611671565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116cd83836109f5565b6117a757600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611744611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506117ac565b600090505b92915050565b60008060001b831480156117f857506117c96109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561182357600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b61182d8383611b3f565b905092915050565b61183d6108d7565b611873576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118c7576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118be9291906122f3565b60405180910390fd5b819050919050565b60006118d9610c3f565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061194b81610eed565b1561197d577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b60008061198d610b3b565b90508065ffffffffffff168365ffffffffffff16116119b75782816119b2919061231c565b6119d9565b6119d88365ffffffffffff166119cb610679565b65ffffffffffff16611c31565b5b915050919050565b6119e96108d7565b15611a20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288611b25611139565b604051611b32919061203e565b60405180910390a4505050565b6000611b4b83836109f5565b15611c2657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bc3611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c2b565b600090505b92915050565b6000611c408284108484611c48565b905092915050565b6000611c5384611c62565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ca881611c73565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b600060208284031215611ce157611ce0611c6e565b5b6000611cef84828501611cb6565b91505092915050565b60008115159050919050565b611d0d81611cf8565b82525050565b6000602082019050611d286000830184611d04565b92915050565b600065ffffffffffff82169050919050565b611d4981611d2e565b82525050565b6000602082019050611d646000830184611d40565b92915050565b6000819050919050565b611d7d81611d6a565b8114611d8857600080fd5b50565b600081359050611d9a81611d74565b92915050565b600060208284031215611db657611db5611c6e565b5b6000611dc484828501611d8b565b91505092915050565b611dd681611d6a565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e2282611df7565b9050919050565b611e3281611e17565b8114611e3d57600080fd5b50565b600081359050611e4f81611e29565b92915050565b60008060408385031215611e6c57611e6b611c6e565b5b6000611e7a85828601611d8b565b9250506020611e8b85828601611e40565b9150509250929050565b6000819050919050565b6000611eba611eb5611eb084611df7565b611e95565b611df7565b9050919050565b6000611ecc82611e9f565b9050919050565b6000611ede82611ec1565b9050919050565b611eee81611ed3565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b611f1881611e17565b82525050565b6000819050919050565b611f3181611f1e565b82525050565b6000608082019050611f4c6000830187611f0f565b611f596020830186611ee5565b611f666040830185611f28565b611f736060830184611f28565b95945050505050565b600060208284031215611f9257611f91611c6e565b5b6000611fa084828501611e40565b91505092915050565b611fb281611d2e565b8114611fbd57600080fd5b50565b600081359050611fcf81611fa9565b92915050565b600060208284031215611feb57611fea611c6e565b5b6000611ff984828501611fc0565b91505092915050565b600061200d82611ec1565b9050919050565b61201d81612002565b82525050565b60006020820190506120386000830184612014565b92915050565b60006020820190506120536000830184611f0f565b92915050565b600060408201905061206e6000830185611d40565b61207b6020830184611d40565b9392505050565b60006020820190506120976000830184611f28565b92915050565b60006120a882611e17565b9050919050565b6120b88161209d565b81146120c357600080fd5b50565b6000813590506120d5816120af565b92915050565b600080604083850312156120f2576120f1611c6e565b5b600061210085828601611d8b565b9250506020612111858286016120c6565b9150509250929050565b6000806040838503121561213257612131611c6e565b5b600061214085828601611e40565b925050602061215185828601611d8b565b9150509250929050565b60006040820190506121706000830185611f0f565b61217d6020830184611d40565b9392505050565b60008060006060848603121561219d5761219c611c6e565b5b60006121ab86828701611e40565b93505060206121bc86828701611d8b565b92505060406121cd868287016120c6565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061221182611d2e565b915061221c83611d2e565b9250828201905065ffffffffffff81111561223a576122396121d7565b5b92915050565b60008151905061224f81611e29565b92915050565b60006020828403121561226b5761226a611c6e565b5b600061227984828501612240565b91505092915050565b60006040820190506122976000830185611f0f565b6122a46020830184611dcd565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122dd6122d86122d3846122ab565b611e95565b6122b5565b9050919050565b6122ed816122c2565b82525050565b600060408201905061230860008301856122e4565b6123156020830184611f28565b9392505050565b600061232782611d2e565b915061233283611d2e565b9250828203905065ffffffffffff8111156123505761234f6121d7565b5b9291505056fea26469706673582212208d9faa5a557b2963a1f0927d9241c63c1ae66f5d48267732b4a8678b6cd45e3b64736f6c634300081c00330000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SciRegistry#SciRegistry","networkInteractionId":1,"nonce":25,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"6371614105"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"43792295"}},"hash":"0xd4487ccf1e25407a5c2b79af0e76808ac3381878d1d75f070d5d9286937f40ad"},"type":"TRANSACTION_SEND"} -{"futureId":"ProxyModule#SCI","hash":"0xfc47798db3dc1a9b3763fbf6ea8d71907a0dfce54273732c256aa40795333969","networkInteractionId":1,"receipt":{"blockHash":"0xa1327f8285473ea73ccf8ea4bb8989adf97c323571d173ef8db190fc8259bbe8","blockNumber":7387392,"contractAddress":"0x79A2C5A82E3d94513a0e9c3aC409a546D79b27b1","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"ProxyModule#SCI","result":{"address":"0x79A2C5A82E3d94513a0e9c3aC409a546D79b27b1","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"SciRegistry#SciRegistry","hash":"0xd4487ccf1e25407a5c2b79af0e76808ac3381878d1d75f070d5d9286937f40ad","networkInteractionId":1,"receipt":{"blockHash":"0x00744dd1875fe7496441310edeba92f1abe6c5408843aec59c6d0b9e96cc541a","blockNumber":7387393,"contractAddress":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","logs":[{"address":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","data":"0x","logIndex":86,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]},{"address":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","data":"0x","logIndex":87,"topics":["0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","0x0000000000000000000000000000000000000000000000000000000000000000","0x3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SciRegistry#SciRegistry","result":{"address":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"args":[],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","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":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","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":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","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":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SciRegistry#SciRegistry.grantRole","networkInteractionId":1,"nonce":26,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"6063324063"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"43792295"}},"hash":"0xa4231d066ca0e22f879c1a4d5d1d2a8ff1e26cb916b8e1d90313d4a3aabce090"},"type":"TRANSACTION_SEND"} -{"futureId":"SciRegistry#SciRegistry.grantRole","hash":"0xa4231d066ca0e22f879c1a4d5d1d2a8ff1e26cb916b8e1d90313d4a3aabce090","networkInteractionId":1,"receipt":{"blockHash":"0xd9692cf2adda83602bac0045a7b13d8b4f76d4dd90b3710425ff8640b9981cc3","blockNumber":7387400,"logs":[{"address":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","data":"0x","logIndex":230,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SciRegistry#SciRegistry.grantRole","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"EnsRegistrar#EnsRegistrar","constructorArgs":["0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf"],"contractName":"EnsRegistrar","dependencies":["SciRegistry#SciRegistry"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","futureId":"EnsRegistrar#EnsRegistrar","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"EnsRegistrar#EnsRegistrar","networkInteraction":{"data":"0x60c060405234801561001057600080fd5b5060405161082e38038061082e83398181016040528101906100329190610104565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250505050610144565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100d1826100a6565b9050919050565b6100e1816100c6565b81146100ec57600080fd5b50565b6000815190506100fe816100d8565b92915050565b6000806040838503121561011b5761011a6100a1565b5b6000610129858286016100ef565b925050602061013a858286016100ef565b9150509250929050565b60805160a0516106b161017d6000396000818160da0152818161017601526101ca01526000818161019a015261027c01526106b16000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634c7464cf146100515780637b1039991461006d5780637d73b2311461008b578063a8c00861146100a9575b600080fd5b61006b6004803603810190610066919061041d565b6100c5565b005b610075610174565b60405161008291906104bc565b60405180910390f35b610093610198565b6040516100a091906104f8565b60405180910390f35b6100c360048036038101906100be919061053f565b6101bc565b005b6100cd61025b565b826100d88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c61011c61025b565b86866040518463ffffffff1660e01b815260040161013c939291906105be565b600060405180830381600087803b15801561015657600080fd5b505af115801561016a573d6000803e3d6000fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610263565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016102239291906105f5565b600060405180830381600087803b15801561023d57600080fd5b505af1158015610251573d6000803e3d6000fd5b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102d3919061061e565b602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610314919061064e565b73ffffffffffffffffffffffffffffffffffffffff161461036e5781816040517f36b852100000000000000000000000000000000000000000000000000000000081526004016103659291906105f5565b60405180910390fd5b5050565b600080fd5b6000819050919050565b61038a81610377565b811461039557600080fd5b50565b6000813590506103a781610381565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103d8826103ad565b9050919050565b60006103ea826103cd565b9050919050565b6103fa816103df565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806040838503121561043457610433610372565b5b600061044285828601610398565b925050602061045385828601610408565b9150509250929050565b6000819050919050565b600061048261047d610478846103ad565b61045d565b6103ad565b9050919050565b600061049482610467565b9050919050565b60006104a682610489565b9050919050565b6104b68161049b565b82525050565b60006020820190506104d160008301846104ad565b92915050565b60006104e282610489565b9050919050565b6104f2816104d7565b82525050565b600060208201905061050d60008301846104e9565b92915050565b61051c816103cd565b811461052757600080fd5b50565b60008135905061053981610513565b92915050565b6000806040838503121561055657610555610372565b5b60006105648582860161052a565b925050602061057585828601610398565b9150509250929050565b610588816103cd565b82525050565b61059781610377565b82525050565b60006105a882610489565b9050919050565b6105b88161059d565b82525050565b60006060820190506105d3600083018661057f565b6105e0602083018561058e565b6105ed60408301846105af565b949350505050565b600060408201905061060a600083018561057f565b610617602083018461058e565b9392505050565b6000602082019050610633600083018461058e565b92915050565b60008151905061064881610513565b92915050565b60006020828403121561066457610663610372565b5b600061067284828501610639565b9150509291505056fea2646970667358221220c90dbfa0c27c6833e6ed98d1937d68c4ddcf4ef68d5d349eef2753821461b49064736f6c634300081c003300000000000000000000000000000000000c2e074ec69a0dfb2997ba6c7d2e1e000000000000000000000000d84dc714938fc3b7e9ef2674f6cd3fda49576fbf","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"EnsRegistrar#EnsRegistrar","networkInteractionId":1,"nonce":27,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"6021840271"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"43792295"}},"hash":"0xa6f683a23ac824d5dd01d71b1779b90a1448453940754ecd7d064f7b819caec2"},"type":"TRANSACTION_SEND"} -{"args":[],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","dependencies":["SciRegistry#SciRegistry"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","functionName":"REGISTRAR_ROLE","futureId":"EnsRegistrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","nameOrIndex":0,"strategy":"basic","strategyConfig":{},"type":"STATIC_CALL_EXECUTION_STATE_INITIALIZE"} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","networkInteraction":{"data":"0xf68e9553","from":"0x4430edfbb4777b3f8e5b951803657703039d688b","id":1,"to":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","type":"STATIC_CALL","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","networkInteractionId":1,"result":{"customErrorReported":false,"returnData":"0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","success":true},"type":"STATIC_CALL_COMPLETE"} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","result":{"type":"SUCCESS","value":"0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238"},"type":"STATIC_CALL_EXECUTION_STATE_COMPLETE"} -{"args":["0x4430edfbb4777b3f8e5b951803657703039d688b","0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf"],"artifactId":"ProxyModule#SCI","dependencies":["ProxyModule#SCI","SciRegistry#SciRegistry"],"functionName":"initialize","futureId":"ProxyModule#encodeFunctionCall(ProxyModule#SCI.initialize)","result":"0x485cc9550000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b000000000000000000000000d84dc714938fc3b7e9ef2674f6cd3fda49576fbf","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"PublicListVerifier#PublicListVerifier","constructorArgs":["0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf"],"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":"0x60a060405234801561001057600080fd5b50604051610e03380380610e03833981810160405281019061003291906100d1565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506100fe565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061009e82610073565b9050919050565b6100ae81610093565b81146100b957600080fd5b50565b6000815190506100cb816100a5565b92915050565b6000602082840312156100e7576100e661006e565b5b60006100f5848285016100bc565b91505092915050565b608051610ce36101206000396000818161045301526106980152610ce36000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063046852d01461005c5780630f59a4981461008c57806379fb477a146100a85780637b103999146100d857806382ef31d9146100f6575b600080fd5b61007660048036038101906100719190610862565b610112565b60405161008391906108c4565b60405180910390f35b6100a660048036038101906100a1919061099a565b61022a565b005b6100c260048036038101906100bd9190610862565b61041f565b6040516100cf91906108c4565b60405180910390f35b6100e0610451565b6040516100ed9190610a8e565b60405180910390f35b610110600480360381019061010b919061099a565b610475565b005b60008060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600081146101895780915050610223565b60008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020019081526020016000205490506000811461021d5780915050610223565b60009150505b9392505050565b610232610677565b8561023d828261067f565b60005b868690508110156104155760005b85858381811061026157610260610aa9565b5b90506020028101906102739190610ae7565b905081101561040957426000808b815260200190815260200160002060008a8a868181106102a4576102a3610aa9565b5b90506020020160208101906102b99190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061030857610307610aa9565b5b905060200281019061031a9190610ae7565b8581811061032b5761032a610aa9565b5b9050602002013581526020019081526020016000208190555087878381811061035757610356610aa9565b5b905060200201602081019061036c9190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1686868481811061039557610394610aa9565b5b90506020028101906103a79190610ae7565b838181106103b8576103b7610aa9565b5b905060200201358a7fc177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd06103e9610677565b6040516103f69190610b86565b60405180910390a480600101905061024e565b50806001019050610240565b5050505050505050565b600060205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b61047d610677565b85610488828261067f565b60005b8686905081101561066d5760005b8585838181106104ac576104ab610aa9565b5b90506020028101906104be9190610ae7565b90508110156106615760008060008b815260200190815260200160002060008a8a868181106104f0576104ef610aa9565b5b90506020020160208101906105059190610b4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061055457610553610aa9565b5b90506020028101906105669190610ae7565b8581811061057757610576610aa9565b5b905060200201358152602001908152602001600020819055508787838181106105a3576105a2610aa9565b5b90506020020160208101906105b89190610b4a565b73ffffffffffffffffffffffffffffffffffffffff168686848181106105e1576105e0610aa9565b5b90506020028101906105f39190610ae7565b8381811061060457610603610aa9565b5b905060200201358a7f36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75610635610677565b6040516106429190610b86565b60405180910390a48060010190508061065a90610bd0565b9050610499565b5080600101905061048b565b5050505050505050565b600033905090565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016106ef9190610c27565b602060405180830381865afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190610c57565b73ffffffffffffffffffffffffffffffffffffffff161461078a5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401610781929190610c84565b60405180910390fd5b5050565b600080fd5b600080fd5b6000819050919050565b6107ab81610798565b81146107b657600080fd5b50565b6000813590506107c8816107a2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107f9826107ce565b9050919050565b610809816107ee565b811461081457600080fd5b50565b60008135905061082681610800565b92915050565b6000819050919050565b61083f8161082c565b811461084a57600080fd5b50565b60008135905061085c81610836565b92915050565b60008060006060848603121561087b5761087a61078e565b5b6000610889868287016107b9565b935050602061089a86828701610817565b92505060406108ab8682870161084d565b9150509250925092565b6108be8161082c565b82525050565b60006020820190506108d960008301846108b5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610904576109036108df565b5b8235905067ffffffffffffffff811115610921576109206108e4565b5b60208301915083602082028301111561093d5761093c6108e9565b5b9250929050565b60008083601f84011261095a576109596108df565b5b8235905067ffffffffffffffff811115610977576109766108e4565b5b602083019150836020820283011115610993576109926108e9565b5b9250929050565b6000806000806000606086880312156109b6576109b561078e565b5b60006109c4888289016107b9565b955050602086013567ffffffffffffffff8111156109e5576109e4610793565b5b6109f1888289016108ee565b9450945050604086013567ffffffffffffffff811115610a1457610a13610793565b5b610a2088828901610944565b92509250509295509295909350565b6000819050919050565b6000610a54610a4f610a4a846107ce565b610a2f565b6107ce565b9050919050565b6000610a6682610a39565b9050919050565b6000610a7882610a5b565b9050919050565b610a8881610a6d565b82525050565b6000602082019050610aa36000830184610a7f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610b0457610b03610ad8565b5b80840192508235915067ffffffffffffffff821115610b2657610b25610add565b5b602083019250602082023603831315610b4257610b41610ae2565b5b509250929050565b600060208284031215610b6057610b5f61078e565b5b6000610b6e84828501610817565b91505092915050565b610b80816107ee565b82525050565b6000602082019050610b9b6000830184610b77565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bdb8261082c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c0d57610c0c610ba1565b5b600182019050919050565b610c2181610798565b82525050565b6000602082019050610c3c6000830184610c18565b92915050565b600081519050610c5181610800565b92915050565b600060208284031215610c6d57610c6c61078e565b5b6000610c7b84828501610c42565b91505092915050565b6000604082019050610c996000830185610b77565b610ca66020830184610c18565b939250505056fea2646970667358221220e19e189f4f848086a4754a9206058bc9b93d6e078c6e1ebe9364c03045d6085764736f6c634300081c0033000000000000000000000000d84dc714938fc3b7e9ef2674f6cd3fda49576fbf","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"PublicListVerifier#PublicListVerifier","networkInteractionId":1,"nonce":28,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"5702583907"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"43792295"}},"hash":"0x519c3a699cbb08a545a5af170f10cf2f1fe71a4f38e08c1c679ed84e5a53a8e2"},"type":"TRANSACTION_SEND"} -{"artifactId":"SciRegstrar#SciRegistrar","constructorArgs":["0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf",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":"0x60a060405234801561001057600080fd5b50604051611f85380380611f858339818101604052810190610032919061043c565b8061004161012960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100b35760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100aa919061048b565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100eb6000801b8261013160201b60201c565b5050508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506104a6565b600033905090565b60008060001b83036101f257600073ffffffffffffffffffffffffffffffffffffffff1661016361020a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146101b0576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610202838361023460201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610246838361033160201b60201c565b61032657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102c361012960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061032b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103cb826103a0565b9050919050565b6103db816103c0565b81146103e657600080fd5b50565b6000815190506103f8816103d2565b92915050565b600065ffffffffffff82169050919050565b610419816103fe565b811461042457600080fd5b50565b60008151905061043681610410565b92915050565b600080604083850312156104535761045261039b565b5b6000610461858286016103e9565b925050602061047285828601610427565b9150509250929050565b610485816103c0565b82525050565b60006020820190506104a0600083018461047c565b92915050565b608051611ab66104cf6000396000818161063e0152818161079601526109fb0152611ab66000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea2646970667358221220d44239aa553373132c81fc8c57e3b38437535b47175888a8cbee49e7e0b303e064736f6c634300081c0033000000000000000000000000d84dc714938fc3b7e9ef2674f6cd3fda49576fbf0000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SciRegstrar#SciRegistrar","networkInteractionId":1,"nonce":29,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"5702583907"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"43792295"}},"hash":"0xd89f09115fceb028de9bb510c54d4ac161edcebb424f2eee106f7e8b021c8019"},"type":"TRANSACTION_SEND"} -{"args":[],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","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":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","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":"EnsRegistrar#EnsRegistrar","hash":"0xa6f683a23ac824d5dd01d71b1779b90a1448453940754ecd7d064f7b819caec2","networkInteractionId":1,"receipt":{"blockHash":"0xd1c8edede3a3895343c6330470030cd4e126e5b5197e5bc8c01a6ba1b5691930","blockNumber":7387406,"contractAddress":"0x9a33cD737a74939830e7a0bF6B3bFd67219d61E6","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"EnsRegistrar#EnsRegistrar","result":{"address":"0x9a33cD737a74939830e7a0bF6B3bFd67219d61E6","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"PublicListVerifier#PublicListVerifier","hash":"0x519c3a699cbb08a545a5af170f10cf2f1fe71a4f38e08c1c679ed84e5a53a8e2","networkInteractionId":1,"receipt":{"blockHash":"0xd1c8edede3a3895343c6330470030cd4e126e5b5197e5bc8c01a6ba1b5691930","blockNumber":7387406,"contractAddress":"0x2E242894dC1580204037740f54984FA1d38931FD","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"PublicListVerifier#PublicListVerifier","result":{"address":"0x2E242894dC1580204037740f54984FA1d38931FD","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"SciRegstrar#SciRegistrar","hash":"0xd89f09115fceb028de9bb510c54d4ac161edcebb424f2eee106f7e8b021c8019","networkInteractionId":1,"receipt":{"blockHash":"0x09784229f6a8c6bfea9b261aa27b7a7ddd4f880893d2427722038318500b4141","blockNumber":7387410,"contractAddress":"0x64349bD9Ba62BaDCF92cAfbD08A337428360cE24","logs":[{"address":"0x64349bD9Ba62BaDCF92cAfbD08A337428360cE24","data":"0x","logIndex":237,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SciRegstrar#SciRegistrar","result":{"address":"0x64349bD9Ba62BaDCF92cAfbD08A337428360cE24","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"args":["0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","0x9a33cD737a74939830e7a0bF6B3bFd67219d61E6"],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","dependencies":["SciRegistry#SciRegistry","EnsRegistrar#SciRegistry~SciRegistry.REGISTRAR_ROLE","EnsRegistrar#EnsRegistrar"],"from":"0x4430edfbb4777b3f8e5b951803657703039d688b","functionName":"grantRole","futureId":"EnsRegistrar#SciRegistry~SciRegistry.grantRole","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.grantRole","networkInteraction":{"data":"0x2f2ff15dedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092380000000000000000000000009a33cd737a74939830e7a0bf6b3bfd67219d61e6","id":1,"to":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.grantRole","networkInteractionId":1,"nonce":30,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"5551991257"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"43792295"}},"hash":"0x355c35d1a2a55be4fc2fe3b54bc0cbfd288e7c75147bf80f0711c71b29293cc9"},"type":"TRANSACTION_SEND"} -{"artifactId":"ProxyModule#TransparentUpgradeableProxy","constructorArgs":["0x79A2C5A82E3d94513a0e9c3aC409a546D79b27b1","0x4430edfbb4777b3f8e5b951803657703039d688b","0x485cc9550000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b000000000000000000000000d84dc714938fc3b7e9ef2674f6cd3fda49576fbf"],"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":"0x60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c003300000000000000000000000079a2c5a82e3d94513a0e9c3ac409a546d79b27b10000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc9550000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b000000000000000000000000d84dc714938fc3b7e9ef2674f6cd3fda49576fbf00000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"ProxyModule#TransparentUpgradeableProxy","networkInteractionId":1,"nonce":31,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"5166743345"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"43792295"}},"hash":"0x77007e3431c3cddb5973e09faf4831749637120c07f663cd17314203f44c3a8c"},"type":"TRANSACTION_SEND"} -{"args":[],"artifactId":"SciRegstrar#SciRegistrar","contractAddress":"0x64349bD9Ba62BaDCF92cAfbD08A337428360cE24","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":"0x64349bD9Ba62BaDCF92cAfbD08A337428360cE24","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","0x64349bD9Ba62BaDCF92cAfbD08A337428360cE24"],"artifactId":"SciRegistry#SciRegistry","contractAddress":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","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":"0x2f2ff15dedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923800000000000000000000000064349bd9ba62badcf92cafbd08a337428360ce24","id":1,"to":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SciRegstrar#SciRegistry~SciRegistry.grantRole","networkInteractionId":1,"nonce":32,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"4698062271"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"43792295"}},"hash":"0x352c9fc04205ec681c2cfe837fbaf147b9334a3749a524a564d2e19a05baabcf"},"type":"TRANSACTION_SEND"} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.grantRole","hash":"0x355c35d1a2a55be4fc2fe3b54bc0cbfd288e7c75147bf80f0711c71b29293cc9","networkInteractionId":1,"receipt":{"blockHash":"0x4ba9931da9757de705d5a8bd60263bc1522ea459cc2df14e76d02254391530e1","blockNumber":7387418,"logs":[{"address":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","data":"0x","logIndex":196,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","0x0000000000000000000000009a33cd737a74939830e7a0bf6b3bfd67219d61e6","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"EnsRegistrar#SciRegistry~SciRegistry.grantRole","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"ProxyModule#TransparentUpgradeableProxy","hash":"0x77007e3431c3cddb5973e09faf4831749637120c07f663cd17314203f44c3a8c","networkInteractionId":1,"receipt":{"blockHash":"0x4ba9931da9757de705d5a8bd60263bc1522ea459cc2df14e76d02254391530e1","blockNumber":7387418,"contractAddress":"0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0","logs":[{"address":"0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0","data":"0x","logIndex":229,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000079a2c5a82e3d94513a0e9c3ac409a546d79b27b1"]},{"address":"0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0","data":"0x","logIndex":230,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]},{"address":"0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0","data":"0x","logIndex":231,"topics":["0x363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f5","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000d84dc714938fc3b7e9ef2674f6cd3fda49576fbf"]},{"address":"0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":232,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]},{"address":"0x4399350BBC86F1CB8F605cc6816507F96428656e","data":"0x","logIndex":233,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]},{"address":"0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0","data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004399350bbc86f1cb8f605cc6816507f96428656e","logIndex":234,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"ProxyModule#TransparentUpgradeableProxy","result":{"address":"0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"SciRegstrar#SciRegistry~SciRegistry.grantRole","hash":"0x352c9fc04205ec681c2cfe837fbaf147b9334a3749a524a564d2e19a05baabcf","networkInteractionId":1,"receipt":{"blockHash":"0xb5e8670d1ce6665c97ac796916fea9044ac007289131ca18f94a8d16164014d0","blockNumber":7387419,"logs":[{"address":"0xD84Dc714938fc3b7E9Ef2674f6cD3FdA49576FBf","data":"0x","logIndex":270,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0xedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","0x00000000000000000000000064349bd9ba62badcf92cafbd08a337428360ce24","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SciRegstrar#SciRegistry~SciRegistry.grantRole","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"ProxyModule#TransparentUpgradeableProxy","dependencies":["ProxyModule#TransparentUpgradeableProxy"],"emitterAddress":"0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0","eventIndex":0,"eventName":"AdminChanged","futureId":"ProxyModule#TransparentUpgradeableProxy.AdminChanged.newAdmin.0","nameOrIndex":"newAdmin","result":"0x4399350BBC86F1CB8F605cc6816507F96428656e","strategy":"basic","strategyConfig":{},"txToReadFrom":"0x77007e3431c3cddb5973e09faf4831749637120c07f663cd17314203f44c3a8c","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} -{"args":["0x272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68","0x4430edfbb4777b3f8e5b951803657703039d688b"],"artifactId":"SciRegstrar#SciRegistrar","contractAddress":"0x64349bD9Ba62BaDCF92cAfbD08A337428360cE24","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":"0x64349bD9Ba62BaDCF92cAfbD08A337428360cE24","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SciRegstrar#SciRegistrar.grantRole","networkInteractionId":1,"nonce":33,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"5820025603"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"43792295"}},"hash":"0x041d5b590fd75309cabb12d03d064afd3532bf292ec254e8239d97e506959e59"},"type":"TRANSACTION_SEND"} -{"futureId":"SciRegstrar#SciRegistrar.grantRole","hash":"0x041d5b590fd75309cabb12d03d064afd3532bf292ec254e8239d97e506959e59","networkInteractionId":1,"receipt":{"blockHash":"0x8f365b3acca49ad09f14cc68fac754709fd897bfaebb1f03b19f2d81fb82868e","blockNumber":7387425,"logs":[{"address":"0x64349bD9Ba62BaDCF92cAfbD08A337428360cE24","data":"0x","logIndex":174,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b","0x0000000000000000000000004430edfbb4777b3f8e5b951803657703039d688b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SciRegstrar#SciRegistrar.grantRole","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"ProxyModule#ProxyAdmin","contractAddress":"0x4399350BBC86F1CB8F605cc6816507F96428656e","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":"0xE9debDF7E1223dAD6F2109F2A648DCCf050a56e0","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/CleanupModule.ts b/ignition/modules/CleanupModule.ts new file mode 100644 index 0000000..ca2de94 --- /dev/null +++ b/ignition/modules/CleanupModule.ts @@ -0,0 +1,17 @@ +import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; +import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'; +import SuperChainTargetRegistrarModule from './registrars/SuperChainTargetRegistrarModule'; + +export const CleanupModule = buildModule('CleanupModule', (m: IgnitionModuleBuilder) => { + const { superChainTargetRegistrar } = m.useModule(SuperChainTargetRegistrarModule); + + + m.call(superChainTargetRegistrar, 'grantRole', [ + m.staticCall(superChainTargetRegistrar, 'REGISTER_DOMAIN_ROLE'), + m.getParameter('ensRegistrarAddress'), + ]); + + return { superChainTargetRegistrar }; +}); + +export default CleanupModule; diff --git a/ignition/modules/registrars/EnsRegistrarModule.ts b/ignition/modules/registrars/EnsRegistrarModule.ts index 481292a..61c2562 100644 --- a/ignition/modules/registrars/EnsRegistrarModule.ts +++ b/ignition/modules/registrars/EnsRegistrarModule.ts @@ -1,16 +1,15 @@ import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; -import { SciRegistryModule } from '../registry/SciRegistryModule'; -import { EnsRegistrar, SciRegistry } from '../../../types'; +import { EnsRegistrar } from '../../../types'; import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'; export const EnsRegistrarModule = buildModule('EnsRegistrar', (m: IgnitionModuleBuilder) => { const ensRegistry = m.getParameter('ensRegistryAddress'); const l1CrossDomainMessangerAddress = m.getParameter('l1CrossDomainMessangerAddress'); - const sciRegistryAddress = m.getParameter('sciRegistryAddress'); + const superChainTargetRegistrar = m.getParameter('superChainTargetRegistrar'); const ensRegistrar = m.contract('EnsRegistrar', [ ensRegistry, - sciRegistryAddress, + superChainTargetRegistrar, l1CrossDomainMessangerAddress, ]); diff --git a/ignition/parameters/optimism-sepolia.json5 b/ignition/parameters/optimism-sepolia.json5 index 3b9cf70..8443314 100644 --- a/ignition/parameters/optimism-sepolia.json5 +++ b/ignition/parameters/optimism-sepolia.json5 @@ -3,4 +3,7 @@ // https://docs.optimism.io/superchain/addresses l2CrossDomainMessangerAddress: '0x4200000000000000000000000000000000000007', }, + CleanupModule: { + ensRegistrarAddress: '0xb92E9C1332bd8e0Feb8Dc0983f71d1b1EB750555', + }, } diff --git a/ignition/parameters/sepolia.json5 b/ignition/parameters/sepolia.json5 index f7b942b..585398f 100644 --- a/ignition/parameters/sepolia.json5 +++ b/ignition/parameters/sepolia.json5 @@ -2,8 +2,9 @@ EnsRegistrar: { // https://docs.ens.domains/learn/deployments ensRegistryAddress: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e', - l1CrossDomainMessangerAddress: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', - // TODO: Complete once the protocol is deployed - sciRegistryAddress: '', + // https://docs.optimism.io/superchain/addresses + l1CrossDomainMessangerAddress: '0x58Cc85b8D04EA49cC6DBd3CbFFd00B4B8D6cb3ef', + // Complete once the protocol is deployed + superChainTargetRegistrar: '0x9a33cD737a74939830e7a0bF6B3bFd67219d61E6', }, } diff --git a/package.json b/package.json index 41a784a..2985d3d 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,9 @@ "setup:localhost": "hardhat run scripts/setup-localhost.ts --network localhost", "deploy:protocol": "hardhat ignition deploy ignition/modules/ProtocolModule.ts", "deploy:satelite": "hardhat ignition deploy ignition/modules/SateliteModule.ts", + "deploy:cleanup": "hardhat ignition deploy ignition/modules/CleanupModule.ts", "save:deployments": "hardhat run scripts/build-deployment-address.ts", + "deploy:cleanup:testnet": "corepack pnpm run deploy:cleanup --network optimism-sepolia --parameters ignition/parameters/optimism-sepolia.json5", "deploy:sepolia": "corepack pnpm run deploy:satelite --verify --network sepolia --parameters ignition/parameters/sepolia.json5", "deploy:ethereum": "corepack pnpm run deploy:satelite --verify --network ethereum --parameters ignition/parameters/ethereum.json5", "deploy:optimsim": "corepack pnpm run deploy:protocol --verify --network optimism --parameters ignition/parameters/optimism.json5", diff --git a/test/Registrars/SuperChainTargetRegistrar.test.ts b/test/Registrars/SuperChainTargetRegistrar.test.ts index c9d1fc7..9f24d3b 100644 --- a/test/Registrars/SuperChainTargetRegistrar.test.ts +++ b/test/Registrars/SuperChainTargetRegistrar.test.ts @@ -4,7 +4,7 @@ import { SuperChainTargetRegistrar, SciRegistry, MockCrossDomainMessenger } from import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers'; import SuperChainTargetRegistrarModule, { SuperChainTargetRegistrarModuleReturnType, -} from '../../ignition/modules/registrars/SuperchainTargetRegistrarModule'; +} from '../../ignition/modules/registrars/SuperChainTargetRegistrarModule'; const DOMAIN_HASH = '0x77ebf9a801c579f50495cbb82e12145b476276f47b480b84c367a30b04d18e15'; const GAS_FOR_DOMAIN = 1000000; From d41dd99a9c9378f48a3142cab0268b0ec1567612 Mon Sep 17 00:00:00 2001 From: Agustincito Date: Wed, 2 Apr 2025 10:35:40 -0300 Subject: [PATCH 05/12] Add Registrars docs and comments --- contracts/Registrars/EnsRegistrar.sol | 6 ++-- contracts/Registrars/SciRegistrar.sol | 4 +-- .../Registrars/SuperChainSourceRegistrar.sol | 26 +++++++++++++++++ .../Registrars/SuperChainTargetRegistrar.sol | 28 +++++++++++++++++++ 4 files changed, 59 insertions(+), 5 deletions(-) diff --git a/contracts/Registrars/EnsRegistrar.sol b/contracts/Registrars/EnsRegistrar.sol index c3c8e12..b97493a 100644 --- a/contracts/Registrars/EnsRegistrar.sol +++ b/contracts/Registrars/EnsRegistrar.sol @@ -33,12 +33,12 @@ contract EnsRegistrar is SuperChainSourceRegistrar { _; } - // TODO: Add new variables and comments // TODO: Remove address in the name of the variables /** * @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. + * @param _crossChainDomainMessagnger Address of the cross-chain domain messenger contract. */ constructor( address _ensRegistryAddress, @@ -51,7 +51,7 @@ contract EnsRegistrar is SuperChainSourceRegistrar { /** * @dev Registers a domain in the SCI Registry contract. * @param owner Address of the domain owner. - * @param domainHash Namehash of domain. + * @param domainHash The namehash of the domain to be registered. * * Requirements: * @@ -66,7 +66,7 @@ contract EnsRegistrar is SuperChainSourceRegistrar { /** * @dev Registers a domain with a verifier in the SCI Registry contract. - * @param domainHash Namehash of the domain. + * @param domainHash The namehash of the domain to be registered. * @param verifier Address of the verifier contract. * * Requirements: diff --git a/contracts/Registrars/SciRegistrar.sol b/contracts/Registrars/SciRegistrar.sol index b9167e8..f8e9244 100644 --- a/contracts/Registrars/SciRegistrar.sol +++ b/contracts/Registrars/SciRegistrar.sol @@ -36,7 +36,7 @@ contract SciRegistrar is AccessControlDefaultAdminRules { /** * @dev Registers a domain in the SCI Registry contract. * @param owner Address expected to be the domain owner. - * @param domainHash Namehash of the domain. + * @param domainHash The namehash of the domain to be registered. * * Requirements: * @@ -52,7 +52,7 @@ contract SciRegistrar is AccessControlDefaultAdminRules { /** * @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 domainHash The namehash of the domain to be registered. * @param verifier Address of the verifier contract. * * Requirements: diff --git a/contracts/Registrars/SuperChainSourceRegistrar.sol b/contracts/Registrars/SuperChainSourceRegistrar.sol index 7ddd3c6..066e816 100644 --- a/contracts/Registrars/SuperChainSourceRegistrar.sol +++ b/contracts/Registrars/SuperChainSourceRegistrar.sol @@ -5,18 +5,38 @@ import {ISciRegistry} from '../SciRegistry/ISciRegistry.sol'; import {IVerifier} from '../Verifiers/IVerifier.sol'; import {ICrossDomainMessanger} from '../Op//ICrossDomainMessanger.sol'; +/** + * @title SuperChainSourceRegistrar + * @dev This abstract contract is designed to be inherited by registrar contracts that register domains on a superchain. + * It provides functionality to register a domain on a different chain via the superchain cross-domain messaging. + * + * @custom:security-contact security@sci.domains +*/ abstract contract SuperChainSourceRegistrar { + // Cross-domain messenger contract for sending messages to the target chain. ICrossDomainMessanger public immutable crossDomainMessanger; + // The address of the SuperChainTargetRegistrar on the target chain. address public targetRegistrar; + // Gas limits for cross-domain messages on the target chain. uint32 public constant REGISTER_DOMAIN_GAS_LIMIT = 200000; uint32 public constant REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT = 300000; + /** + * @dev Initializes the contract by setting up the Cross domain messenger and the target registrar. + * @param _crossDomainMessanger The address of the cross-domain messenger contract. + * @param _targetRegistrar The address of the registrar contract on the target chain. + */ constructor(address _crossDomainMessanger, address _targetRegistrar) { crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessanger); targetRegistrar = _targetRegistrar; } + /** + * @dev Registers a domain on the target registrar contract via cross-domain messaging. + * @param owner Address expected to be the domain owner. + * @param domainHash The namehash of the domain to be registered. + */ function _registerDomainCrossChain(address owner, bytes32 domainHash) internal { crossDomainMessanger.sendMessage( targetRegistrar, @@ -25,6 +45,12 @@ abstract contract SuperChainSourceRegistrar { ); } + /** + * @dev Registers a domain with a verifier on the target registrar contract via cross-domain messaging. + * @param owner Address expected to be the domain owner. + * @param domainHash The namehash of the domain to be registered. + * @param verifier The address of the verifier contract. + */ function _registerDomainWithVerifierCrossChain( address owner, bytes32 domainHash, diff --git a/contracts/Registrars/SuperChainTargetRegistrar.sol b/contracts/Registrars/SuperChainTargetRegistrar.sol index 7a58d1a..45e482b 100644 --- a/contracts/Registrars/SuperChainTargetRegistrar.sol +++ b/contracts/Registrars/SuperChainTargetRegistrar.sol @@ -5,6 +5,13 @@ import {ISciRegistry} from '../SciRegistry/ISciRegistry.sol'; import {IVerifier} from '../Verifiers/IVerifier.sol'; import {SuperChainAccessControlDefaultAdminRules} from '../Op/SuperChainAccessControlDefaultAdminRules.sol'; +/** + * @title SuperChainTargetRegistrar + * @dev This contract allows addresses from the source chain with REGISTER_DOMAIN_ROLE role to register a domain. + * It uses the superchain cross-domain messaging to "listen" for domain registration requests from the source chain. + * + * @custom:security-contact security@sci.domains +*/ contract SuperChainTargetRegistrar is SuperChainAccessControlDefaultAdminRules { // Role that allows registering domains bytes32 public constant REGISTER_DOMAIN_ROLE = keccak256('REGISTER_DOMAIN_ROLE'); @@ -31,6 +38,16 @@ contract SuperChainTargetRegistrar is SuperChainAccessControlDefaultAdminRules { registry = ISciRegistry(_sciRegistryAddress); } + /** + * @dev Registers a domain in the SCI Registry contract. + * @param owner Address expected to be the domain owner. + * @param domainHash The namehash of the domain to be registered. + * + * Requirements: + * + * - The xDomainMessageSender must have the REGISTER_DOMAIN_ROLE role. + * - The caller must be the superchain cross domain messanger + */ function registerDomain( address owner, bytes32 domainHash @@ -38,6 +55,17 @@ contract SuperChainTargetRegistrar is SuperChainAccessControlDefaultAdminRules { 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 The namehash of the domain to be registered. + * @param verifier Address of the verifier contract. + * + * Requirements: + * + * - The xDomainMessageSender must have the REGISTER_DOMAIN_ROLE role. + * - The caller must be the superchain cross domain messanger + */ function registerDomainWithVerifier( address owner, bytes32 domainHash, From 909712e403989c9ebe585d6f036a86a99069695b Mon Sep 17 00:00:00 2001 From: Agustincito Date: Wed, 2 Apr 2025 11:07:26 -0300 Subject: [PATCH 06/12] Add documentation for OP contracts --- contracts/Op/ICrossDomainMessanger.sol | 10 +++++++++- .../Op/SuperChainAccessControlDefaultAdminRules.sol | 11 +++++++++++ contracts/Op/mocks/MockCrossDomainMessenger.sol | 2 +- contracts/Registrars/SuperChainTargetRegistrar.sol | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/contracts/Op/ICrossDomainMessanger.sol b/contracts/Op/ICrossDomainMessanger.sol index d2dc05d..7ada56b 100644 --- a/contracts/Op/ICrossDomainMessanger.sol +++ b/contracts/Op/ICrossDomainMessanger.sol @@ -1,7 +1,15 @@ // SPDX-License-Identifier: AGPL-3.0 pragma solidity 0.8.28; +// Interface for the Superchain Cross Domain Messenger which facilitates sending messages between a source and a target chain. interface ICrossDomainMessanger { + /// @notice Sends a message to a target contract on a different chain. + /// @param target The address of the target contract on the destination chain. + /// @param _message The encoded message data containing function selectors and parameters. + /// @param gasLimit The maximum amount of gas allocated for executing the message on the target chain. function sendMessage(address target, bytes calldata _message, uint32 gasLimit) external; + + /// @notice Retrieves the address of the sender of the cross-domain message. + /// @return The address of the entity that originated the cross-domain message. function xDomainMessageSender() external view returns (address); -} +} \ No newline at end of file diff --git a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol index 4e2c8fd..d1dbfed 100644 --- a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol +++ b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol @@ -7,8 +7,15 @@ import {ICrossDomainMessanger} from './ICrossDomainMessanger.sol'; contract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRules { ICrossDomainMessanger public immutable crossDomainMessanger; + /** + * @dev Thrown when the caller is not the cross domain messanger. + */ error InvalidMessageSender(address account); + /** + * @dev Modifier that checks that an account on a source chain has a specific role. + * Reverts with an {AccessControlUnauthorizedAccount} error including the required role. + */ modifier onlyCrossChainRole(bytes32 role) { if (msg.sender != address(crossDomainMessanger)) { revert InvalidMessageSender(msg.sender); @@ -21,6 +28,10 @@ contract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRu _; } + /** + * @param _crossDomainMessangerAddress Address of the cross-domain messenger contract. + * @dev See {AccessControlDefaultAdminRules-constructor}. + */ constructor( address _crossDomainMessangerAddress, uint48 initialDelay, diff --git a/contracts/Op/mocks/MockCrossDomainMessenger.sol b/contracts/Op/mocks/MockCrossDomainMessenger.sol index 0dd5eee..129d9aa 100644 --- a/contracts/Op/mocks/MockCrossDomainMessenger.sol +++ b/contracts/Op/mocks/MockCrossDomainMessenger.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.28; import {ICrossDomainMessanger} from '../ICrossDomainMessanger.sol'; - +/// @dev Mock contract for testing cross-domain messaging functionality. contract MockCrossDomainMessenger is ICrossDomainMessanger { address private xDomainMessageSenderAddress; diff --git a/contracts/Registrars/SuperChainTargetRegistrar.sol b/contracts/Registrars/SuperChainTargetRegistrar.sol index 45e482b..c44c04a 100644 --- a/contracts/Registrars/SuperChainTargetRegistrar.sol +++ b/contracts/Registrars/SuperChainTargetRegistrar.sol @@ -21,7 +21,7 @@ contract SuperChainTargetRegistrar is SuperChainAccessControlDefaultAdminRules { /** * @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 _crossDomainMessangerAddress TODO. + * @param _crossDomainMessangerAddress Address of the cross-domain messenger contract. * @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information. */ constructor( From 6f0946294c8c08da6d960c1ea520859811689891 Mon Sep 17 00:00:00 2001 From: Agustincito Date: Wed, 2 Apr 2025 11:23:42 -0300 Subject: [PATCH 07/12] Fix tests and docs --- contracts/Op/SuperChainAccessControlDefaultAdminRules.sol | 5 +++++ test/Registrars/EnsRegistrar.test.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol index d1dbfed..8d493a8 100644 --- a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol +++ b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol @@ -4,6 +4,11 @@ pragma solidity 0.8.28; import {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol'; import {ICrossDomainMessanger} from './ICrossDomainMessanger.sol'; +/** + * @title SuperChainAccessControlDefaultAdminRules + * @dev This contract extends the OpenZeppelin AccessControlDefaultAdminRules contract to include cross-chain role management. + * @custom:security-contact security@sci.domains + */ contract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRules { ICrossDomainMessanger public immutable crossDomainMessanger; diff --git a/test/Registrars/EnsRegistrar.test.ts b/test/Registrars/EnsRegistrar.test.ts index f6b41c6..1a731ff 100644 --- a/test/Registrars/EnsRegistrar.test.ts +++ b/test/Registrars/EnsRegistrar.test.ts @@ -55,7 +55,7 @@ describe('EnsRegistrar', function () { EnsRegistrar: { ensRegistryAddress: ens.target as string, l1CrossDomainMessangerAddress: MockCrossDomainMessenger.target as string, - sciRegistryAddress: superChainTargetRegistrar.address, + superChainTargetRegistrar: superChainTargetRegistrar.address, }, }, }) as unknown as EnsRegistrarModuleReturnType)); From 73ea922af3f46771a16a2e5dc1ec340bc36ef1ca Mon Sep 17 00:00:00 2001 From: Agustincito Date: Wed, 2 Apr 2025 11:29:33 -0300 Subject: [PATCH 08/12] Fix constructors params names --- contracts/DomainMangager/DomainManager.sol | 6 +++--- .../Op/SuperChainAccessControlDefaultAdminRules.sol | 6 +++--- contracts/Op/mocks/MockCrossDomainMessenger.sol | 4 ++-- contracts/Registrars/EnsRegistrar.sol | 12 ++++++------ contracts/Registrars/SciRegistrar.sol | 6 +++--- contracts/Registrars/SuperChainTargetRegistrar.sol | 12 ++++++------ contracts/SCI.sol | 6 +++--- 7 files changed, 26 insertions(+), 26 deletions(-) diff --git a/contracts/DomainMangager/DomainManager.sol b/contracts/DomainMangager/DomainManager.sol index 124eac5..fd15839 100644 --- a/contracts/DomainMangager/DomainManager.sol +++ b/contracts/DomainMangager/DomainManager.sol @@ -30,10 +30,10 @@ abstract contract DomainManager { /** * @dev Initializes the contract with references to the SCI Registry. - * @param _sciRegistryAddress Address of the SCI Registry contract. + * @param _sciRegistry Address of the SCI Registry contract. */ - constructor(address _sciRegistryAddress) { - registry = ISciRegistry(_sciRegistryAddress); + constructor(address _sciRegistry) { + registry = ISciRegistry(_sciRegistry); } /** diff --git a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol index 8d493a8..335911b 100644 --- a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol +++ b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol @@ -34,14 +34,14 @@ contract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRu } /** - * @param _crossDomainMessangerAddress Address of the cross-domain messenger contract. + * @param _crossDomainMessanger Address of the cross-domain messenger contract. * @dev See {AccessControlDefaultAdminRules-constructor}. */ constructor( - address _crossDomainMessangerAddress, + address _crossDomainMessanger, uint48 initialDelay, address initialDefaultAdmin ) AccessControlDefaultAdminRules(initialDelay, initialDefaultAdmin) { - crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessangerAddress); + crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessanger); } } diff --git a/contracts/Op/mocks/MockCrossDomainMessenger.sol b/contracts/Op/mocks/MockCrossDomainMessenger.sol index 129d9aa..60b7ca7 100644 --- a/contracts/Op/mocks/MockCrossDomainMessenger.sol +++ b/contracts/Op/mocks/MockCrossDomainMessenger.sol @@ -10,8 +10,8 @@ contract MockCrossDomainMessenger is ICrossDomainMessanger { event MessageSent(address target, bytes message, uint32 gasLimit); - constructor(address _xDomainMessageSenderAddress, bool _shouldSendMessage) { - xDomainMessageSenderAddress = _xDomainMessageSenderAddress; + constructor(address _xDomainMessageSender, bool _shouldSendMessage) { + xDomainMessageSenderAddress = _xDomainMessageSender; shouldSendMessage = _shouldSendMessage; } diff --git a/contracts/Registrars/EnsRegistrar.sol b/contracts/Registrars/EnsRegistrar.sol index b97493a..e7a0b8f 100644 --- a/contracts/Registrars/EnsRegistrar.sol +++ b/contracts/Registrars/EnsRegistrar.sol @@ -36,16 +36,16 @@ contract EnsRegistrar is SuperChainSourceRegistrar { // TODO: Remove address in the name of the variables /** * @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. + * @param _ensRegistry Address of the ENS Registry contract. + * @param _sciRegistry Address of the SCI Registry contract. * @param _crossChainDomainMessagnger Address of the cross-chain domain messenger contract. */ constructor( - address _ensRegistryAddress, - address _sciRegistryAddress, + address _ensRegistry, + address _sciRegistry, address _crossChainDomainMessagnger - ) SuperChainSourceRegistrar(_crossChainDomainMessagnger, _sciRegistryAddress) { - ensRegistry = ENS(_ensRegistryAddress); + ) SuperChainSourceRegistrar(_crossChainDomainMessagnger, _sciRegistry) { + ensRegistry = ENS(_ensRegistry); } /** diff --git a/contracts/Registrars/SciRegistrar.sol b/contracts/Registrars/SciRegistrar.sol index f8e9244..8f1f56a 100644 --- a/contracts/Registrars/SciRegistrar.sol +++ b/contracts/Registrars/SciRegistrar.sol @@ -23,14 +23,14 @@ contract SciRegistrar is AccessControlDefaultAdminRules { /** * @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 _sciRegistry Address of the custom domain registry contract. * @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information. */ constructor( - address _sciRegistryAddress, + address _sciRegistry, uint48 initialDelay ) AccessControlDefaultAdminRules(initialDelay, msg.sender) { - registry = ISciRegistry(_sciRegistryAddress); + registry = ISciRegistry(_sciRegistry); } /** diff --git a/contracts/Registrars/SuperChainTargetRegistrar.sol b/contracts/Registrars/SuperChainTargetRegistrar.sol index c44c04a..808673d 100644 --- a/contracts/Registrars/SuperChainTargetRegistrar.sol +++ b/contracts/Registrars/SuperChainTargetRegistrar.sol @@ -20,22 +20,22 @@ contract SuperChainTargetRegistrar is SuperChainAccessControlDefaultAdminRules { /** * @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 _crossDomainMessangerAddress Address of the cross-domain messenger contract. + * @param _sciRegistry Address of the custom domain registry contract. + * @param _crossDomainMessanger Address of the cross-domain messenger contract. * @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information. */ constructor( - address _sciRegistryAddress, - address _crossDomainMessangerAddress, + address _sciRegistry, + address _crossDomainMessanger, uint48 initialDelay ) SuperChainAccessControlDefaultAdminRules( - _crossDomainMessangerAddress, + _crossDomainMessanger, initialDelay, msg.sender ) { - registry = ISciRegistry(_sciRegistryAddress); + registry = ISciRegistry(_sciRegistry); } /** diff --git a/contracts/SCI.sol b/contracts/SCI.sol index 5463df4..cf95376 100644 --- a/contracts/SCI.sol +++ b/contracts/SCI.sol @@ -26,12 +26,12 @@ contract SCI is Initializable, Ownable2StepUpgradeable { * 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. + * @param _registry The address of the registry to be used by the contract. */ - function initialize(address owner, address registryAddress) external initializer { + function initialize(address owner, address _registry) external initializer { __Ownable2Step_init(); __Ownable_init(owner); - setRegistry(registryAddress); + setRegistry(_registry); } /** From 9a7748b06f2dc0f3e05e93641a8e6158a0d704bf Mon Sep 17 00:00:00 2001 From: Agustincito Date: Wed, 2 Apr 2025 11:32:16 -0300 Subject: [PATCH 09/12] Fix lint --- contracts/Op/ICrossDomainMessanger.sol | 2 +- .../Op/SuperChainAccessControlDefaultAdminRules.sol | 4 ++-- contracts/Op/mocks/MockCrossDomainMessenger.sol | 4 +--- contracts/Registrars/SuperChainSourceRegistrar.sol | 10 +++++----- contracts/Registrars/SuperChainTargetRegistrar.sol | 12 +++--------- hardhat.config.ts | 9 ++++----- ignition/modules/CleanupModule.ts | 1 - 7 files changed, 16 insertions(+), 26 deletions(-) diff --git a/contracts/Op/ICrossDomainMessanger.sol b/contracts/Op/ICrossDomainMessanger.sol index 7ada56b..6f30389 100644 --- a/contracts/Op/ICrossDomainMessanger.sol +++ b/contracts/Op/ICrossDomainMessanger.sol @@ -12,4 +12,4 @@ interface ICrossDomainMessanger { /// @notice Retrieves the address of the sender of the cross-domain message. /// @return The address of the entity that originated the cross-domain message. function xDomainMessageSender() external view returns (address); -} \ No newline at end of file +} diff --git a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol index 335911b..100802a 100644 --- a/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol +++ b/contracts/Op/SuperChainAccessControlDefaultAdminRules.sol @@ -6,7 +6,7 @@ import {ICrossDomainMessanger} from './ICrossDomainMessanger.sol'; /** * @title SuperChainAccessControlDefaultAdminRules - * @dev This contract extends the OpenZeppelin AccessControlDefaultAdminRules contract to include cross-chain role management. + * @dev This contract extends the OpenZeppelin AccessControlDefaultAdminRules contract to include cross-chain role management. * @custom:security-contact security@sci.domains */ contract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRules { @@ -36,7 +36,7 @@ contract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRu /** * @param _crossDomainMessanger Address of the cross-domain messenger contract. * @dev See {AccessControlDefaultAdminRules-constructor}. - */ + */ constructor( address _crossDomainMessanger, uint48 initialDelay, diff --git a/contracts/Op/mocks/MockCrossDomainMessenger.sol b/contracts/Op/mocks/MockCrossDomainMessenger.sol index 60b7ca7..73ff887 100644 --- a/contracts/Op/mocks/MockCrossDomainMessenger.sol +++ b/contracts/Op/mocks/MockCrossDomainMessenger.sol @@ -17,9 +17,7 @@ contract MockCrossDomainMessenger is ICrossDomainMessanger { function sendMessage(address target, bytes calldata _message, uint32 gasLimit) external { if (shouldSendMessage) { - (bool success, bytes memory result) = target.call{gas: uint256(gasLimit)}( - _message - ); + (bool success, bytes memory result) = target.call{gas: uint256(gasLimit)}(_message); if (!success) { // Bubble up the original revert reason if present diff --git a/contracts/Registrars/SuperChainSourceRegistrar.sol b/contracts/Registrars/SuperChainSourceRegistrar.sol index 066e816..c94d722 100644 --- a/contracts/Registrars/SuperChainSourceRegistrar.sol +++ b/contracts/Registrars/SuperChainSourceRegistrar.sol @@ -9,9 +9,9 @@ import {ICrossDomainMessanger} from '../Op//ICrossDomainMessanger.sol'; * @title SuperChainSourceRegistrar * @dev This abstract contract is designed to be inherited by registrar contracts that register domains on a superchain. * It provides functionality to register a domain on a different chain via the superchain cross-domain messaging. - * + * * @custom:security-contact security@sci.domains -*/ + */ abstract contract SuperChainSourceRegistrar { // Cross-domain messenger contract for sending messages to the target chain. ICrossDomainMessanger public immutable crossDomainMessanger; @@ -26,7 +26,7 @@ abstract contract SuperChainSourceRegistrar { * @dev Initializes the contract by setting up the Cross domain messenger and the target registrar. * @param _crossDomainMessanger The address of the cross-domain messenger contract. * @param _targetRegistrar The address of the registrar contract on the target chain. - */ + */ constructor(address _crossDomainMessanger, address _targetRegistrar) { crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessanger); targetRegistrar = _targetRegistrar; @@ -36,7 +36,7 @@ abstract contract SuperChainSourceRegistrar { * @dev Registers a domain on the target registrar contract via cross-domain messaging. * @param owner Address expected to be the domain owner. * @param domainHash The namehash of the domain to be registered. - */ + */ function _registerDomainCrossChain(address owner, bytes32 domainHash) internal { crossDomainMessanger.sendMessage( targetRegistrar, @@ -50,7 +50,7 @@ abstract contract SuperChainSourceRegistrar { * @param owner Address expected to be the domain owner. * @param domainHash The namehash of the domain to be registered. * @param verifier The address of the verifier contract. - */ + */ function _registerDomainWithVerifierCrossChain( address owner, bytes32 domainHash, diff --git a/contracts/Registrars/SuperChainTargetRegistrar.sol b/contracts/Registrars/SuperChainTargetRegistrar.sol index 808673d..c30df99 100644 --- a/contracts/Registrars/SuperChainTargetRegistrar.sol +++ b/contracts/Registrars/SuperChainTargetRegistrar.sol @@ -9,9 +9,9 @@ import {SuperChainAccessControlDefaultAdminRules} from '../Op/SuperChainAccessCo * @title SuperChainTargetRegistrar * @dev This contract allows addresses from the source chain with REGISTER_DOMAIN_ROLE role to register a domain. * It uses the superchain cross-domain messaging to "listen" for domain registration requests from the source chain. - * + * * @custom:security-contact security@sci.domains -*/ + */ contract SuperChainTargetRegistrar is SuperChainAccessControlDefaultAdminRules { // Role that allows registering domains bytes32 public constant REGISTER_DOMAIN_ROLE = keccak256('REGISTER_DOMAIN_ROLE'); @@ -28,13 +28,7 @@ contract SuperChainTargetRegistrar is SuperChainAccessControlDefaultAdminRules { address _sciRegistry, address _crossDomainMessanger, uint48 initialDelay - ) - SuperChainAccessControlDefaultAdminRules( - _crossDomainMessanger, - initialDelay, - msg.sender - ) - { + ) SuperChainAccessControlDefaultAdminRules(_crossDomainMessanger, initialDelay, msg.sender) { registry = ISciRegistry(_sciRegistry); } diff --git a/hardhat.config.ts b/hardhat.config.ts index 15e0b58..a3b0be1 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -46,15 +46,14 @@ const config: HardhatUserConfig = { apiKey: process.env.ETHERSCAN_API_KEY!, customChains: [ { - network: "optimism-sepolia", + network: 'optimism-sepolia', chainId: 11155420, urls: { - apiURL: - "https://api-sepolia-optimistic.etherscan.io/api", - browserURL: "https://sepolia-optimism.etherscan.io", + apiURL: 'https://api-sepolia-optimistic.etherscan.io/api', + browserURL: 'https://sepolia-optimism.etherscan.io', }, }, - ] + ], }, sourcify: { enabled: false, diff --git a/ignition/modules/CleanupModule.ts b/ignition/modules/CleanupModule.ts index ca2de94..3ab4324 100644 --- a/ignition/modules/CleanupModule.ts +++ b/ignition/modules/CleanupModule.ts @@ -4,7 +4,6 @@ import SuperChainTargetRegistrarModule from './registrars/SuperChainTargetRegist export const CleanupModule = buildModule('CleanupModule', (m: IgnitionModuleBuilder) => { const { superChainTargetRegistrar } = m.useModule(SuperChainTargetRegistrarModule); - m.call(superChainTargetRegistrar, 'grantRole', [ m.staticCall(superChainTargetRegistrar, 'REGISTER_DOMAIN_ROLE'), From 4c13d83d22c84cf02c43d68547ae9395c1d11e01 Mon Sep 17 00:00:00 2001 From: Agustincito Date: Wed, 2 Apr 2025 11:40:34 -0300 Subject: [PATCH 10/12] Use encode call --- contracts/Registrars/SuperChainSourceRegistrar.sol | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/contracts/Registrars/SuperChainSourceRegistrar.sol b/contracts/Registrars/SuperChainSourceRegistrar.sol index c94d722..4511855 100644 --- a/contracts/Registrars/SuperChainSourceRegistrar.sol +++ b/contracts/Registrars/SuperChainSourceRegistrar.sol @@ -40,7 +40,7 @@ abstract contract SuperChainSourceRegistrar { function _registerDomainCrossChain(address owner, bytes32 domainHash) internal { crossDomainMessanger.sendMessage( targetRegistrar, - abi.encodeWithSelector(ISciRegistry.registerDomain.selector, owner, domainHash), + abi.encodeCall(ISciRegistry.registerDomain, (owner, domainHash)), REGISTER_DOMAIN_GAS_LIMIT ); } @@ -58,12 +58,7 @@ abstract contract SuperChainSourceRegistrar { ) internal { crossDomainMessanger.sendMessage( targetRegistrar, - abi.encodeWithSelector( - ISciRegistry.registerDomainWithVerifier.selector, - owner, - domainHash, - verifier - ), + abi.encodeCall(ISciRegistry.registerDomainWithVerifier, (owner, domainHash, verifier)), REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT ); } From 49ee7db36bd382f375ca7b847e8e481a96666409 Mon Sep 17 00:00:00 2001 From: Agustincito Date: Wed, 2 Apr 2025 13:58:04 -0300 Subject: [PATCH 11/12] More docs improvements --- contracts/Op/ICrossDomainMessanger.sol | 22 +++++++++++++++------- contracts/Registrars/EnsRegistrar.sol | 1 - 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/contracts/Op/ICrossDomainMessanger.sol b/contracts/Op/ICrossDomainMessanger.sol index 6f30389..6ada226 100644 --- a/contracts/Op/ICrossDomainMessanger.sol +++ b/contracts/Op/ICrossDomainMessanger.sol @@ -1,15 +1,23 @@ // SPDX-License-Identifier: AGPL-3.0 pragma solidity 0.8.28; -// Interface for the Superchain Cross Domain Messenger which facilitates sending messages between a source and a target chain. + /** + * @title ICrossDomainMessanger + * @dev Interface for the Superchain Cross Domain Messenger + * which facilitates sending messages between a source and a target chain. + */ interface ICrossDomainMessanger { - /// @notice Sends a message to a target contract on a different chain. - /// @param target The address of the target contract on the destination chain. - /// @param _message The encoded message data containing function selectors and parameters. - /// @param gasLimit The maximum amount of gas allocated for executing the message on the target chain. + /** + * @dev Sends a message to a target contract on a different chain. + * @param target The address of the target contract on the destination chain. + * @param _message The encoded message data containing function selectors and parameters. + * @param gasLimit The maximum amount of gas allocated for executing the message on the target chain. + */ function sendMessage(address target, bytes calldata _message, uint32 gasLimit) external; - /// @notice Retrieves the address of the sender of the cross-domain message. - /// @return The address of the entity that originated the cross-domain message. + /** + * @dev Retrieves the address of the sender of the cross-domain message. + * @return The address of the entity that originated the cross-domain message. + */ function xDomainMessageSender() external view returns (address); } diff --git a/contracts/Registrars/EnsRegistrar.sol b/contracts/Registrars/EnsRegistrar.sol index e7a0b8f..139c44c 100644 --- a/contracts/Registrars/EnsRegistrar.sol +++ b/contracts/Registrars/EnsRegistrar.sol @@ -33,7 +33,6 @@ contract EnsRegistrar is SuperChainSourceRegistrar { _; } - // TODO: Remove address in the name of the variables /** * @dev Initializes the contract with references to the ENS and the SCI Registry. * @param _ensRegistry Address of the ENS Registry contract. From eb10b73099f137a49d21edae5a564717be5175cb Mon Sep 17 00:00:00 2001 From: Agustincito Date: Wed, 2 Apr 2025 14:00:37 -0300 Subject: [PATCH 12/12] Fix lint --- contracts/Op/ICrossDomainMessanger.sol | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/Op/ICrossDomainMessanger.sol b/contracts/Op/ICrossDomainMessanger.sol index 6ada226..fafe96d 100644 --- a/contracts/Op/ICrossDomainMessanger.sol +++ b/contracts/Op/ICrossDomainMessanger.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: AGPL-3.0 pragma solidity 0.8.28; - /** - * @title ICrossDomainMessanger - * @dev Interface for the Superchain Cross Domain Messenger - * which facilitates sending messages between a source and a target chain. - */ +/** + * @title ICrossDomainMessanger + * @dev Interface for the Superchain Cross Domain Messenger + * which facilitates sending messages between a source and a target chain. + */ interface ICrossDomainMessanger { /** * @dev Sends a message to a target contract on a different chain.