Created
November 21, 2023 17:06
-
-
Save coffeexcoin/8e56c72fdc1d3af809d8107c615daf6b to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.21+commit.d9974bed.js&optimize=false&runs=200&gist=
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| // OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol) | |
| pragma solidity ^0.8.20; | |
| /** | |
| * @dev This is the interface that {BeaconProxy} expects of its beacon. | |
| */ | |
| interface IBeacon { | |
| /** | |
| * @dev Must return an address that can be used as a delegate call target. | |
| * | |
| * {UpgradeableBeacon} will check that this address is a contract. | |
| */ | |
| function implementation() external view returns (address); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "id": "e5b79be88e045dbe08556fd06d9218f2", | |
| "_format": "hh-sol-build-info-1", | |
| "solcVersion": "0.8.21", | |
| "solcLongVersion": "0.8.21+commit.d9974bed", | |
| "input": { | |
| "language": "Solidity", | |
| "sources": { | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol": { | |
| "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.20;\n\nimport {Proxy} from \"../Proxy.sol\";\nimport {ERC1967Utils} from \"./ERC1967Utils.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy {\n /**\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n *\n * If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n * encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n *\n * Requirements:\n *\n * - If `data` is empty, `msg.value` must be zero.\n */\n constructor(address implementation, bytes memory _data) payable {\n ERC1967Utils.upgradeToAndCall(implementation, _data);\n }\n\n /**\n * @dev Returns the current implementation address.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n */\n function _implementation() internal view virtual override returns (address) {\n return ERC1967Utils.getImplementation();\n }\n}\n" | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol": { | |
| "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Utils.sol)\n\npragma solidity ^0.8.20;\n\nimport {IBeacon} from \"../beacon/IBeacon.sol\";\nimport {Address} from \"../../utils/Address.sol\";\nimport {StorageSlot} from \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n */\nlibrary ERC1967Utils {\n // We re-declare ERC-1967 events here because they can't be used directly from IERC1967.\n // This will be fixed in Solidity 0.8.21. At that point we should remove these events.\n /**\n * @dev Emitted when the implementation is upgraded.\n */\n event Upgraded(address indexed implementation);\n\n /**\n * @dev Emitted when the admin account has changed.\n */\n event AdminChanged(address previousAdmin, address newAdmin);\n\n /**\n * @dev Emitted when the beacon is changed.\n */\n event BeaconUpgraded(address indexed beacon);\n\n /**\n * @dev Storage slot with the address of the current implementation.\n * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n /**\n * @dev The `implementation` of the proxy is invalid.\n */\n error ERC1967InvalidImplementation(address implementation);\n\n /**\n * @dev The `admin` of the proxy is invalid.\n */\n error ERC1967InvalidAdmin(address admin);\n\n /**\n * @dev The `beacon` of the proxy is invalid.\n */\n error ERC1967InvalidBeacon(address beacon);\n\n /**\n * @dev An upgrade function sees `msg.value > 0` that may be lost.\n */\n error ERC1967NonPayable();\n\n /**\n * @dev Returns the current implementation address.\n */\n function getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 implementation slot.\n */\n function _setImplementation(address newImplementation) private {\n if (newImplementation.code.length == 0) {\n revert ERC1967InvalidImplementation(newImplementation);\n }\n StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value = newImplementation;\n }\n\n /**\n * @dev Performs implementation upgrade with additional setup call if data is nonempty.\n * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n * to avoid stuck value in the contract.\n *\n * Emits an {IERC1967-Upgraded} event.\n */\n function upgradeToAndCall(address newImplementation, bytes memory data) internal {\n _setImplementation(newImplementation);\n emit Upgraded(newImplementation);\n\n if (data.length > 0) {\n Address.functionDelegateCall(newImplementation, data);\n } else {\n _checkNonPayable();\n }\n }\n\n /**\n * @dev Storage slot with the admin of the contract.\n * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n /**\n * @dev Returns the current admin.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n */\n function getAdmin() internal view returns (address) {\n return StorageSlot.getAddressSlot(ADMIN_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 admin slot.\n */\n function _setAdmin(address newAdmin) private {\n if (newAdmin == address(0)) {\n revert ERC1967InvalidAdmin(address(0));\n }\n StorageSlot.getAddressSlot(ADMIN_SLOT).value = newAdmin;\n }\n\n /**\n * @dev Changes the admin of the proxy.\n *\n * Emits an {IERC1967-AdminChanged} event.\n */\n function changeAdmin(address newAdmin) internal {\n emit AdminChanged(getAdmin(), newAdmin);\n _setAdmin(newAdmin);\n }\n\n /**\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n * This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n /**\n * @dev Returns the current beacon.\n */\n function getBeacon() internal view returns (address) {\n return StorageSlot.getAddressSlot(BEACON_SLOT).value;\n }\n\n /**\n * @dev Stores a new beacon in the EIP1967 beacon slot.\n */\n function _setBeacon(address newBeacon) private {\n if (newBeacon.code.length == 0) {\n revert ERC1967InvalidBeacon(newBeacon);\n }\n\n StorageSlot.getAddressSlot(BEACON_SLOT).value = newBeacon;\n\n address beaconImplementation = IBeacon(newBeacon).implementation();\n if (beaconImplementation.code.length == 0) {\n revert ERC1967InvalidImplementation(beaconImplementation);\n }\n }\n\n /**\n * @dev Change the beacon and trigger a setup call if data is nonempty.\n * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n * to avoid stuck value in the contract.\n *\n * Emits an {IERC1967-BeaconUpgraded} event.\n *\n * CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n * it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n * efficiency.\n */\n function upgradeBeaconToAndCall(address newBeacon, bytes memory data) internal {\n _setBeacon(newBeacon);\n emit BeaconUpgraded(newBeacon);\n\n if (data.length > 0) {\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n } else {\n _checkNonPayable();\n }\n }\n\n /**\n * @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n * if an upgrade doesn't perform an initialization call.\n */\n function _checkNonPayable() private {\n if (msg.value > 0) {\n revert ERC1967NonPayable();\n }\n }\n}\n" | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/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" | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol": { | |
| "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n}\n" | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol": { | |
| "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev The ETH balance of the account is not enough to perform the operation.\n */\n error AddressInsufficientBalance(address account);\n\n /**\n * @dev There's no code at `target` (it is not a contract).\n */\n error AddressEmptyCode(address target);\n\n /**\n * @dev A call to an address target failed. The target may have reverted.\n */\n error FailedInnerCall();\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n if (address(this).balance < amount) {\n revert AddressInsufficientBalance(address(this));\n }\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n if (!success) {\n revert FailedInnerCall();\n }\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason or custom error, it is bubbled\n * up by this function (like regular Solidity function calls). However, if\n * the call reverted with no returned reason, this function reverts with a\n * {FailedInnerCall} error.\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n if (address(this).balance < value) {\n revert AddressInsufficientBalance(address(this));\n }\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n * unsuccessful call.\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata\n ) internal view returns (bytes memory) {\n if (!success) {\n _revert(returndata);\n } else {\n // only check if target is a contract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n if (returndata.length == 0 && target.code.length == 0) {\n revert AddressEmptyCode(target);\n }\n return returndata;\n }\n }\n\n /**\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n * revert reason or with a default {FailedInnerCall} error.\n */\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\n if (!success) {\n _revert(returndata);\n } else {\n return returndata;\n }\n }\n\n /**\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\n */\n function _revert(bytes memory returndata) private pure {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert FailedInnerCall();\n }\n }\n}\n" | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/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" | |
| } | |
| }, | |
| "settings": { | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "outputSelection": { | |
| "*": { | |
| "": [ | |
| "ast" | |
| ], | |
| "*": [ | |
| "abi", | |
| "metadata", | |
| "devdoc", | |
| "userdoc", | |
| "storageLayout", | |
| "evm.legacyAssembly", | |
| "evm.bytecode", | |
| "evm.deployedBytecode", | |
| "evm.methodIdentifiers", | |
| "evm.gasEstimates", | |
| "evm.assembly" | |
| ] | |
| } | |
| } | |
| } | |
| }, | |
| "output": { | |
| "contracts": { | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol": { | |
| "ERC1967Proxy": { | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "bytes", | |
| "name": "_data", | |
| "type": "bytes" | |
| } | |
| ], | |
| "stateMutability": "payable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "target", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "AddressEmptyCode", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "ERC1967InvalidImplementation", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "ERC1967NonPayable", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "FailedInnerCall", | |
| "type": "error" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "Upgraded", | |
| "type": "event" | |
| }, | |
| { | |
| "stateMutability": "payable", | |
| "type": "fallback" | |
| } | |
| ], | |
| "devdoc": { | |
| "details": "This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.", | |
| "errors": { | |
| "AddressEmptyCode(address)": [ | |
| { | |
| "details": "There's no code at `target` (it is not a contract)." | |
| } | |
| ], | |
| "ERC1967InvalidImplementation(address)": [ | |
| { | |
| "details": "The `implementation` of the proxy is invalid." | |
| } | |
| ], | |
| "ERC1967NonPayable()": [ | |
| { | |
| "details": "An upgrade function sees `msg.value > 0` that may be lost." | |
| } | |
| ], | |
| "FailedInnerCall()": [ | |
| { | |
| "details": "A call to an address target failed. The target may have reverted." | |
| } | |
| ] | |
| }, | |
| "events": { | |
| "Upgraded(address)": { | |
| "details": "Emitted when the implementation is upgraded." | |
| } | |
| }, | |
| "kind": "dev", | |
| "methods": { | |
| "constructor": { | |
| "details": "Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero." | |
| } | |
| }, | |
| "version": 1 | |
| }, | |
| "evm": { | |
| "assembly": " /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":599:1715 contract ERC1967Proxy is Proxy {... */\n mstore(0x40, 0x80)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1080:1213 constructor(address implementation, bytes memory _data) payable {... */\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_1\n swap2\n swap1\n tag_2\n jump\t// in\ntag_1:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1154:1206 ERC1967Utils.upgradeToAndCall(implementation, _data) */\n tag_5\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1184:1198 implementation */\n dup3\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1200:1205 _data */\n dup3\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1154:1183 ERC1967Utils.upgradeToAndCall */\n shl(0x20, tag_6)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1154:1206 ERC1967Utils.upgradeToAndCall(implementation, _data) */\n 0x20\n shr\n jump\t// in\ntag_5:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1080:1213 constructor(address implementation, bytes memory _data) payable {... */\n pop\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":599:1715 contract ERC1967Proxy is Proxy {... */\n jump(tag_7)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2779:3114 function upgradeToAndCall(address newImplementation, bytes memory data) internal {... */\ntag_6:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2870:2907 _setImplementation(newImplementation) */\n tag_9\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2889:2906 newImplementation */\n dup3\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2870:2888 _setImplementation */\n shl(0x20, tag_10)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2870:2907 _setImplementation(newImplementation) */\n 0x20\n shr\n jump\t// in\ntag_9:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2931:2948 newImplementation */\n dup2\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2922:2949 Upgraded(newImplementation) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2978:2979 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2964:2968 data */\n dup2\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2964:2975 data.length */\n mload\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2964:2979 data.length > 0 */\n gt\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2960:3108 if (data.length > 0) {... */\n iszero\n tag_11\n jumpi\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2995:3048 Address.functionDelegateCall(newImplementation, data) */\n tag_12\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":3024:3041 newImplementation */\n dup3\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":3043:3047 data */\n dup3\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2995:3023 Address.functionDelegateCall */\n shl(0x20, tag_13)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2995:3048 Address.functionDelegateCall(newImplementation, data) */\n 0x20\n shr\n jump\t// in\ntag_12:\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2960:3108 if (data.length > 0) {... */\n jump(tag_14)\ntag_11:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":3079:3097 _checkNonPayable() */\n tag_15\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":3079:3095 _checkNonPayable */\n shl(0x20, tag_16)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":3079:3097 _checkNonPayable() */\n 0x20\n shr\n jump\t// in\ntag_15:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2960:3108 if (data.length > 0) {... */\ntag_14:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2779:3114 function upgradeToAndCall(address newImplementation, bytes memory data) internal {... */\n pop\n pop\n jump\t// out\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2186:2467 function _setImplementation(address newImplementation) private {... */\ntag_10:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2296:2297 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2263:2280 newImplementation */\n dup2\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2263:2292 newImplementation.code.length */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n extcodesize\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2263:2297 newImplementation.code.length == 0 */\n sub\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2259:2378 if (newImplementation.code.length == 0) {... */\n tag_18\n jumpi\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2349:2366 newImplementation */\n dup1\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2320:2367 ERC1967InvalidImplementation(newImplementation) */\n mload(0x40)\n 0x4c9c8ce300000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\ntag_19:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2259:2378 if (newImplementation.code.length == 0) {... */\ntag_18:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2443:2460 newImplementation */\n dup1\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2387:2434 StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT) */\n tag_21\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":1327:1393 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc */\n 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2414:2433 IMPLEMENTATION_SLOT */\n 0x00\n shl\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2387:2413 StorageSlot.getAddressSlot */\n shl(0x20, tag_22)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2387:2434 StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT) */\n 0x20\n shr\n jump\t// in\ntag_21:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2387:2440 StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value */\n 0x00\n add\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2387:2460 StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value = newImplementation */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2186:2467 function _setImplementation(address newImplementation) private {... */\n pop\n jump\t// out\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4106:4359 function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {... */\ntag_13:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4189:4201 bytes memory */\n 0x60\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4214:4226 bool success */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4228:4251 bytes memory returndata */\n dup1\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4255:4261 target */\n dup5\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4255:4274 target.delegatecall */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4275:4279 data */\n dup5\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4255:4280 target.delegatecall(data) */\n mload(0x40)\n tag_24\n swap2\n swap1\n tag_25\n jump\t// in\ntag_24:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n gas\n delegatecall\n swap2\n pop\n pop\n returndatasize\n dup1\n 0x00\n dup2\n eq\n tag_28\n jumpi\n mload(0x40)\n swap2\n pop\n and(add(returndatasize, 0x3f), not(0x1f))\n dup3\n add\n 0x40\n mstore\n returndatasize\n dup3\n mstore\n returndatasize\n 0x00\n 0x20\n dup5\n add\n returndatacopy\n jump(tag_27)\ntag_28:\n 0x60\n swap2\n pop\ntag_27:\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4213:4280 (bool success, bytes memory returndata) = target.delegatecall(data) */\n swap2\n pop\n swap2\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4297:4352 verifyCallResultFromTarget(target, success, returndata) */\n tag_29\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4324:4330 target */\n dup6\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4332:4339 success */\n dup4\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4341:4351 returndata */\n dup4\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4297:4323 verifyCallResultFromTarget */\n shl(0x20, tag_30)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4297:4352 verifyCallResultFromTarget(target, success, returndata) */\n 0x20\n shr\n jump\t// in\ntag_29:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4290:4352 return verifyCallResultFromTarget(target, success, returndata) */\n swap3\n pop\n pop\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4106:4359 function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":6598:6720 function _checkNonPayable() private {... */\ntag_16:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":6660:6661 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":6648:6657 msg.value */\n callvalue\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":6648:6661 msg.value > 0 */\n gt\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":6644:6714 if (msg.value > 0) {... */\n iszero\n tag_32\n jumpi\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":6684:6703 ERC1967NonPayable() */\n mload(0x40)\n 0xb398979f00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":6644:6714 if (msg.value > 0) {... */\ntag_32:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":6598:6720 function _checkNonPayable() private {... */\n jump\t// out\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1684:1874 function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {... */\ntag_22:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1745:1766 AddressSlot storage r */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1854:1858 slot */\n dup2\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1844:1858 r.slot := slot */\n swap1\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1684:1874 function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4625:5207 function verifyCallResultFromTarget(... */\ntag_30:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4769:4781 bytes memory */\n 0x60\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4798:4805 success */\n dup3\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4793:5201 if (!success) {... */\n tag_35\n jumpi\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4821:4840 _revert(returndata) */\n tag_36\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4829:4839 returndata */\n dup3\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4821:4828 _revert */\n shl(0x20, tag_37)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4821:4840 _revert(returndata) */\n 0x20\n shr\n jump\t// in\ntag_36:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4793:5201 if (!success) {... */\n jump(tag_38)\ntag_35:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5066:5067 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5045:5055 returndata */\n dup3\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5045:5062 returndata.length */\n mload\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5045:5067 returndata.length == 0 */\n eq\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5045:5094 returndata.length == 0 && target.code.length == 0 */\n dup1\n iszero\n tag_39\n jumpi\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5093:5094 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5071:5077 target */\n dup5\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5071:5089 target.code.length */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n extcodesize\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5071:5094 target.code.length == 0 */\n eq\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5045:5094 returndata.length == 0 && target.code.length == 0 */\ntag_39:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5041:5160 if (returndata.length == 0 && target.code.length == 0) {... */\n iszero\n tag_40\n jumpi\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5138:5144 target */\n dup4\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5121:5145 AddressEmptyCode(target) */\n mload(0x40)\n 0x9996b31500000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_41\n swap2\n swap1\n tag_20\n jump\t// in\ntag_41:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5041:5160 if (returndata.length == 0 && target.code.length == 0) {... */\ntag_40:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5180:5190 returndata */\n dup2\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5173:5190 return returndata */\n swap1\n pop\n jump(tag_34)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4793:5201 if (!success) {... */\ntag_38:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":4625:5207 function verifyCallResultFromTarget(... */\ntag_34:\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5743:6259 function _revert(bytes memory returndata) private pure {... */\ntag_37:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5894:5895 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5874:5884 returndata */\n dup2\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5874:5891 returndata.length */\n mload\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5874:5895 returndata.length > 0 */\n gt\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5870:6253 if (returndata.length > 0) {... */\n iszero\n tag_43\n jumpi\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":6102:6112 returndata */\n dup1\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":6096:6113 mload(returndata) */\n mload\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":6158:6173 returndata_size */\n dup1\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":6145:6155 returndata */\n dup3\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":6141:6143 32 */\n 0x20\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":6137:6156 add(32, returndata) */\n add\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":6130:6174 revert(add(32, returndata), returndata_size) */\n revert\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":5870:6253 if (returndata.length > 0) {... */\ntag_43:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":6225:6242 FailedInnerCall() */\n mload(0x40)\n 0x1425ea4200000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"#utility.yul\":7:82 */\ntag_45:\n /* \"#utility.yul\":40:46 */\n 0x00\n /* \"#utility.yul\":73:75 */\n 0x40\n /* \"#utility.yul\":67:76 */\n mload\n /* \"#utility.yul\":57:76 */\n swap1\n pop\n /* \"#utility.yul\":7:82 */\n swap1\n jump\t// out\n /* \"#utility.yul\":88:205 */\ntag_46:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\ntag_47:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:460 */\ntag_48:\n /* \"#utility.yul\":371:378 */\n 0x00\n /* \"#utility.yul\":411:453 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":404:409 */\n dup3\n /* \"#utility.yul\":400:454 */\n and\n /* \"#utility.yul\":389:454 */\n swap1\n pop\n /* \"#utility.yul\":334:460 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":466:562 */\ntag_49:\n /* \"#utility.yul\":503:510 */\n 0x00\n /* \"#utility.yul\":532:556 */\n tag_72\n /* \"#utility.yul\":550:555 */\n dup3\n /* \"#utility.yul\":532:556 */\n tag_48\n jump\t// in\ntag_72:\n /* \"#utility.yul\":521:556 */\n swap1\n pop\n /* \"#utility.yul\":466:562 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":568:690 */\ntag_50:\n /* \"#utility.yul\":641:665 */\n tag_74\n /* \"#utility.yul\":659:664 */\n dup2\n /* \"#utility.yul\":641:665 */\n tag_49\n jump\t// in\ntag_74:\n /* \"#utility.yul\":634:639 */\n dup2\n /* \"#utility.yul\":631:666 */\n eq\n /* \"#utility.yul\":621:684 */\n tag_75\n jumpi\n /* \"#utility.yul\":680:681 */\n 0x00\n /* \"#utility.yul\":677:678 */\n dup1\n /* \"#utility.yul\":670:682 */\n revert\n /* \"#utility.yul\":621:684 */\ntag_75:\n /* \"#utility.yul\":568:690 */\n pop\n jump\t// out\n /* \"#utility.yul\":696:839 */\ntag_51:\n /* \"#utility.yul\":753:758 */\n 0x00\n /* \"#utility.yul\":784:790 */\n dup2\n /* \"#utility.yul\":778:791 */\n mload\n /* \"#utility.yul\":769:791 */\n swap1\n pop\n /* \"#utility.yul\":800:833 */\n tag_77\n /* \"#utility.yul\":827:832 */\n dup2\n /* \"#utility.yul\":800:833 */\n tag_50\n jump\t// in\ntag_77:\n /* \"#utility.yul\":696:839 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":845:962 */\ntag_52:\n /* \"#utility.yul\":954:955 */\n 0x00\n /* \"#utility.yul\":951:952 */\n dup1\n /* \"#utility.yul\":944:956 */\n revert\n /* \"#utility.yul\":968:1085 */\ntag_53:\n /* \"#utility.yul\":1077:1078 */\n 0x00\n /* \"#utility.yul\":1074:1075 */\n dup1\n /* \"#utility.yul\":1067:1079 */\n revert\n /* \"#utility.yul\":1091:1193 */\ntag_54:\n /* \"#utility.yul\":1132:1138 */\n 0x00\n /* \"#utility.yul\":1183:1185 */\n 0x1f\n /* \"#utility.yul\":1179:1186 */\n not\n /* \"#utility.yul\":1174:1176 */\n 0x1f\n /* \"#utility.yul\":1167:1172 */\n dup4\n /* \"#utility.yul\":1163:1177 */\n add\n /* \"#utility.yul\":1159:1187 */\n and\n /* \"#utility.yul\":1149:1187 */\n swap1\n pop\n /* \"#utility.yul\":1091:1193 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1199:1379 */\ntag_55:\n /* \"#utility.yul\":1247:1324 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1244:1245 */\n 0x00\n /* \"#utility.yul\":1237:1325 */\n mstore\n /* \"#utility.yul\":1344:1348 */\n 0x41\n /* \"#utility.yul\":1341:1342 */\n 0x04\n /* \"#utility.yul\":1334:1349 */\n mstore\n /* \"#utility.yul\":1368:1372 */\n 0x24\n /* \"#utility.yul\":1365:1366 */\n 0x00\n /* \"#utility.yul\":1358:1373 */\n revert\n /* \"#utility.yul\":1385:1666 */\ntag_56:\n /* \"#utility.yul\":1468:1495 */\n tag_83\n /* \"#utility.yul\":1490:1494 */\n dup3\n /* \"#utility.yul\":1468:1495 */\n tag_54\n jump\t// in\ntag_83:\n /* \"#utility.yul\":1460:1466 */\n dup2\n /* \"#utility.yul\":1456:1496 */\n add\n /* \"#utility.yul\":1598:1604 */\n dup2\n /* \"#utility.yul\":1586:1596 */\n dup2\n /* \"#utility.yul\":1583:1605 */\n lt\n /* \"#utility.yul\":1562:1580 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1550:1560 */\n dup3\n /* \"#utility.yul\":1547:1581 */\n gt\n /* \"#utility.yul\":1544:1606 */\n or\n /* \"#utility.yul\":1541:1629 */\n iszero\n tag_84\n jumpi\n /* \"#utility.yul\":1609:1627 */\n tag_85\n tag_55\n jump\t// in\ntag_85:\n /* \"#utility.yul\":1541:1629 */\ntag_84:\n /* \"#utility.yul\":1649:1659 */\n dup1\n /* \"#utility.yul\":1645:1647 */\n 0x40\n /* \"#utility.yul\":1638:1660 */\n mstore\n /* \"#utility.yul\":1428:1666 */\n pop\n /* \"#utility.yul\":1385:1666 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1672:1801 */\ntag_57:\n /* \"#utility.yul\":1706:1712 */\n 0x00\n /* \"#utility.yul\":1733:1753 */\n tag_87\n tag_45\n jump\t// in\ntag_87:\n /* \"#utility.yul\":1723:1753 */\n swap1\n pop\n /* \"#utility.yul\":1762:1795 */\n tag_88\n /* \"#utility.yul\":1790:1794 */\n dup3\n /* \"#utility.yul\":1782:1788 */\n dup3\n /* \"#utility.yul\":1762:1795 */\n tag_56\n jump\t// in\ntag_88:\n /* \"#utility.yul\":1672:1801 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1807:2114 */\ntag_58:\n /* \"#utility.yul\":1868:1872 */\n 0x00\n /* \"#utility.yul\":1958:1976 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1950:1956 */\n dup3\n /* \"#utility.yul\":1947:1977 */\n gt\n /* \"#utility.yul\":1944:2000 */\n iszero\n tag_90\n jumpi\n /* \"#utility.yul\":1980:1998 */\n tag_91\n tag_55\n jump\t// in\ntag_91:\n /* \"#utility.yul\":1944:2000 */\ntag_90:\n /* \"#utility.yul\":2018:2047 */\n tag_92\n /* \"#utility.yul\":2040:2046 */\n dup3\n /* \"#utility.yul\":2018:2047 */\n tag_54\n jump\t// in\ntag_92:\n /* \"#utility.yul\":2010:2047 */\n swap1\n pop\n /* \"#utility.yul\":2102:2106 */\n 0x20\n /* \"#utility.yul\":2096:2100 */\n dup2\n /* \"#utility.yul\":2092:2107 */\n add\n /* \"#utility.yul\":2084:2107 */\n swap1\n pop\n /* \"#utility.yul\":1807:2114 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2120:2366 */\ntag_59:\n /* \"#utility.yul\":2201:2202 */\n 0x00\n /* \"#utility.yul\":2211:2324 */\ntag_94:\n /* \"#utility.yul\":2225:2231 */\n dup4\n /* \"#utility.yul\":2222:2223 */\n dup2\n /* \"#utility.yul\":2219:2232 */\n lt\n /* \"#utility.yul\":2211:2324 */\n iszero\n tag_96\n jumpi\n /* \"#utility.yul\":2310:2311 */\n dup1\n /* \"#utility.yul\":2305:2308 */\n dup3\n /* \"#utility.yul\":2301:2312 */\n add\n /* \"#utility.yul\":2295:2313 */\n mload\n /* \"#utility.yul\":2291:2292 */\n dup2\n /* \"#utility.yul\":2286:2289 */\n dup5\n /* \"#utility.yul\":2282:2293 */\n add\n /* \"#utility.yul\":2275:2314 */\n mstore\n /* \"#utility.yul\":2247:2249 */\n 0x20\n /* \"#utility.yul\":2244:2245 */\n dup2\n /* \"#utility.yul\":2240:2250 */\n add\n /* \"#utility.yul\":2235:2250 */\n swap1\n pop\n /* \"#utility.yul\":2211:2324 */\n jump(tag_94)\ntag_96:\n /* \"#utility.yul\":2358:2359 */\n 0x00\n /* \"#utility.yul\":2349:2355 */\n dup5\n /* \"#utility.yul\":2344:2347 */\n dup5\n /* \"#utility.yul\":2340:2356 */\n add\n /* \"#utility.yul\":2333:2360 */\n mstore\n /* \"#utility.yul\":2182:2366 */\n pop\n /* \"#utility.yul\":2120:2366 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2372:2804 */\ntag_60:\n /* \"#utility.yul\":2460:2465 */\n 0x00\n /* \"#utility.yul\":2485:2550 */\n tag_98\n /* \"#utility.yul\":2501:2549 */\n tag_99\n /* \"#utility.yul\":2542:2548 */\n dup5\n /* \"#utility.yul\":2501:2549 */\n tag_58\n jump\t// in\ntag_99:\n /* \"#utility.yul\":2485:2550 */\n tag_57\n jump\t// in\ntag_98:\n /* \"#utility.yul\":2476:2550 */\n swap1\n pop\n /* \"#utility.yul\":2573:2579 */\n dup3\n /* \"#utility.yul\":2566:2571 */\n dup2\n /* \"#utility.yul\":2559:2580 */\n mstore\n /* \"#utility.yul\":2611:2615 */\n 0x20\n /* \"#utility.yul\":2604:2609 */\n dup2\n /* \"#utility.yul\":2600:2616 */\n add\n /* \"#utility.yul\":2649:2652 */\n dup5\n /* \"#utility.yul\":2640:2646 */\n dup5\n /* \"#utility.yul\":2635:2638 */\n dup5\n /* \"#utility.yul\":2631:2647 */\n add\n /* \"#utility.yul\":2628:2653 */\n gt\n /* \"#utility.yul\":2625:2737 */\n iszero\n tag_100\n jumpi\n /* \"#utility.yul\":2656:2735 */\n tag_101\n tag_53\n jump\t// in\ntag_101:\n /* \"#utility.yul\":2625:2737 */\ntag_100:\n /* \"#utility.yul\":2746:2798 */\n tag_102\n /* \"#utility.yul\":2791:2797 */\n dup5\n /* \"#utility.yul\":2786:2789 */\n dup3\n /* \"#utility.yul\":2781:2784 */\n dup6\n /* \"#utility.yul\":2746:2798 */\n tag_59\n jump\t// in\ntag_102:\n /* \"#utility.yul\":2466:2804 */\n pop\n /* \"#utility.yul\":2372:2804 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2823:3176 */\ntag_61:\n /* \"#utility.yul\":2889:2894 */\n 0x00\n /* \"#utility.yul\":2938:2941 */\n dup3\n /* \"#utility.yul\":2931:2935 */\n 0x1f\n /* \"#utility.yul\":2923:2929 */\n dup4\n /* \"#utility.yul\":2919:2936 */\n add\n /* \"#utility.yul\":2915:2942 */\n slt\n /* \"#utility.yul\":2905:3027 */\n tag_104\n jumpi\n /* \"#utility.yul\":2946:3025 */\n tag_105\n tag_52\n jump\t// in\ntag_105:\n /* \"#utility.yul\":2905:3027 */\ntag_104:\n /* \"#utility.yul\":3056:3062 */\n dup2\n /* \"#utility.yul\":3050:3063 */\n mload\n /* \"#utility.yul\":3081:3170 */\n tag_106\n /* \"#utility.yul\":3166:3169 */\n dup5\n /* \"#utility.yul\":3158:3164 */\n dup3\n /* \"#utility.yul\":3151:3155 */\n 0x20\n /* \"#utility.yul\":3143:3149 */\n dup7\n /* \"#utility.yul\":3139:3156 */\n add\n /* \"#utility.yul\":3081:3170 */\n tag_60\n jump\t// in\ntag_106:\n /* \"#utility.yul\":3072:3170 */\n swap2\n pop\n /* \"#utility.yul\":2895:3176 */\n pop\n /* \"#utility.yul\":2823:3176 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3182:3860 */\ntag_2:\n /* \"#utility.yul\":3270:3276 */\n 0x00\n /* \"#utility.yul\":3278:3284 */\n dup1\n /* \"#utility.yul\":3327:3329 */\n 0x40\n /* \"#utility.yul\":3315:3324 */\n dup4\n /* \"#utility.yul\":3306:3313 */\n dup6\n /* \"#utility.yul\":3302:3325 */\n sub\n /* \"#utility.yul\":3298:3330 */\n slt\n /* \"#utility.yul\":3295:3414 */\n iszero\n tag_108\n jumpi\n /* \"#utility.yul\":3333:3412 */\n tag_109\n tag_46\n jump\t// in\ntag_109:\n /* \"#utility.yul\":3295:3414 */\ntag_108:\n /* \"#utility.yul\":3453:3454 */\n 0x00\n /* \"#utility.yul\":3478:3542 */\n tag_110\n /* \"#utility.yul\":3534:3541 */\n dup6\n /* \"#utility.yul\":3525:3531 */\n dup3\n /* \"#utility.yul\":3514:3523 */\n dup7\n /* \"#utility.yul\":3510:3532 */\n add\n /* \"#utility.yul\":3478:3542 */\n tag_51\n jump\t// in\ntag_110:\n /* \"#utility.yul\":3468:3542 */\n swap3\n pop\n /* \"#utility.yul\":3424:3552 */\n pop\n /* \"#utility.yul\":3612:3614 */\n 0x20\n /* \"#utility.yul\":3601:3610 */\n dup4\n /* \"#utility.yul\":3597:3615 */\n add\n /* \"#utility.yul\":3591:3616 */\n mload\n /* \"#utility.yul\":3643:3661 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3635:3641 */\n dup2\n /* \"#utility.yul\":3632:3662 */\n gt\n /* \"#utility.yul\":3629:3746 */\n iszero\n tag_111\n jumpi\n /* \"#utility.yul\":3665:3744 */\n tag_112\n tag_47\n jump\t// in\ntag_112:\n /* \"#utility.yul\":3629:3746 */\ntag_111:\n /* \"#utility.yul\":3770:3843 */\n tag_113\n /* \"#utility.yul\":3835:3842 */\n dup6\n /* \"#utility.yul\":3826:3832 */\n dup3\n /* \"#utility.yul\":3815:3824 */\n dup7\n /* \"#utility.yul\":3811:3833 */\n add\n /* \"#utility.yul\":3770:3843 */\n tag_61\n jump\t// in\ntag_113:\n /* \"#utility.yul\":3760:3843 */\n swap2\n pop\n /* \"#utility.yul\":3562:3853 */\n pop\n /* \"#utility.yul\":3182:3860 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3866:3984 */\ntag_62:\n /* \"#utility.yul\":3953:3977 */\n tag_115\n /* \"#utility.yul\":3971:3976 */\n dup2\n /* \"#utility.yul\":3953:3977 */\n tag_49\n jump\t// in\ntag_115:\n /* \"#utility.yul\":3948:3951 */\n dup3\n /* \"#utility.yul\":3941:3978 */\n mstore\n /* \"#utility.yul\":3866:3984 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3990:4212 */\ntag_20:\n /* \"#utility.yul\":4083:4087 */\n 0x00\n /* \"#utility.yul\":4121:4123 */\n 0x20\n /* \"#utility.yul\":4110:4119 */\n dup3\n /* \"#utility.yul\":4106:4124 */\n add\n /* \"#utility.yul\":4098:4124 */\n swap1\n pop\n /* \"#utility.yul\":4134:4205 */\n tag_117\n /* \"#utility.yul\":4202:4203 */\n 0x00\n /* \"#utility.yul\":4191:4200 */\n dup4\n /* \"#utility.yul\":4187:4204 */\n add\n /* \"#utility.yul\":4178:4184 */\n dup5\n /* \"#utility.yul\":4134:4205 */\n tag_62\n jump\t// in\ntag_117:\n /* \"#utility.yul\":3990:4212 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4218:4316 */\ntag_63:\n /* \"#utility.yul\":4269:4275 */\n 0x00\n /* \"#utility.yul\":4303:4308 */\n dup2\n /* \"#utility.yul\":4297:4309 */\n mload\n /* \"#utility.yul\":4287:4309 */\n swap1\n pop\n /* \"#utility.yul\":4218:4316 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4322:4469 */\ntag_64:\n /* \"#utility.yul\":4423:4434 */\n 0x00\n /* \"#utility.yul\":4460:4463 */\n dup2\n /* \"#utility.yul\":4445:4463 */\n swap1\n pop\n /* \"#utility.yul\":4322:4469 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4475:4861 */\ntag_65:\n /* \"#utility.yul\":4579:4582 */\n 0x00\n /* \"#utility.yul\":4607:4645 */\n tag_121\n /* \"#utility.yul\":4639:4644 */\n dup3\n /* \"#utility.yul\":4607:4645 */\n tag_63\n jump\t// in\ntag_121:\n /* \"#utility.yul\":4661:4749 */\n tag_122\n /* \"#utility.yul\":4742:4748 */\n dup2\n /* \"#utility.yul\":4737:4740 */\n dup6\n /* \"#utility.yul\":4661:4749 */\n tag_64\n jump\t// in\ntag_122:\n /* \"#utility.yul\":4654:4749 */\n swap4\n pop\n /* \"#utility.yul\":4758:4823 */\n tag_123\n /* \"#utility.yul\":4816:4822 */\n dup2\n /* \"#utility.yul\":4811:4814 */\n dup6\n /* \"#utility.yul\":4804:4808 */\n 0x20\n /* \"#utility.yul\":4797:4802 */\n dup7\n /* \"#utility.yul\":4793:4809 */\n add\n /* \"#utility.yul\":4758:4823 */\n tag_59\n jump\t// in\ntag_123:\n /* \"#utility.yul\":4848:4854 */\n dup1\n /* \"#utility.yul\":4843:4846 */\n dup5\n /* \"#utility.yul\":4839:4855 */\n add\n /* \"#utility.yul\":4832:4855 */\n swap2\n pop\n /* \"#utility.yul\":4583:4861 */\n pop\n /* \"#utility.yul\":4475:4861 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4867:5138 */\ntag_25:\n /* \"#utility.yul\":4997:5000 */\n 0x00\n /* \"#utility.yul\":5019:5112 */\n tag_125\n /* \"#utility.yul\":5108:5111 */\n dup3\n /* \"#utility.yul\":5099:5105 */\n dup5\n /* \"#utility.yul\":5019:5112 */\n tag_65\n jump\t// in\ntag_125:\n /* \"#utility.yul\":5012:5112 */\n swap2\n pop\n /* \"#utility.yul\":5129:5132 */\n dup2\n /* \"#utility.yul\":5122:5132 */\n swap1\n pop\n /* \"#utility.yul\":4867:5138 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":599:1715 contract ERC1967Proxy is Proxy {... */\ntag_7:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":599:1715 contract ERC1967Proxy is Proxy {... */\n mstore(0x40, 0x80)\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2649:2660 _fallback() */\n tag_5\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2649:2658 _fallback */\n tag_6\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2649:2660 _fallback() */\n jump\t// in\n tag_5:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":599:1715 contract ERC1967Proxy is Proxy {... */\n stop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2323:2406 function _fallback() internal virtual {... */\n tag_6:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2371:2399 _delegate(_implementation()) */\n tag_8\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2381:2398 _implementation() */\n tag_9\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2381:2396 _implementation */\n tag_10\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2381:2398 _implementation() */\n jump\t// in\n tag_9:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2371:2380 _delegate */\n tag_11\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2371:2399 _delegate(_implementation()) */\n jump\t// in\n tag_8:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":2323:2406 function _fallback() internal virtual {... */\n jump\t// out\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1581:1713 function _implementation() internal view virtual override returns (address) {... */\n tag_10:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1648:1655 address */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1674:1706 ERC1967Utils.getImplementation() */\n tag_13\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1674:1704 ERC1967Utils.getImplementation */\n tag_14\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1674:1706 ERC1967Utils.getImplementation() */\n jump\t// in\n tag_13:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1667:1706 return ERC1967Utils.getImplementation() */\n swap1\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":1581:1713 function _implementation() internal view virtual override returns (address) {... */\n swap1\n jump\t// out\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":949:1844 function _delegate(address implementation) internal virtual {... */\n tag_11:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1287:1301 calldatasize() */\n calldatasize\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1284:1285 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1281:1282 0 */\n dup1\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1268:1302 calldatacopy(0, 0, calldatasize()) */\n calldatacopy\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1501:1502 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1498:1499 0 */\n dup1\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1482:1496 calldatasize() */\n calldatasize\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1479:1480 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1463:1477 implementation */\n dup5\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1456:1461 gas() */\n gas\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1443:1503 delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) */\n delegatecall\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1577:1593 returndatasize() */\n returndatasize\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1574:1575 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1571:1572 0 */\n dup1\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1556:1594 returndatacopy(0, 0, returndatasize()) */\n returndatacopy\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1615:1621 result */\n dup1\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1687:1688 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1682:1748 case 0 {... */\n dup2\n eq\n tag_17\n jumpi\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1797:1813 returndatasize() */\n returndatasize\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1794:1795 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1787:1814 return(0, returndatasize()) */\n return\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1682:1748 case 0 {... */\n tag_17:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1717:1733 returndatasize() */\n returndatasize\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1714:1715 0 */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":1707:1734 revert(0, returndatasize()) */\n revert\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":1957:2095 function getImplementation() internal view returns (address) {... */\n tag_14:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2009:2016 address */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2035:2082 StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT) */\n tag_19\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":1327:1393 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc */\n 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2062:2081 IMPLEMENTATION_SLOT */\n 0x00\n shl\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2035:2061 StorageSlot.getAddressSlot */\n tag_20\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2035:2082 StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT) */\n jump\t// in\n tag_19:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2035:2088 StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value */\n 0x00\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":2028:2088 return StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value */\n swap1\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":1957:2095 function getImplementation() internal view returns (address) {... */\n swap1\n jump\t// out\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1684:1874 function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {... */\n tag_20:\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1745:1766 AddressSlot storage r */\n 0x00\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1854:1858 slot */\n dup2\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1844:1858 r.slot := slot */\n swap1\n pop\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1684:1874 function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {... */\n swap2\n swap1\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212204445ca1d654fe96658df00412cf9c7bcb1fdfaf66f39f4eb3c6a802907e7966864736f6c63430008150033\n}\n", | |
| "bytecode": { | |
| "functionDebugData": { | |
| "@_24": { | |
| "entryPoint": null, | |
| "id": 24, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "@_checkNonPayable_339": { | |
| "entryPoint": 533, | |
| "id": 339, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@_revert_638": { | |
| "entryPoint": 749, | |
| "id": 638, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@_setImplementation_125": { | |
| "entryPoint": 192, | |
| "id": 125, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@functionDelegateCall_558": { | |
| "entryPoint": 399, | |
| "id": 558, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "@getAddressSlot_671": { | |
| "entryPoint": 593, | |
| "id": 671, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "@upgradeToAndCall_159": { | |
| "entryPoint": 60, | |
| "id": 159, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "@verifyCallResultFromTarget_598": { | |
| "entryPoint": 602, | |
| "id": 598, | |
| "parameterSlots": 3, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_available_length_t_bytes_memory_ptr_fromMemory": { | |
| "entryPoint": 1156, | |
| "id": null, | |
| "parameterSlots": 3, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_t_address_fromMemory": { | |
| "entryPoint": 904, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_t_bytes_memory_ptr_fromMemory": { | |
| "entryPoint": 1221, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory": { | |
| "entryPoint": 1266, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 2 | |
| }, | |
| "abi_encode_t_address_to_t_address_fromStack": { | |
| "entryPoint": 1356, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { | |
| "entryPoint": 1416, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { | |
| "entryPoint": 1464, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { | |
| "entryPoint": 1371, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "allocate_memory": { | |
| "entryPoint": 1042, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "allocate_unbounded": { | |
| "entryPoint": 817, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "array_allocation_size_t_bytes_memory_ptr": { | |
| "entryPoint": 1068, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "array_length_t_bytes_memory_ptr": { | |
| "entryPoint": 1396, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { | |
| "entryPoint": 1406, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_address": { | |
| "entryPoint": 865, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_uint160": { | |
| "entryPoint": 834, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "copy_memory_to_memory_with_cleanup": { | |
| "entryPoint": 1116, | |
| "id": null, | |
| "parameterSlots": 3, | |
| "returnSlots": 0 | |
| }, | |
| "finalize_allocation": { | |
| "entryPoint": 993, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "panic_error_0x41": { | |
| "entryPoint": 948, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { | |
| "entryPoint": 924, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { | |
| "entryPoint": 928, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { | |
| "entryPoint": 830, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { | |
| "entryPoint": 826, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "round_up_to_mul_of_32": { | |
| "entryPoint": 932, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "validator_revert_t_address": { | |
| "entryPoint": 882, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nativeSrc": "0:5141:6", | |
| "nodeType": "YulBlock", | |
| "src": "0:5141:6", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "47:35:6", | |
| "nodeType": "YulBlock", | |
| "src": "47:35:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "57:19:6", | |
| "nodeType": "YulAssignment", | |
| "src": "57:19:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "73:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "73:2:6", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "67:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "67:5:6" | |
| }, | |
| "nativeSrc": "67:9:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "67:9:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "57:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "57:6:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "allocate_unbounded", | |
| "nativeSrc": "7:75:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "40:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "40:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:75:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "177:28:6", | |
| "nodeType": "YulBlock", | |
| "src": "177:28:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "194:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "194:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "197:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "197:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "187:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "187:6:6" | |
| }, | |
| "nativeSrc": "187:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "187:12:6" | |
| }, | |
| "nativeSrc": "187:12:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "187:12:6" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nativeSrc": "88:117:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "88:117:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "300:28:6", | |
| "nodeType": "YulBlock", | |
| "src": "300:28:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "317:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "317:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "320:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "320:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "310:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "310:6:6" | |
| }, | |
| "nativeSrc": "310:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "310:12:6" | |
| }, | |
| "nativeSrc": "310:12:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "310:12:6" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", | |
| "nativeSrc": "211:117:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "211:117:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "379:81:6", | |
| "nodeType": "YulBlock", | |
| "src": "379:81:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "389:65:6", | |
| "nodeType": "YulAssignment", | |
| "src": "389:65:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "404:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "404:5:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "411:42:6", | |
| "nodeType": "YulLiteral", | |
| "src": "411:42:6", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nativeSrc": "400:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "400:3:6" | |
| }, | |
| "nativeSrc": "400:54:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "400:54:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nativeSrc": "389:7:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "389:7:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint160", | |
| "nativeSrc": "334:126:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "361:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "361:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nativeSrc": "371:7:6", | |
| "nodeType": "YulTypedName", | |
| "src": "371:7:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "334:126:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "511:51:6", | |
| "nodeType": "YulBlock", | |
| "src": "511:51:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "521:35:6", | |
| "nodeType": "YulAssignment", | |
| "src": "521:35:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "550:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "550:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint160", | |
| "nativeSrc": "532:17:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "532:17:6" | |
| }, | |
| "nativeSrc": "532:24:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "532:24:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nativeSrc": "521:7:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "521:7:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_address", | |
| "nativeSrc": "466:96:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "493:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "493:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nativeSrc": "503:7:6", | |
| "nodeType": "YulTypedName", | |
| "src": "503:7:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "466:96:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "611:79:6", | |
| "nodeType": "YulBlock", | |
| "src": "611:79:6", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "668:16:6", | |
| "nodeType": "YulBlock", | |
| "src": "668:16:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "677:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "677:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "680:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "680:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "670:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "670:6:6" | |
| }, | |
| "nativeSrc": "670:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "670:12:6" | |
| }, | |
| "nativeSrc": "670:12:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "670:12:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "634:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "634:5:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "659:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "659:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_address", | |
| "nativeSrc": "641:17:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "641:17:6" | |
| }, | |
| "nativeSrc": "641:24:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "641:24:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nativeSrc": "631:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "631:2:6" | |
| }, | |
| "nativeSrc": "631:35:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "631:35:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nativeSrc": "624:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "624:6:6" | |
| }, | |
| "nativeSrc": "624:43:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "624:43:6" | |
| }, | |
| "nativeSrc": "621:63:6", | |
| "nodeType": "YulIf", | |
| "src": "621:63:6" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_address", | |
| "nativeSrc": "568:122:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "604:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "604:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "568:122:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "759:80:6", | |
| "nodeType": "YulBlock", | |
| "src": "759:80:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "769:22:6", | |
| "nodeType": "YulAssignment", | |
| "src": "769:22:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "784:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "784:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "778:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "778:5:6" | |
| }, | |
| "nativeSrc": "778:13:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "778:13:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "769:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "769:5:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "827:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "827:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_address", | |
| "nativeSrc": "800:26:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "800:26:6" | |
| }, | |
| "nativeSrc": "800:33:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "800:33:6" | |
| }, | |
| "nativeSrc": "800:33:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "800:33:6" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_address_fromMemory", | |
| "nativeSrc": "696:143:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "737:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "737:6:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "745:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "745:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "753:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "753:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "696:143:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "934:28:6", | |
| "nodeType": "YulBlock", | |
| "src": "934:28:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "951:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "951:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "954:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "954:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "944:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "944:6:6" | |
| }, | |
| "nativeSrc": "944:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "944:12:6" | |
| }, | |
| "nativeSrc": "944:12:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "944:12:6" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", | |
| "nativeSrc": "845:117:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "845:117:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1057:28:6", | |
| "nodeType": "YulBlock", | |
| "src": "1057:28:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1074:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1074:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1077:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1077:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "1067:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1067:6:6" | |
| }, | |
| "nativeSrc": "1067:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1067:12:6" | |
| }, | |
| "nativeSrc": "1067:12:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1067:12:6" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", | |
| "nativeSrc": "968:117:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "968:117:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1139:54:6", | |
| "nodeType": "YulBlock", | |
| "src": "1139:54:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "1149:38:6", | |
| "nodeType": "YulAssignment", | |
| "src": "1149:38:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "1167:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1167:5:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1174:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1174:2:6", | |
| "type": "", | |
| "value": "31" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "1163:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1163:3:6" | |
| }, | |
| "nativeSrc": "1163:14:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1163:14:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1183:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1183:2:6", | |
| "type": "", | |
| "value": "31" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "not", | |
| "nativeSrc": "1179:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1179:3:6" | |
| }, | |
| "nativeSrc": "1179:7:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1179:7:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nativeSrc": "1159:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1159:3:6" | |
| }, | |
| "nativeSrc": "1159:28:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1159:28:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "result", | |
| "nativeSrc": "1149:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1149:6:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "round_up_to_mul_of_32", | |
| "nativeSrc": "1091:102:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "1122:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1122:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "result", | |
| "nativeSrc": "1132:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1132:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1091:102:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1227:152:6", | |
| "nodeType": "YulBlock", | |
| "src": "1227:152:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1244:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1244:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1247:77:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1247:77:6", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "1237:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1237:6:6" | |
| }, | |
| "nativeSrc": "1237:88:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1237:88:6" | |
| }, | |
| "nativeSrc": "1237:88:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1237:88:6" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1341:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1341:1:6", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1344:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1344:4:6", | |
| "type": "", | |
| "value": "0x41" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "1334:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1334:6:6" | |
| }, | |
| "nativeSrc": "1334:15:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1334:15:6" | |
| }, | |
| "nativeSrc": "1334:15:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1334:15:6" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1365:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1365:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1368:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1368:4:6", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "1358:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1358:6:6" | |
| }, | |
| "nativeSrc": "1358:15:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1358:15:6" | |
| }, | |
| "nativeSrc": "1358:15:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1358:15:6" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x41", | |
| "nativeSrc": "1199:180:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "1199:180:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1428:238:6", | |
| "nodeType": "YulBlock", | |
| "src": "1428:238:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "1438:58:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "1438:58:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1460:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1460:6:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "1490:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1490:4:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "round_up_to_mul_of_32", | |
| "nativeSrc": "1468:21:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1468:21:6" | |
| }, | |
| "nativeSrc": "1468:27:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1468:27:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "1456:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1456:3:6" | |
| }, | |
| "nativeSrc": "1456:40:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1456:40:6" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "newFreePtr", | |
| "nativeSrc": "1442:10:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1442:10:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1607:22:6", | |
| "nodeType": "YulBlock", | |
| "src": "1607:22:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x41", | |
| "nativeSrc": "1609:16:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1609:16:6" | |
| }, | |
| "nativeSrc": "1609:18:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1609:18:6" | |
| }, | |
| "nativeSrc": "1609:18:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1609:18:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "newFreePtr", | |
| "nativeSrc": "1550:10:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1550:10:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1562:18:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1562:18:6", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nativeSrc": "1547:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1547:2:6" | |
| }, | |
| "nativeSrc": "1547:34:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1547:34:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "newFreePtr", | |
| "nativeSrc": "1586:10:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1586:10:6" | |
| }, | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1598:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1598:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nativeSrc": "1583:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1583:2:6" | |
| }, | |
| "nativeSrc": "1583:22:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1583:22:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "or", | |
| "nativeSrc": "1544:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1544:2:6" | |
| }, | |
| "nativeSrc": "1544:62:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1544:62:6" | |
| }, | |
| "nativeSrc": "1541:88:6", | |
| "nodeType": "YulIf", | |
| "src": "1541:88:6" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1645:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1645:2:6", | |
| "type": "", | |
| "value": "64" | |
| }, | |
| { | |
| "name": "newFreePtr", | |
| "nativeSrc": "1649:10:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1649:10:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "1638:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1638:6:6" | |
| }, | |
| "nativeSrc": "1638:22:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1638:22:6" | |
| }, | |
| "nativeSrc": "1638:22:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1638:22:6" | |
| } | |
| ] | |
| }, | |
| "name": "finalize_allocation", | |
| "nativeSrc": "1385:281:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1414:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1414:6:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "size", | |
| "nativeSrc": "1422:4:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1422:4:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1385:281:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1713:88:6", | |
| "nodeType": "YulBlock", | |
| "src": "1713:88:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "1723:30:6", | |
| "nodeType": "YulAssignment", | |
| "src": "1723:30:6", | |
| "value": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "allocate_unbounded", | |
| "nativeSrc": "1733:18:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1733:18:6" | |
| }, | |
| "nativeSrc": "1733:20:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1733:20:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1723:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1723:6:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1782:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1782:6:6" | |
| }, | |
| { | |
| "name": "size", | |
| "nativeSrc": "1790:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1790:4:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "finalize_allocation", | |
| "nativeSrc": "1762:19:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1762:19:6" | |
| }, | |
| "nativeSrc": "1762:33:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1762:33:6" | |
| }, | |
| "nativeSrc": "1762:33:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1762:33:6" | |
| } | |
| ] | |
| }, | |
| "name": "allocate_memory", | |
| "nativeSrc": "1672:129:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "1697:4:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1697:4:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1706:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1706:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1672:129:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1873:241:6", | |
| "nodeType": "YulBlock", | |
| "src": "1873:241:6", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "1978:22:6", | |
| "nodeType": "YulBlock", | |
| "src": "1978:22:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x41", | |
| "nativeSrc": "1980:16:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1980:16:6" | |
| }, | |
| "nativeSrc": "1980:18:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1980:18:6" | |
| }, | |
| "nativeSrc": "1980:18:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1980:18:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "1950:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1950:6:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1958:18:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1958:18:6", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nativeSrc": "1947:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1947:2:6" | |
| }, | |
| "nativeSrc": "1947:30:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1947:30:6" | |
| }, | |
| "nativeSrc": "1944:56:6", | |
| "nodeType": "YulIf", | |
| "src": "1944:56:6" | |
| }, | |
| { | |
| "nativeSrc": "2010:37:6", | |
| "nodeType": "YulAssignment", | |
| "src": "2010:37:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "2040:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2040:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "round_up_to_mul_of_32", | |
| "nativeSrc": "2018:21:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2018:21:6" | |
| }, | |
| "nativeSrc": "2018:29:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2018:29:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "2010:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2010:4:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "2084:23:6", | |
| "nodeType": "YulAssignment", | |
| "src": "2084:23:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "2096:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2096:4:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "2102:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2102:4:6", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2092:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2092:3:6" | |
| }, | |
| "nativeSrc": "2092:15:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2092:15:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "2084:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2084:4:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_allocation_size_t_bytes_memory_ptr", | |
| "nativeSrc": "1807:307:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "1857:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1857:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "1868:4:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1868:4:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1807:307:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "2182:184:6", | |
| "nodeType": "YulBlock", | |
| "src": "2182:184:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "2192:10:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2192:10:6", | |
| "value": { | |
| "kind": "number", | |
| "nativeSrc": "2201:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2201:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "i", | |
| "nativeSrc": "2196:1:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2196:1:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "2261:63:6", | |
| "nodeType": "YulBlock", | |
| "src": "2261:63:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nativeSrc": "2286:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2286:3:6" | |
| }, | |
| { | |
| "name": "i", | |
| "nativeSrc": "2291:1:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2291:1:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2282:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2282:3:6" | |
| }, | |
| "nativeSrc": "2282:11:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2282:11:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nativeSrc": "2305:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2305:3:6" | |
| }, | |
| { | |
| "name": "i", | |
| "nativeSrc": "2310:1:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2310:1:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2301:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2301:3:6" | |
| }, | |
| "nativeSrc": "2301:11:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2301:11:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "2295:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2295:5:6" | |
| }, | |
| "nativeSrc": "2295:18:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2295:18:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "2275:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2275:6:6" | |
| }, | |
| "nativeSrc": "2275:39:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2275:39:6" | |
| }, | |
| "nativeSrc": "2275:39:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2275:39:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nativeSrc": "2222:1:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2222:1:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2225:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2225:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nativeSrc": "2219:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2219:2:6" | |
| }, | |
| "nativeSrc": "2219:13:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2219:13:6" | |
| }, | |
| "nativeSrc": "2211:113:6", | |
| "nodeType": "YulForLoop", | |
| "post": { | |
| "nativeSrc": "2233:19:6", | |
| "nodeType": "YulBlock", | |
| "src": "2233:19:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "2235:15:6", | |
| "nodeType": "YulAssignment", | |
| "src": "2235:15:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nativeSrc": "2244:1:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2244:1:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "2247:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2247:2:6", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2240:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2240:3:6" | |
| }, | |
| "nativeSrc": "2240:10:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2240:10:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "i", | |
| "nativeSrc": "2235:1:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2235:1:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "pre": { | |
| "nativeSrc": "2215:3:6", | |
| "nodeType": "YulBlock", | |
| "src": "2215:3:6", | |
| "statements": [] | |
| }, | |
| "src": "2211:113:6" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nativeSrc": "2344:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2344:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2349:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2349:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2340:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2340:3:6" | |
| }, | |
| "nativeSrc": "2340:16:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2340:16:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "2358:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2358:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "2333:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2333:6:6" | |
| }, | |
| "nativeSrc": "2333:27:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2333:27:6" | |
| }, | |
| "nativeSrc": "2333:27:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2333:27:6" | |
| } | |
| ] | |
| }, | |
| "name": "copy_memory_to_memory_with_cleanup", | |
| "nativeSrc": "2120:246:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "src", | |
| "nativeSrc": "2164:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2164:3:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dst", | |
| "nativeSrc": "2169:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2169:3:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2174:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2174:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2120:246:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "2466:338:6", | |
| "nodeType": "YulBlock", | |
| "src": "2466:338:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "2476:74:6", | |
| "nodeType": "YulAssignment", | |
| "src": "2476:74:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "2542:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2542:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_allocation_size_t_bytes_memory_ptr", | |
| "nativeSrc": "2501:40:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2501:40:6" | |
| }, | |
| "nativeSrc": "2501:48:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2501:48:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "allocate_memory", | |
| "nativeSrc": "2485:15:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2485:15:6" | |
| }, | |
| "nativeSrc": "2485:65:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2485:65:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "2476:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2476:5:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "2566:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2566:5:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2573:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2573:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "2559:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2559:6:6" | |
| }, | |
| "nativeSrc": "2559:21:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2559:21:6" | |
| }, | |
| "nativeSrc": "2559:21:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2559:21:6" | |
| }, | |
| { | |
| "nativeSrc": "2589:27:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2589:27:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "2604:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2604:5:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "2611:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2611:4:6", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2600:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2600:3:6" | |
| }, | |
| "nativeSrc": "2600:16:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2600:16:6" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "dst", | |
| "nativeSrc": "2593:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2593:3:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "2654:83:6", | |
| "nodeType": "YulBlock", | |
| "src": "2654:83:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", | |
| "nativeSrc": "2656:77:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2656:77:6" | |
| }, | |
| "nativeSrc": "2656:79:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2656:79:6" | |
| }, | |
| "nativeSrc": "2656:79:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2656:79:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nativeSrc": "2635:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2635:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2640:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2640:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2631:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2631:3:6" | |
| }, | |
| "nativeSrc": "2631:16:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2631:16:6" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "2649:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2649:3:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nativeSrc": "2628:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2628:2:6" | |
| }, | |
| "nativeSrc": "2628:25:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2628:25:6" | |
| }, | |
| "nativeSrc": "2625:112:6", | |
| "nodeType": "YulIf", | |
| "src": "2625:112:6" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nativeSrc": "2781:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2781:3:6" | |
| }, | |
| { | |
| "name": "dst", | |
| "nativeSrc": "2786:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2786:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2791:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2791:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "copy_memory_to_memory_with_cleanup", | |
| "nativeSrc": "2746:34:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2746:34:6" | |
| }, | |
| "nativeSrc": "2746:52:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2746:52:6" | |
| }, | |
| "nativeSrc": "2746:52:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2746:52:6" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", | |
| "nativeSrc": "2372:432:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "src", | |
| "nativeSrc": "2439:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2439:3:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2444:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2444:6:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "2452:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2452:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "2460:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2460:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2372:432:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "2895:281:6", | |
| "nodeType": "YulBlock", | |
| "src": "2895:281:6", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "2944:83:6", | |
| "nodeType": "YulBlock", | |
| "src": "2944:83:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", | |
| "nativeSrc": "2946:77:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2946:77:6" | |
| }, | |
| "nativeSrc": "2946:79:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2946:79:6" | |
| }, | |
| "nativeSrc": "2946:79:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2946:79:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "2923:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2923:6:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "2931:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2931:4:6", | |
| "type": "", | |
| "value": "0x1f" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2919:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2919:3:6" | |
| }, | |
| "nativeSrc": "2919:17:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2919:17:6" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "2938:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2938:3:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nativeSrc": "2915:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2915:3:6" | |
| }, | |
| "nativeSrc": "2915:27:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2915:27:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nativeSrc": "2908:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2908:6:6" | |
| }, | |
| "nativeSrc": "2908:35:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2908:35:6" | |
| }, | |
| "nativeSrc": "2905:122:6", | |
| "nodeType": "YulIf", | |
| "src": "2905:122:6" | |
| }, | |
| { | |
| "nativeSrc": "3036:27:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3036:27:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3056:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3056:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "3050:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3050:5:6" | |
| }, | |
| "nativeSrc": "3050:13:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3050:13:6" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "3040:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3040:6:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "3072:98:6", | |
| "nodeType": "YulAssignment", | |
| "src": "3072:98:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3143:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3143:6:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "3151:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "3151:4:6", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "3139:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3139:3:6" | |
| }, | |
| "nativeSrc": "3139:17:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3139:17:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "3158:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3158:6:6" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "3166:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3166:3:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", | |
| "nativeSrc": "3081:57:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3081:57:6" | |
| }, | |
| "nativeSrc": "3081:89:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3081:89:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "3072:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3072:5:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_bytes_memory_ptr_fromMemory", | |
| "nativeSrc": "2823:353:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "2873:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2873:6:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "2881:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2881:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "2889:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2889:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2823:353:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "3285:575:6", | |
| "nodeType": "YulBlock", | |
| "src": "3285:575:6", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "3331:83:6", | |
| "nodeType": "YulBlock", | |
| "src": "3331:83:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nativeSrc": "3333:77:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3333:77:6" | |
| }, | |
| "nativeSrc": "3333:79:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3333:79:6" | |
| }, | |
| "nativeSrc": "3333:79:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3333:79:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "3306:7:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3306:7:6" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "3315:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3315:9:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nativeSrc": "3302:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3302:3:6" | |
| }, | |
| "nativeSrc": "3302:23:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3302:23:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "3327:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "3327:2:6", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nativeSrc": "3298:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3298:3:6" | |
| }, | |
| "nativeSrc": "3298:32:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3298:32:6" | |
| }, | |
| "nativeSrc": "3295:119:6", | |
| "nodeType": "YulIf", | |
| "src": "3295:119:6" | |
| }, | |
| { | |
| "nativeSrc": "3424:128:6", | |
| "nodeType": "YulBlock", | |
| "src": "3424:128:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "3439:15:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3439:15:6", | |
| "value": { | |
| "kind": "number", | |
| "nativeSrc": "3453:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "3453:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3443:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3443:6:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "3468:74:6", | |
| "nodeType": "YulAssignment", | |
| "src": "3468:74:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "3514:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3514:9:6" | |
| }, | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3525:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3525:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "3510:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3510:3:6" | |
| }, | |
| "nativeSrc": "3510:22:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3510:22:6" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "3534:7:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3534:7:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_address_fromMemory", | |
| "nativeSrc": "3478:31:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3478:31:6" | |
| }, | |
| "nativeSrc": "3478:64:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3478:64:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "3468:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3468:6:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "3562:291:6", | |
| "nodeType": "YulBlock", | |
| "src": "3562:291:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "3577:39:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3577:39:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "3601:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3601:9:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "3612:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "3612:2:6", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "3597:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3597:3:6" | |
| }, | |
| "nativeSrc": "3597:18:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3597:18:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "3591:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3591:5:6" | |
| }, | |
| "nativeSrc": "3591:25:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3591:25:6" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3581:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3581:6:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "3663:83:6", | |
| "nodeType": "YulBlock", | |
| "src": "3663:83:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", | |
| "nativeSrc": "3665:77:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3665:77:6" | |
| }, | |
| "nativeSrc": "3665:79:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3665:79:6" | |
| }, | |
| "nativeSrc": "3665:79:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3665:79:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3635:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3635:6:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "3643:18:6", | |
| "nodeType": "YulLiteral", | |
| "src": "3643:18:6", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nativeSrc": "3632:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3632:2:6" | |
| }, | |
| "nativeSrc": "3632:30:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3632:30:6" | |
| }, | |
| "nativeSrc": "3629:117:6", | |
| "nodeType": "YulIf", | |
| "src": "3629:117:6" | |
| }, | |
| { | |
| "nativeSrc": "3760:83:6", | |
| "nodeType": "YulAssignment", | |
| "src": "3760:83:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "3815:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3815:9:6" | |
| }, | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3826:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3826:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "3811:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3811:3:6" | |
| }, | |
| "nativeSrc": "3811:22:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3811:22:6" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "3835:7:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3835:7:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_bytes_memory_ptr_fromMemory", | |
| "nativeSrc": "3770:40:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3770:40:6" | |
| }, | |
| "nativeSrc": "3770:73:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3770:73:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value1", | |
| "nativeSrc": "3760:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3760:6:6" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory", | |
| "nativeSrc": "3182:678:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "3247:9:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3247:9:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "3258:7:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3258:7:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "3270:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3270:6:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value1", | |
| "nativeSrc": "3278:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3278:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3182:678:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "3931:53:6", | |
| "nodeType": "YulBlock", | |
| "src": "3931:53:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "3948:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3948:3:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "3971:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3971:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_address", | |
| "nativeSrc": "3953:17:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3953:17:6" | |
| }, | |
| "nativeSrc": "3953:24:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3953:24:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "3941:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3941:6:6" | |
| }, | |
| "nativeSrc": "3941:37:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3941:37:6" | |
| }, | |
| "nativeSrc": "3941:37:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3941:37:6" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_address_to_t_address_fromStack", | |
| "nativeSrc": "3866:118:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "3919:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3919:5:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nativeSrc": "3926:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3926:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3866:118:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "4088:124:6", | |
| "nodeType": "YulBlock", | |
| "src": "4088:124:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "4098:26:6", | |
| "nodeType": "YulAssignment", | |
| "src": "4098:26:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "4110:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4110:9:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "4121:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "4121:2:6", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "4106:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4106:3:6" | |
| }, | |
| "nativeSrc": "4106:18:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4106:18:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nativeSrc": "4098:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4098:4:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "4178:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4178:6:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "4191:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4191:9:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "4202:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "4202:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "4187:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4187:3:6" | |
| }, | |
| "nativeSrc": "4187:17:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4187:17:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_address_to_t_address_fromStack", | |
| "nativeSrc": "4134:43:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4134:43:6" | |
| }, | |
| "nativeSrc": "4134:71:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4134:71:6" | |
| }, | |
| "nativeSrc": "4134:71:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4134:71:6" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", | |
| "nativeSrc": "3990:222:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "4060:9:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4060:9:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nativeSrc": "4072:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4072:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nativeSrc": "4083:4:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4083:4:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3990:222:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "4276:40:6", | |
| "nodeType": "YulBlock", | |
| "src": "4276:40:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "4287:22:6", | |
| "nodeType": "YulAssignment", | |
| "src": "4287:22:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "4303:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4303:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "4297:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4297:5:6" | |
| }, | |
| "nativeSrc": "4297:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4297:12:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "4287:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4287:6:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_length_t_bytes_memory_ptr", | |
| "nativeSrc": "4218:98:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "4259:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4259:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "4269:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4269:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4218:98:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "4435:34:6", | |
| "nodeType": "YulBlock", | |
| "src": "4435:34:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "4445:18:6", | |
| "nodeType": "YulAssignment", | |
| "src": "4445:18:6", | |
| "value": { | |
| "name": "pos", | |
| "nativeSrc": "4460:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4460:3:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updated_pos", | |
| "nativeSrc": "4445:11:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4445:11:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", | |
| "nativeSrc": "4322:147:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4407:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4407:3:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "4412:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4412:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updated_pos", | |
| "nativeSrc": "4423:11:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4423:11:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4322:147:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "4583:278:6", | |
| "nodeType": "YulBlock", | |
| "src": "4583:278:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "4593:52:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "4593:52:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "4639:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4639:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_length_t_bytes_memory_ptr", | |
| "nativeSrc": "4607:31:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4607:31:6" | |
| }, | |
| "nativeSrc": "4607:38:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4607:38:6" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "4597:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4597:6:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "4654:95:6", | |
| "nodeType": "YulAssignment", | |
| "src": "4654:95:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4737:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4737:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "4742:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4742:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", | |
| "nativeSrc": "4661:75:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4661:75:6" | |
| }, | |
| "nativeSrc": "4661:88:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4661:88:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4654:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4654:3:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "4797:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4797:5:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "4804:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "4804:4:6", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "4793:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4793:3:6" | |
| }, | |
| "nativeSrc": "4793:16:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4793:16:6" | |
| }, | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4811:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4811:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "4816:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4816:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "copy_memory_to_memory_with_cleanup", | |
| "nativeSrc": "4758:34:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4758:34:6" | |
| }, | |
| "nativeSrc": "4758:65:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4758:65:6" | |
| }, | |
| "nativeSrc": "4758:65:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4758:65:6" | |
| }, | |
| { | |
| "nativeSrc": "4832:23:6", | |
| "nodeType": "YulAssignment", | |
| "src": "4832:23:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4843:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4843:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "4848:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4848:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "4839:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4839:3:6" | |
| }, | |
| "nativeSrc": "4839:16:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4839:16:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nativeSrc": "4832:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4832:3:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", | |
| "nativeSrc": "4475:386:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "4564:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4564:5:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4571:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4571:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nativeSrc": "4579:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4579:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4475:386:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "5001:137:6", | |
| "nodeType": "YulBlock", | |
| "src": "5001:137:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "5012:100:6", | |
| "nodeType": "YulAssignment", | |
| "src": "5012:100:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "5099:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5099:6:6" | |
| }, | |
| { | |
| "name": "pos", | |
| "nativeSrc": "5108:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5108:3:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", | |
| "nativeSrc": "5019:79:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5019:79:6" | |
| }, | |
| "nativeSrc": "5019:93:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "5019:93:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "5012:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5012:3:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "5122:10:6", | |
| "nodeType": "YulAssignment", | |
| "src": "5122:10:6", | |
| "value": { | |
| "name": "pos", | |
| "nativeSrc": "5129:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5129:3:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nativeSrc": "5122:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5122:3:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", | |
| "nativeSrc": "4867:271:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4980:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4980:3:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nativeSrc": "4986:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4986:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nativeSrc": "4997:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4997:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4867:271:6" | |
| } | |
| ] | |
| }, | |
| "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 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 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": 6, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "linkReferences": {}, | |
| "object": "60806040526040516106ae3803806106ae833981810160405281019061002591906104f2565b610035828261003c60201b60201c565b50506105ce565b61004b826100c060201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156100ad576100a7828261018f60201b60201c565b506100bc565b6100bb61021560201b60201c565b5b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361011b57806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610112919061055b565b60405180910390fd5b8061014d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b61025160201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f808473ffffffffffffffffffffffffffffffffffffffff16846040516101b891906105b8565b5f60405180830381855af49150503d805f81146101f0576040519150601f19603f3d011682016040523d82523d5f602084013e6101f5565b606091505b509150915061020b85838361025a60201b60201c565b9250505092915050565b5f34111561024f576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f819050919050565b60608261027557610270826102ed60201b60201c565b6102e5565b5f825114801561029b57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b156102dd57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016102d4919061055b565b60405180910390fd5b8190506102e6565b5b9392505050565b5f815111156102ff5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61036b82610342565b9050919050565b61037b81610361565b8114610385575f80fd5b50565b5f8151905061039681610372565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103ea826103a4565b810181811067ffffffffffffffff82111715610409576104086103b4565b5b80604052505050565b5f61041b610331565b905061042782826103e1565b919050565b5f67ffffffffffffffff821115610446576104456103b4565b5b61044f826103a4565b9050602081019050919050565b5f5b8381101561047957808201518184015260208101905061045e565b5f8484015250505050565b5f6104966104918461042c565b610412565b9050828152602081018484840111156104b2576104b16103a0565b5b6104bd84828561045c565b509392505050565b5f82601f8301126104d9576104d861039c565b5b81516104e9848260208601610484565b91505092915050565b5f80604083850312156105085761050761033a565b5b5f61051585828601610388565b925050602083015167ffffffffffffffff8111156105365761053561033e565b5b610542858286016104c5565b9150509250929050565b61055581610361565b82525050565b5f60208201905061056e5f83018461054c565b92915050565b5f81519050919050565b5f81905092915050565b5f61059282610574565b61059c818561057e565b93506105ac81856020860161045c565b80840191505092915050565b5f6105c38284610588565b915081905092915050565b60d4806105da5f395ff3fe6080604052600a600c565b005b60186014601a565b6026565b565b5f60216044565b905090565b365f80375f80365f845af43d5f803e805f81146040573d5ff35b3d5ffd5b5f606e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6095565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81905091905056fea26469706673582212204445ca1d654fe96658df00412cf9c7bcb1fdfaf66f39f4eb3c6a802907e7966864736f6c63430008150033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x6AE CODESIZE SUB DUP1 PUSH2 0x6AE DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x35 DUP3 DUP3 PUSH2 0x3C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x5CE JUMP JUMPDEST PUSH2 0x4B DUP3 PUSH2 0xC0 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 PUSH0 DUP2 MLOAD GT ISZERO PUSH2 0xAD JUMPI PUSH2 0xA7 DUP3 DUP3 PUSH2 0x18F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0xBC JUMP JUMPDEST PUSH2 0xBB PUSH2 0x215 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x11B JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x112 SWAP2 SWAP1 PUSH2 0x55B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x14D PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH0 SHL PUSH2 0x251 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH0 ADD PUSH0 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 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1B8 SWAP2 SWAP1 PUSH2 0x5B8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1F0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x20B DUP6 DUP4 DUP4 PUSH2 0x25A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLVALUE GT ISZERO PUSH2 0x24F JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x275 JUMPI PUSH2 0x270 DUP3 PUSH2 0x2ED PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x29B JUMPI POP PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x2DD JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP2 SWAP1 PUSH2 0x55B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x2E6 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD GT ISZERO PUSH2 0x2FF JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x36B DUP3 PUSH2 0x342 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x37B DUP2 PUSH2 0x361 JUMP JUMPDEST DUP2 EQ PUSH2 0x385 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x396 DUP2 PUSH2 0x372 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x3EA DUP3 PUSH2 0x3A4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x409 JUMPI PUSH2 0x408 PUSH2 0x3B4 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x41B PUSH2 0x331 JUMP JUMPDEST SWAP1 POP PUSH2 0x427 DUP3 DUP3 PUSH2 0x3E1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x446 JUMPI PUSH2 0x445 PUSH2 0x3B4 JUMP JUMPDEST JUMPDEST PUSH2 0x44F DUP3 PUSH2 0x3A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x479 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x45E JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x496 PUSH2 0x491 DUP5 PUSH2 0x42C JUMP JUMPDEST PUSH2 0x412 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4B2 JUMPI PUSH2 0x4B1 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST PUSH2 0x4BD DUP5 DUP3 DUP6 PUSH2 0x45C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x39C JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x4E9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x484 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x508 JUMPI PUSH2 0x507 PUSH2 0x33A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x515 DUP6 DUP3 DUP7 ADD PUSH2 0x388 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x536 JUMPI PUSH2 0x535 PUSH2 0x33E JUMP JUMPDEST JUMPDEST PUSH2 0x542 DUP6 DUP3 DUP7 ADD PUSH2 0x4C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x555 DUP2 PUSH2 0x361 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x56E PUSH0 DUP4 ADD DUP5 PUSH2 0x54C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x592 DUP3 PUSH2 0x574 JUMP JUMPDEST PUSH2 0x59C DUP2 DUP6 PUSH2 0x57E JUMP JUMPDEST SWAP4 POP PUSH2 0x5AC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x45C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5C3 DUP3 DUP5 PUSH2 0x588 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xD4 DUP1 PUSH2 0x5DA PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x26 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x21 PUSH1 0x44 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 PUSH0 DUP2 EQ PUSH1 0x40 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x6E PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH0 SHL PUSH1 0x95 JUMP JUMPDEST PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO GASLIMIT 0xCA SAR PUSH6 0x4FE96658DF00 COINBASE 0x2C 0xF9 0xC7 0xBC 0xB1 REVERT STATICCALL 0xF6 PUSH16 0x39F4EB3C6A802907E7966864736F6C63 NUMBER STOP ADDMOD ISZERO STOP CALLER ", | |
| "sourceMap": "599:1116:0:-:0;;;1080:133;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1154:52;1184:14;1200:5;1154:29;;;:52;;:::i;:::-;1080:133;;599:1116;;2779:335:1;2870:37;2889:17;2870:18;;;:37;;:::i;:::-;2931:17;2922:27;;;;;;;;;;;;2978:1;2964:4;:11;:15;2960:148;;;2995:53;3024:17;3043:4;2995:28;;;:53;;:::i;:::-;;2960:148;;;3079:18;:16;;;:18;;:::i;:::-;2960:148;2779:335;;:::o;2186:281::-;2296:1;2263:17;:29;;;:34;2259:119;;2349:17;2320:47;;;;;;;;;;;:::i;:::-;;;;;;;;2259:119;2443:17;2387:47;1327:66;2414:19;;2387:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;2186:281;:::o;4106:253:4:-;4189:12;4214;4228:23;4255:6;:19;;4275:4;4255:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4213:67;;;;4297:55;4324:6;4332:7;4341:10;4297:26;;;:55;;:::i;:::-;4290:62;;;;4106:253;;;;:::o;6598:122:1:-;6660:1;6648:9;:13;6644:70;;;6684:19;;;;;;;;;;;;;;6644:70;6598:122::o;1684:190:5:-;1745:21;1854:4;1844:14;;1684:190;;;:::o;4625:582:4:-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;;;:19;;:::i;:::-;4793:408;;;5066:1;5045:10;:17;:22;:49;;;;;5093:1;5071:6;:18;;;:23;5045:49;5041:119;;;5138:6;5121:24;;;;;;;;;;;:::i;:::-;;;;;;;;5041:119;5180:10;5173:17;;;;4793:408;4625:582;;;;;;:::o;5743:516::-;5894:1;5874:10;:17;:21;5870:383;;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;;;;;;;;;;;;;7:75:6;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:246::-;2201:1;2211:113;2225:6;2222:1;2219:13;2211:113;;;2310:1;2305:3;2301:11;2295:18;2291:1;2286:3;2282:11;2275:39;2247:2;2244:1;2240:10;2235:15;;2211:113;;;2358:1;2349:6;2344:3;2340:16;2333:27;2182:184;2120:246;;;:::o;2372:432::-;2460:5;2485:65;2501:48;2542:6;2501:48;:::i;:::-;2485:65;:::i;:::-;2476:74;;2573:6;2566:5;2559:21;2611:4;2604:5;2600:16;2649:3;2640:6;2635:3;2631:16;2628:25;2625:112;;;2656:79;;:::i;:::-;2625:112;2746:52;2791:6;2786:3;2781;2746:52;:::i;:::-;2466:338;2372:432;;;;;:::o;2823:353::-;2889:5;2938:3;2931:4;2923:6;2919:17;2915:27;2905:122;;2946:79;;:::i;:::-;2905:122;3056:6;3050:13;3081:89;3166:3;3158:6;3151:4;3143:6;3139:17;3081:89;:::i;:::-;3072:98;;2895:281;2823:353;;;;:::o;3182:678::-;3270:6;3278;3327:2;3315:9;3306:7;3302:23;3298:32;3295:119;;;3333:79;;:::i;:::-;3295:119;3453:1;3478:64;3534:7;3525:6;3514:9;3510:22;3478:64;:::i;:::-;3468:74;;3424:128;3612:2;3601:9;3597:18;3591:25;3643:18;3635:6;3632:30;3629:117;;;3665:79;;:::i;:::-;3629:117;3770:73;3835:7;3826:6;3815:9;3811:22;3770:73;:::i;:::-;3760:83;;3562:291;3182:678;;;;;:::o;3866:118::-;3953:24;3971:5;3953:24;:::i;:::-;3948:3;3941:37;3866:118;;:::o;3990:222::-;4083:4;4121:2;4110:9;4106:18;4098:26;;4134:71;4202:1;4191:9;4187:17;4178:6;4134:71;:::i;:::-;3990:222;;;;:::o;4218:98::-;4269:6;4303:5;4297:12;4287:22;;4218:98;;;:::o;4322:147::-;4423:11;4460:3;4445:18;;4322:147;;;;:::o;4475:386::-;4579:3;4607:38;4639:5;4607:38;:::i;:::-;4661:88;4742:6;4737:3;4661:88;:::i;:::-;4654:95;;4758:65;4816:6;4811:3;4804:4;4797:5;4793:16;4758:65;:::i;:::-;4848:6;4843:3;4839:16;4832:23;;4583:278;4475:386;;;;:::o;4867:271::-;4997:3;5019:93;5108:3;5099:6;5019:93;:::i;:::-;5012:100;;5129:3;5122:10;;4867:271;;;;:::o;599:1116:0:-;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": { | |
| "@_375": { | |
| "entryPoint": null, | |
| "id": 375, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@_delegate_351": { | |
| "entryPoint": 38, | |
| "id": 351, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@_fallback_367": { | |
| "entryPoint": 12, | |
| "id": 367, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@_implementation_36": { | |
| "entryPoint": 26, | |
| "id": 36, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "@getAddressSlot_671": { | |
| "entryPoint": 149, | |
| "id": 671, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "@getImplementation_98": { | |
| "entryPoint": 68, | |
| "id": 98, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| } | |
| }, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "6080604052600a600c565b005b60186014601a565b6026565b565b5f60216044565b905090565b365f80375f80365f845af43d5f803e805f81146040573d5ff35b3d5ffd5b5f606e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6095565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81905091905056fea26469706673582212204445ca1d654fe96658df00412cf9c7bcb1fdfaf66f39f4eb3c6a802907e7966864736f6c63430008150033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x26 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x21 PUSH1 0x44 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 PUSH0 DUP2 EQ PUSH1 0x40 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x6E PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH0 SHL PUSH1 0x95 JUMP JUMPDEST PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO GASLIMIT 0xCA SAR PUSH6 0x4FE96658DF00 COINBASE 0x2C 0xF9 0xC7 0xBC 0xB1 REVERT STATICCALL 0xF6 PUSH16 0x39F4EB3C6A802907E7966864736F6C63 NUMBER STOP ADDMOD ISZERO STOP CALLER ", | |
| "sourceMap": "599:1116:0:-:0;;;2649:11:2;:9;:11::i;:::-;599:1116:0;2323:83:2;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;1581:132:0:-;1648:7;1674:32;:30;:32::i;:::-;1667:39;;1581:132;:::o;949:895:2:-;1287:14;1284:1;1281;1268:34;1501:1;1498;1482:14;1479:1;1463:14;1456:5;1443:60;1577:16;1574:1;1571;1556:38;1615:6;1687:1;1682:66;;;;1797:16;1794:1;1787:27;1682:66;1717:16;1714:1;1707:27;1957:138:1;2009:7;2035:47;1327:66;2062:19;;2035:26;:47::i;:::-;:53;;;;;;;;;;;;2028:60;;1957:138;:::o;1684:190:5:-;1745:21;1854:4;1844:14;;1684:190;;;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "42400", | |
| "executionCost": "infinite", | |
| "totalCost": "infinite" | |
| }, | |
| "external": { | |
| "": "infinite" | |
| }, | |
| "internal": { | |
| "_implementation()": "2243" | |
| } | |
| }, | |
| "legacyAssembly": { | |
| ".code": [ | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "80" | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "MSTORE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "MLOAD", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "PUSHSIZE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "CODESIZE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "SUB", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "DUP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "PUSHSIZE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "DUP4", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "CODECOPY", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "DUP2", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "DUP2", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "ADD", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "MSTORE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "DUP2", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "ADD", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "SWAP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "SWAP2", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "SWAP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "2" | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1154, | |
| "end": 1206, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "5" | |
| }, | |
| { | |
| "begin": 1184, | |
| "end": 1198, | |
| "name": "DUP3", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1200, | |
| "end": 1205, | |
| "name": "DUP3", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1154, | |
| "end": 1183, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "6" | |
| }, | |
| { | |
| "begin": 1154, | |
| "end": 1183, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 1154, | |
| "end": 1183, | |
| "name": "SHL", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1154, | |
| "end": 1206, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 1154, | |
| "end": 1206, | |
| "name": "SHR", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1154, | |
| "end": 1206, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1154, | |
| "end": 1206, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "5" | |
| }, | |
| { | |
| "begin": 1154, | |
| "end": 1206, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "POP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1080, | |
| "end": 1213, | |
| "name": "POP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "7" | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 2779, | |
| "end": 3114, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "6" | |
| }, | |
| { | |
| "begin": 2779, | |
| "end": 3114, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2870, | |
| "end": 2907, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "9" | |
| }, | |
| { | |
| "begin": 2889, | |
| "end": 2906, | |
| "name": "DUP3", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2870, | |
| "end": 2888, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "10" | |
| }, | |
| { | |
| "begin": 2870, | |
| "end": 2888, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2870, | |
| "end": 2888, | |
| "name": "SHL", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2870, | |
| "end": 2907, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2870, | |
| "end": 2907, | |
| "name": "SHR", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2870, | |
| "end": 2907, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2870, | |
| "end": 2907, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "9" | |
| }, | |
| { | |
| "begin": 2870, | |
| "end": 2907, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2931, | |
| "end": 2948, | |
| "name": "DUP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "AND", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "BC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B" | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "MLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "MLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "DUP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "SWAP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "SUB", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2922, | |
| "end": 2949, | |
| "name": "LOG2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2978, | |
| "end": 2979, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2964, | |
| "end": 2968, | |
| "name": "DUP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2964, | |
| "end": 2975, | |
| "name": "MLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2964, | |
| "end": 2979, | |
| "name": "GT", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2960, | |
| "end": 3108, | |
| "name": "ISZERO", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2960, | |
| "end": 3108, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "11" | |
| }, | |
| { | |
| "begin": 2960, | |
| "end": 3108, | |
| "name": "JUMPI", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2995, | |
| "end": 3048, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "12" | |
| }, | |
| { | |
| "begin": 3024, | |
| "end": 3041, | |
| "name": "DUP3", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 3043, | |
| "end": 3047, | |
| "name": "DUP3", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2995, | |
| "end": 3023, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "13" | |
| }, | |
| { | |
| "begin": 2995, | |
| "end": 3023, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2995, | |
| "end": 3023, | |
| "name": "SHL", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2995, | |
| "end": 3048, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2995, | |
| "end": 3048, | |
| "name": "SHR", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2995, | |
| "end": 3048, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2995, | |
| "end": 3048, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "12" | |
| }, | |
| { | |
| "begin": 2995, | |
| "end": 3048, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2995, | |
| "end": 3048, | |
| "name": "POP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2960, | |
| "end": 3108, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "14" | |
| }, | |
| { | |
| "begin": 2960, | |
| "end": 3108, | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2960, | |
| "end": 3108, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "11" | |
| }, | |
| { | |
| "begin": 2960, | |
| "end": 3108, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 3079, | |
| "end": 3097, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "15" | |
| }, | |
| { | |
| "begin": 3079, | |
| "end": 3095, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "16" | |
| }, | |
| { | |
| "begin": 3079, | |
| "end": 3095, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 3079, | |
| "end": 3095, | |
| "name": "SHL", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 3079, | |
| "end": 3097, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 3079, | |
| "end": 3097, | |
| "name": "SHR", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 3079, | |
| "end": 3097, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 3079, | |
| "end": 3097, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "15" | |
| }, | |
| { | |
| "begin": 3079, | |
| "end": 3097, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2960, | |
| "end": 3108, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "14" | |
| }, | |
| { | |
| "begin": 2960, | |
| "end": 3108, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2779, | |
| "end": 3114, | |
| "name": "POP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2779, | |
| "end": 3114, | |
| "name": "POP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2779, | |
| "end": 3114, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2186, | |
| "end": 2467, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "10" | |
| }, | |
| { | |
| "begin": 2186, | |
| "end": 2467, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2296, | |
| "end": 2297, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2263, | |
| "end": 2280, | |
| "name": "DUP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2263, | |
| "end": 2292, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 2263, | |
| "end": 2292, | |
| "name": "AND", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2263, | |
| "end": 2292, | |
| "name": "EXTCODESIZE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2263, | |
| "end": 2297, | |
| "name": "SUB", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2259, | |
| "end": 2378, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "18" | |
| }, | |
| { | |
| "begin": 2259, | |
| "end": 2378, | |
| "name": "JUMPI", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2349, | |
| "end": 2366, | |
| "name": "DUP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "MLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "4C9C8CE300000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "DUP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "MSTORE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "ADD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "19" | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "SWAP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "19" | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "MLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "DUP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "SWAP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "SUB", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2320, | |
| "end": 2367, | |
| "name": "REVERT", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2259, | |
| "end": 2378, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "18" | |
| }, | |
| { | |
| "begin": 2259, | |
| "end": 2378, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2443, | |
| "end": 2460, | |
| "name": "DUP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2434, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "21" | |
| }, | |
| { | |
| "begin": 1327, | |
| "end": 1393, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC" | |
| }, | |
| { | |
| "begin": 2414, | |
| "end": 2433, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2414, | |
| "end": 2433, | |
| "name": "SHL", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2413, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "22" | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2413, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2413, | |
| "name": "SHL", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2434, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2434, | |
| "name": "SHR", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2434, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2434, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "21" | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2434, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2440, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2440, | |
| "name": "ADD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2440, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "100" | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "EXP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "DUP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "SLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "DUP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "MUL", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "NOT", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "AND", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "DUP4", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "AND", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "MUL", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "OR", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "SSTORE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2387, | |
| "end": 2460, | |
| "name": "POP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2186, | |
| "end": 2467, | |
| "name": "POP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2186, | |
| "end": 2467, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 4106, | |
| "end": 4359, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "13" | |
| }, | |
| { | |
| "begin": 4106, | |
| "end": 4359, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4189, | |
| "end": 4201, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "60" | |
| }, | |
| { | |
| "begin": 4214, | |
| "end": 4226, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 4228, | |
| "end": 4251, | |
| "name": "DUP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4261, | |
| "name": "DUP5", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4274, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4274, | |
| "name": "AND", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4275, | |
| "end": 4279, | |
| "name": "DUP5", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "24" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "SWAP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "SWAP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "25" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "24" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "DUP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "DUP4", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "SUB", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "DUP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "DUP6", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "GAS", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "DELEGATECALL", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "SWAP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "RETURNDATASIZE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "DUP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "DUP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "EQ", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "28" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "JUMPI", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "SWAP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "1F" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "NOT", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "3F" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "RETURNDATASIZE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "ADD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "AND", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "DUP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "ADD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "MSTORE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "RETURNDATASIZE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "DUP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "MSTORE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "RETURNDATASIZE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "DUP5", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "ADD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "RETURNDATACOPY", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "27" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "JUMP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "28" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "60" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "SWAP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "27" | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4255, | |
| "end": 4280, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4213, | |
| "end": 4280, | |
| "name": "SWAP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4213, | |
| "end": 4280, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4213, | |
| "end": 4280, | |
| "name": "SWAP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4213, | |
| "end": 4280, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4297, | |
| "end": 4352, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "29" | |
| }, | |
| { | |
| "begin": 4324, | |
| "end": 4330, | |
| "name": "DUP6", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4332, | |
| "end": 4339, | |
| "name": "DUP4", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4341, | |
| "end": 4351, | |
| "name": "DUP4", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4297, | |
| "end": 4323, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "30" | |
| }, | |
| { | |
| "begin": 4297, | |
| "end": 4323, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 4297, | |
| "end": 4323, | |
| "name": "SHL", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4297, | |
| "end": 4352, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 4297, | |
| "end": 4352, | |
| "name": "SHR", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4297, | |
| "end": 4352, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4297, | |
| "end": 4352, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "29" | |
| }, | |
| { | |
| "begin": 4297, | |
| "end": 4352, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4290, | |
| "end": 4352, | |
| "name": "SWAP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4290, | |
| "end": 4352, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4290, | |
| "end": 4352, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4290, | |
| "end": 4352, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4106, | |
| "end": 4359, | |
| "name": "SWAP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4106, | |
| "end": 4359, | |
| "name": "SWAP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4106, | |
| "end": 4359, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4106, | |
| "end": 4359, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4106, | |
| "end": 4359, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6598, | |
| "end": 6720, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "16" | |
| }, | |
| { | |
| "begin": 6598, | |
| "end": 6720, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6660, | |
| "end": 6661, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 6648, | |
| "end": 6657, | |
| "name": "CALLVALUE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6648, | |
| "end": 6661, | |
| "name": "GT", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6644, | |
| "end": 6714, | |
| "name": "ISZERO", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6644, | |
| "end": 6714, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "32" | |
| }, | |
| { | |
| "begin": 6644, | |
| "end": 6714, | |
| "name": "JUMPI", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "MLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "B398979F00000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "DUP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "MSTORE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "ADD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "MLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "DUP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "SWAP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "SUB", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6684, | |
| "end": 6703, | |
| "name": "REVERT", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6644, | |
| "end": 6714, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "32" | |
| }, | |
| { | |
| "begin": 6644, | |
| "end": 6714, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 6598, | |
| "end": 6720, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "name": "tag", | |
| "source": 5, | |
| "value": "22" | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "name": "JUMPDEST", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1745, | |
| "end": 1766, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1854, | |
| "end": 1858, | |
| "name": "DUP2", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1844, | |
| "end": 1858, | |
| "name": "SWAP1", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1844, | |
| "end": 1858, | |
| "name": "POP", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "name": "SWAP2", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "name": "SWAP1", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "name": "POP", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 4625, | |
| "end": 5207, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "30" | |
| }, | |
| { | |
| "begin": 4625, | |
| "end": 5207, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4769, | |
| "end": 4781, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "60" | |
| }, | |
| { | |
| "begin": 4798, | |
| "end": 4805, | |
| "name": "DUP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4793, | |
| "end": 5201, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "35" | |
| }, | |
| { | |
| "begin": 4793, | |
| "end": 5201, | |
| "name": "JUMPI", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4821, | |
| "end": 4840, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "36" | |
| }, | |
| { | |
| "begin": 4829, | |
| "end": 4839, | |
| "name": "DUP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4821, | |
| "end": 4828, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "37" | |
| }, | |
| { | |
| "begin": 4821, | |
| "end": 4828, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 4821, | |
| "end": 4828, | |
| "name": "SHL", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4821, | |
| "end": 4840, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 4821, | |
| "end": 4840, | |
| "name": "SHR", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4821, | |
| "end": 4840, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4821, | |
| "end": 4840, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "36" | |
| }, | |
| { | |
| "begin": 4821, | |
| "end": 4840, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4793, | |
| "end": 5201, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "38" | |
| }, | |
| { | |
| "begin": 4793, | |
| "end": 5201, | |
| "name": "JUMP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4793, | |
| "end": 5201, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "35" | |
| }, | |
| { | |
| "begin": 4793, | |
| "end": 5201, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5066, | |
| "end": 5067, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 5045, | |
| "end": 5055, | |
| "name": "DUP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5045, | |
| "end": 5062, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5045, | |
| "end": 5067, | |
| "name": "EQ", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5045, | |
| "end": 5094, | |
| "name": "DUP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5045, | |
| "end": 5094, | |
| "name": "ISZERO", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5045, | |
| "end": 5094, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "39" | |
| }, | |
| { | |
| "begin": 5045, | |
| "end": 5094, | |
| "name": "JUMPI", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5045, | |
| "end": 5094, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5093, | |
| "end": 5094, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 5071, | |
| "end": 5077, | |
| "name": "DUP5", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5071, | |
| "end": 5089, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 5071, | |
| "end": 5089, | |
| "name": "AND", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5071, | |
| "end": 5089, | |
| "name": "EXTCODESIZE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5071, | |
| "end": 5094, | |
| "name": "EQ", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5045, | |
| "end": 5094, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "39" | |
| }, | |
| { | |
| "begin": 5045, | |
| "end": 5094, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5041, | |
| "end": 5160, | |
| "name": "ISZERO", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5041, | |
| "end": 5160, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 5041, | |
| "end": 5160, | |
| "name": "JUMPI", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5138, | |
| "end": 5144, | |
| "name": "DUP4", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "9996B31500000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "DUP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "MSTORE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "ADD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "41" | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "SWAP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "SWAP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "41" | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "DUP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "SWAP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "SUB", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "SWAP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5121, | |
| "end": 5145, | |
| "name": "REVERT", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5041, | |
| "end": 5160, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 5041, | |
| "end": 5160, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5180, | |
| "end": 5190, | |
| "name": "DUP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5173, | |
| "end": 5190, | |
| "name": "SWAP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5173, | |
| "end": 5190, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5173, | |
| "end": 5190, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "34" | |
| }, | |
| { | |
| "begin": 5173, | |
| "end": 5190, | |
| "name": "JUMP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4793, | |
| "end": 5201, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "38" | |
| }, | |
| { | |
| "begin": 4793, | |
| "end": 5201, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4625, | |
| "end": 5207, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "34" | |
| }, | |
| { | |
| "begin": 4625, | |
| "end": 5207, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4625, | |
| "end": 5207, | |
| "name": "SWAP4", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4625, | |
| "end": 5207, | |
| "name": "SWAP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4625, | |
| "end": 5207, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4625, | |
| "end": 5207, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4625, | |
| "end": 5207, | |
| "name": "POP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 4625, | |
| "end": 5207, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5743, | |
| "end": 6259, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "37" | |
| }, | |
| { | |
| "begin": 5743, | |
| "end": 6259, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5894, | |
| "end": 5895, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 5874, | |
| "end": 5884, | |
| "name": "DUP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5874, | |
| "end": 5891, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5874, | |
| "end": 5895, | |
| "name": "GT", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5870, | |
| "end": 6253, | |
| "name": "ISZERO", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5870, | |
| "end": 6253, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "43" | |
| }, | |
| { | |
| "begin": 5870, | |
| "end": 6253, | |
| "name": "JUMPI", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6102, | |
| "end": 6112, | |
| "name": "DUP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6096, | |
| "end": 6113, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6158, | |
| "end": 6173, | |
| "name": "DUP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6145, | |
| "end": 6155, | |
| "name": "DUP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6141, | |
| "end": 6143, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 6137, | |
| "end": 6156, | |
| "name": "ADD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6130, | |
| "end": 6174, | |
| "name": "REVERT", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 5870, | |
| "end": 6253, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "43" | |
| }, | |
| { | |
| "begin": 5870, | |
| "end": 6253, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "1425EA4200000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "DUP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "MSTORE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "ADD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "DUP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "SWAP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "SUB", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "SWAP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 6225, | |
| "end": 6242, | |
| "name": "REVERT", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 7, | |
| "end": 82, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "45" | |
| }, | |
| { | |
| "begin": 7, | |
| "end": 82, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 40, | |
| "end": 46, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 73, | |
| "end": 75, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 67, | |
| "end": 76, | |
| "name": "MLOAD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 57, | |
| "end": 76, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 57, | |
| "end": 76, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 7, | |
| "end": 82, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 7, | |
| "end": 82, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 88, | |
| "end": 205, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "46" | |
| }, | |
| { | |
| "begin": 88, | |
| "end": 205, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 197, | |
| "end": 198, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 194, | |
| "end": 195, | |
| "name": "DUP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 187, | |
| "end": 199, | |
| "name": "REVERT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 211, | |
| "end": 328, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "47" | |
| }, | |
| { | |
| "begin": 211, | |
| "end": 328, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 320, | |
| "end": 321, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 317, | |
| "end": 318, | |
| "name": "DUP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 310, | |
| "end": 322, | |
| "name": "REVERT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 334, | |
| "end": 460, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "48" | |
| }, | |
| { | |
| "begin": 334, | |
| "end": 460, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 371, | |
| "end": 378, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 411, | |
| "end": 453, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 404, | |
| "end": 409, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 400, | |
| "end": 454, | |
| "name": "AND", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 389, | |
| "end": 454, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 389, | |
| "end": 454, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 334, | |
| "end": 460, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 334, | |
| "end": 460, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 334, | |
| "end": 460, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 334, | |
| "end": 460, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 466, | |
| "end": 562, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "49" | |
| }, | |
| { | |
| "begin": 466, | |
| "end": 562, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 503, | |
| "end": 510, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 532, | |
| "end": 556, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "72" | |
| }, | |
| { | |
| "begin": 550, | |
| "end": 555, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 532, | |
| "end": 556, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "48" | |
| }, | |
| { | |
| "begin": 532, | |
| "end": 556, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 532, | |
| "end": 556, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "72" | |
| }, | |
| { | |
| "begin": 532, | |
| "end": 556, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 521, | |
| "end": 556, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 521, | |
| "end": 556, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 466, | |
| "end": 562, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 466, | |
| "end": 562, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 466, | |
| "end": 562, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 466, | |
| "end": 562, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 568, | |
| "end": 690, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "50" | |
| }, | |
| { | |
| "begin": 568, | |
| "end": 690, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 641, | |
| "end": 665, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "74" | |
| }, | |
| { | |
| "begin": 659, | |
| "end": 664, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 641, | |
| "end": 665, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "49" | |
| }, | |
| { | |
| "begin": 641, | |
| "end": 665, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 641, | |
| "end": 665, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "74" | |
| }, | |
| { | |
| "begin": 641, | |
| "end": 665, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 634, | |
| "end": 639, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 631, | |
| "end": 666, | |
| "name": "EQ", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 621, | |
| "end": 684, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "75" | |
| }, | |
| { | |
| "begin": 621, | |
| "end": 684, | |
| "name": "JUMPI", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 680, | |
| "end": 681, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 677, | |
| "end": 678, | |
| "name": "DUP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 670, | |
| "end": 682, | |
| "name": "REVERT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 621, | |
| "end": 684, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "75" | |
| }, | |
| { | |
| "begin": 621, | |
| "end": 684, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 568, | |
| "end": 690, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 568, | |
| "end": 690, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 696, | |
| "end": 839, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "51" | |
| }, | |
| { | |
| "begin": 696, | |
| "end": 839, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 753, | |
| "end": 758, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 784, | |
| "end": 790, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 778, | |
| "end": 791, | |
| "name": "MLOAD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 769, | |
| "end": 791, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 769, | |
| "end": 791, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 800, | |
| "end": 833, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "77" | |
| }, | |
| { | |
| "begin": 827, | |
| "end": 832, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 800, | |
| "end": 833, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "50" | |
| }, | |
| { | |
| "begin": 800, | |
| "end": 833, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 800, | |
| "end": 833, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "77" | |
| }, | |
| { | |
| "begin": 800, | |
| "end": 833, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 696, | |
| "end": 839, | |
| "name": "SWAP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 696, | |
| "end": 839, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 696, | |
| "end": 839, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 696, | |
| "end": 839, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 696, | |
| "end": 839, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 845, | |
| "end": 962, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "52" | |
| }, | |
| { | |
| "begin": 845, | |
| "end": 962, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 954, | |
| "end": 955, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 951, | |
| "end": 952, | |
| "name": "DUP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 944, | |
| "end": 956, | |
| "name": "REVERT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 968, | |
| "end": 1085, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "53" | |
| }, | |
| { | |
| "begin": 968, | |
| "end": 1085, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1077, | |
| "end": 1078, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1074, | |
| "end": 1075, | |
| "name": "DUP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1067, | |
| "end": 1079, | |
| "name": "REVERT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1091, | |
| "end": 1193, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "54" | |
| }, | |
| { | |
| "begin": 1091, | |
| "end": 1193, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1132, | |
| "end": 1138, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1183, | |
| "end": 1185, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "1F" | |
| }, | |
| { | |
| "begin": 1179, | |
| "end": 1186, | |
| "name": "NOT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1174, | |
| "end": 1176, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "1F" | |
| }, | |
| { | |
| "begin": 1167, | |
| "end": 1172, | |
| "name": "DUP4", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1163, | |
| "end": 1177, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1159, | |
| "end": 1187, | |
| "name": "AND", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1149, | |
| "end": 1187, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1149, | |
| "end": 1187, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1091, | |
| "end": 1193, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1091, | |
| "end": 1193, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1091, | |
| "end": 1193, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1091, | |
| "end": 1193, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1199, | |
| "end": 1379, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "55" | |
| }, | |
| { | |
| "begin": 1199, | |
| "end": 1379, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1247, | |
| "end": 1324, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "4E487B7100000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 1244, | |
| "end": 1245, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1237, | |
| "end": 1325, | |
| "name": "MSTORE", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1344, | |
| "end": 1348, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "41" | |
| }, | |
| { | |
| "begin": 1341, | |
| "end": 1342, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 1334, | |
| "end": 1349, | |
| "name": "MSTORE", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1368, | |
| "end": 1372, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "24" | |
| }, | |
| { | |
| "begin": 1365, | |
| "end": 1366, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1358, | |
| "end": 1373, | |
| "name": "REVERT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1385, | |
| "end": 1666, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "56" | |
| }, | |
| { | |
| "begin": 1385, | |
| "end": 1666, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1468, | |
| "end": 1495, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "83" | |
| }, | |
| { | |
| "begin": 1490, | |
| "end": 1494, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1468, | |
| "end": 1495, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "54" | |
| }, | |
| { | |
| "begin": 1468, | |
| "end": 1495, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1468, | |
| "end": 1495, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "83" | |
| }, | |
| { | |
| "begin": 1468, | |
| "end": 1495, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1460, | |
| "end": 1466, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1456, | |
| "end": 1496, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1598, | |
| "end": 1604, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1586, | |
| "end": 1596, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1583, | |
| "end": 1605, | |
| "name": "LT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1562, | |
| "end": 1580, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "FFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 1550, | |
| "end": 1560, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1547, | |
| "end": 1581, | |
| "name": "GT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1544, | |
| "end": 1606, | |
| "name": "OR", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1541, | |
| "end": 1629, | |
| "name": "ISZERO", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1541, | |
| "end": 1629, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "84" | |
| }, | |
| { | |
| "begin": 1541, | |
| "end": 1629, | |
| "name": "JUMPI", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1609, | |
| "end": 1627, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "85" | |
| }, | |
| { | |
| "begin": 1609, | |
| "end": 1627, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "55" | |
| }, | |
| { | |
| "begin": 1609, | |
| "end": 1627, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1609, | |
| "end": 1627, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "85" | |
| }, | |
| { | |
| "begin": 1609, | |
| "end": 1627, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1541, | |
| "end": 1629, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "84" | |
| }, | |
| { | |
| "begin": 1541, | |
| "end": 1629, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1649, | |
| "end": 1659, | |
| "name": "DUP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1645, | |
| "end": 1647, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 1638, | |
| "end": 1660, | |
| "name": "MSTORE", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1428, | |
| "end": 1666, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1385, | |
| "end": 1666, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1385, | |
| "end": 1666, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1385, | |
| "end": 1666, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1672, | |
| "end": 1801, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "57" | |
| }, | |
| { | |
| "begin": 1672, | |
| "end": 1801, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1706, | |
| "end": 1712, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1733, | |
| "end": 1753, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "87" | |
| }, | |
| { | |
| "begin": 1733, | |
| "end": 1753, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "45" | |
| }, | |
| { | |
| "begin": 1733, | |
| "end": 1753, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1733, | |
| "end": 1753, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "87" | |
| }, | |
| { | |
| "begin": 1733, | |
| "end": 1753, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1723, | |
| "end": 1753, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1723, | |
| "end": 1753, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1762, | |
| "end": 1795, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "88" | |
| }, | |
| { | |
| "begin": 1790, | |
| "end": 1794, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1782, | |
| "end": 1788, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1762, | |
| "end": 1795, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "56" | |
| }, | |
| { | |
| "begin": 1762, | |
| "end": 1795, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1762, | |
| "end": 1795, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "88" | |
| }, | |
| { | |
| "begin": 1762, | |
| "end": 1795, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1672, | |
| "end": 1801, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1672, | |
| "end": 1801, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1672, | |
| "end": 1801, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1672, | |
| "end": 1801, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1807, | |
| "end": 2114, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "58" | |
| }, | |
| { | |
| "begin": 1807, | |
| "end": 2114, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1868, | |
| "end": 1872, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1958, | |
| "end": 1976, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "FFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 1950, | |
| "end": 1956, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1947, | |
| "end": 1977, | |
| "name": "GT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1944, | |
| "end": 2000, | |
| "name": "ISZERO", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1944, | |
| "end": 2000, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "90" | |
| }, | |
| { | |
| "begin": 1944, | |
| "end": 2000, | |
| "name": "JUMPI", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1980, | |
| "end": 1998, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "91" | |
| }, | |
| { | |
| "begin": 1980, | |
| "end": 1998, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "55" | |
| }, | |
| { | |
| "begin": 1980, | |
| "end": 1998, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1980, | |
| "end": 1998, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "91" | |
| }, | |
| { | |
| "begin": 1980, | |
| "end": 1998, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1944, | |
| "end": 2000, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "90" | |
| }, | |
| { | |
| "begin": 1944, | |
| "end": 2000, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2018, | |
| "end": 2047, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "92" | |
| }, | |
| { | |
| "begin": 2040, | |
| "end": 2046, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2018, | |
| "end": 2047, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "54" | |
| }, | |
| { | |
| "begin": 2018, | |
| "end": 2047, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2018, | |
| "end": 2047, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "92" | |
| }, | |
| { | |
| "begin": 2018, | |
| "end": 2047, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2010, | |
| "end": 2047, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2010, | |
| "end": 2047, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2102, | |
| "end": 2106, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2096, | |
| "end": 2100, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2092, | |
| "end": 2107, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2084, | |
| "end": 2107, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2084, | |
| "end": 2107, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1807, | |
| "end": 2114, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1807, | |
| "end": 2114, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1807, | |
| "end": 2114, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 1807, | |
| "end": 2114, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2120, | |
| "end": 2366, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "59" | |
| }, | |
| { | |
| "begin": 2120, | |
| "end": 2366, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2201, | |
| "end": 2202, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2211, | |
| "end": 2324, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "94" | |
| }, | |
| { | |
| "begin": 2211, | |
| "end": 2324, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2225, | |
| "end": 2231, | |
| "name": "DUP4", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2222, | |
| "end": 2223, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2219, | |
| "end": 2232, | |
| "name": "LT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2211, | |
| "end": 2324, | |
| "name": "ISZERO", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2211, | |
| "end": 2324, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "96" | |
| }, | |
| { | |
| "begin": 2211, | |
| "end": 2324, | |
| "name": "JUMPI", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2310, | |
| "end": 2311, | |
| "name": "DUP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2305, | |
| "end": 2308, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2301, | |
| "end": 2312, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2295, | |
| "end": 2313, | |
| "name": "MLOAD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2291, | |
| "end": 2292, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2286, | |
| "end": 2289, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2282, | |
| "end": 2293, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2275, | |
| "end": 2314, | |
| "name": "MSTORE", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2247, | |
| "end": 2249, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2244, | |
| "end": 2245, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2240, | |
| "end": 2250, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2235, | |
| "end": 2250, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2235, | |
| "end": 2250, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2211, | |
| "end": 2324, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "94" | |
| }, | |
| { | |
| "begin": 2211, | |
| "end": 2324, | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2211, | |
| "end": 2324, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "96" | |
| }, | |
| { | |
| "begin": 2211, | |
| "end": 2324, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2358, | |
| "end": 2359, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2349, | |
| "end": 2355, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2344, | |
| "end": 2347, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2340, | |
| "end": 2356, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2333, | |
| "end": 2360, | |
| "name": "MSTORE", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2182, | |
| "end": 2366, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2120, | |
| "end": 2366, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2120, | |
| "end": 2366, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2120, | |
| "end": 2366, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2120, | |
| "end": 2366, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2372, | |
| "end": 2804, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "60" | |
| }, | |
| { | |
| "begin": 2372, | |
| "end": 2804, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2460, | |
| "end": 2465, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2485, | |
| "end": 2550, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "98" | |
| }, | |
| { | |
| "begin": 2501, | |
| "end": 2549, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "99" | |
| }, | |
| { | |
| "begin": 2542, | |
| "end": 2548, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2501, | |
| "end": 2549, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "58" | |
| }, | |
| { | |
| "begin": 2501, | |
| "end": 2549, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2501, | |
| "end": 2549, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "99" | |
| }, | |
| { | |
| "begin": 2501, | |
| "end": 2549, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2485, | |
| "end": 2550, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "57" | |
| }, | |
| { | |
| "begin": 2485, | |
| "end": 2550, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2485, | |
| "end": 2550, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "98" | |
| }, | |
| { | |
| "begin": 2485, | |
| "end": 2550, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2476, | |
| "end": 2550, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2476, | |
| "end": 2550, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2573, | |
| "end": 2579, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2566, | |
| "end": 2571, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2559, | |
| "end": 2580, | |
| "name": "MSTORE", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2611, | |
| "end": 2615, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2604, | |
| "end": 2609, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2600, | |
| "end": 2616, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2649, | |
| "end": 2652, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2640, | |
| "end": 2646, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2635, | |
| "end": 2638, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2631, | |
| "end": 2647, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2628, | |
| "end": 2653, | |
| "name": "GT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2625, | |
| "end": 2737, | |
| "name": "ISZERO", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2625, | |
| "end": 2737, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "100" | |
| }, | |
| { | |
| "begin": 2625, | |
| "end": 2737, | |
| "name": "JUMPI", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2656, | |
| "end": 2735, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "101" | |
| }, | |
| { | |
| "begin": 2656, | |
| "end": 2735, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "53" | |
| }, | |
| { | |
| "begin": 2656, | |
| "end": 2735, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2656, | |
| "end": 2735, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "101" | |
| }, | |
| { | |
| "begin": 2656, | |
| "end": 2735, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2625, | |
| "end": 2737, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "100" | |
| }, | |
| { | |
| "begin": 2625, | |
| "end": 2737, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2746, | |
| "end": 2798, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "102" | |
| }, | |
| { | |
| "begin": 2791, | |
| "end": 2797, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2786, | |
| "end": 2789, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2781, | |
| "end": 2784, | |
| "name": "DUP6", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2746, | |
| "end": 2798, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "59" | |
| }, | |
| { | |
| "begin": 2746, | |
| "end": 2798, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2746, | |
| "end": 2798, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "102" | |
| }, | |
| { | |
| "begin": 2746, | |
| "end": 2798, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2466, | |
| "end": 2804, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2372, | |
| "end": 2804, | |
| "name": "SWAP4", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2372, | |
| "end": 2804, | |
| "name": "SWAP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2372, | |
| "end": 2804, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2372, | |
| "end": 2804, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2372, | |
| "end": 2804, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2372, | |
| "end": 2804, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2823, | |
| "end": 3176, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "61" | |
| }, | |
| { | |
| "begin": 2823, | |
| "end": 3176, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2889, | |
| "end": 2894, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2938, | |
| "end": 2941, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2931, | |
| "end": 2935, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "1F" | |
| }, | |
| { | |
| "begin": 2923, | |
| "end": 2929, | |
| "name": "DUP4", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2919, | |
| "end": 2936, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2915, | |
| "end": 2942, | |
| "name": "SLT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2905, | |
| "end": 3027, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "104" | |
| }, | |
| { | |
| "begin": 2905, | |
| "end": 3027, | |
| "name": "JUMPI", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2946, | |
| "end": 3025, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "105" | |
| }, | |
| { | |
| "begin": 2946, | |
| "end": 3025, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "52" | |
| }, | |
| { | |
| "begin": 2946, | |
| "end": 3025, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2946, | |
| "end": 3025, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "105" | |
| }, | |
| { | |
| "begin": 2946, | |
| "end": 3025, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2905, | |
| "end": 3027, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "104" | |
| }, | |
| { | |
| "begin": 2905, | |
| "end": 3027, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3056, | |
| "end": 3062, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3050, | |
| "end": 3063, | |
| "name": "MLOAD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3081, | |
| "end": 3170, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "106" | |
| }, | |
| { | |
| "begin": 3166, | |
| "end": 3169, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3158, | |
| "end": 3164, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3151, | |
| "end": 3155, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 3143, | |
| "end": 3149, | |
| "name": "DUP7", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3139, | |
| "end": 3156, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3081, | |
| "end": 3170, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "60" | |
| }, | |
| { | |
| "begin": 3081, | |
| "end": 3170, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3081, | |
| "end": 3170, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "106" | |
| }, | |
| { | |
| "begin": 3081, | |
| "end": 3170, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3072, | |
| "end": 3170, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3072, | |
| "end": 3170, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2895, | |
| "end": 3176, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2823, | |
| "end": 3176, | |
| "name": "SWAP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2823, | |
| "end": 3176, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2823, | |
| "end": 3176, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2823, | |
| "end": 3176, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 2823, | |
| "end": 3176, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3182, | |
| "end": 3860, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "2" | |
| }, | |
| { | |
| "begin": 3182, | |
| "end": 3860, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3270, | |
| "end": 3276, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 3278, | |
| "end": 3284, | |
| "name": "DUP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3327, | |
| "end": 3329, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 3315, | |
| "end": 3324, | |
| "name": "DUP4", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3306, | |
| "end": 3313, | |
| "name": "DUP6", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3302, | |
| "end": 3325, | |
| "name": "SUB", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3298, | |
| "end": 3330, | |
| "name": "SLT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3295, | |
| "end": 3414, | |
| "name": "ISZERO", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3295, | |
| "end": 3414, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "108" | |
| }, | |
| { | |
| "begin": 3295, | |
| "end": 3414, | |
| "name": "JUMPI", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3333, | |
| "end": 3412, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "109" | |
| }, | |
| { | |
| "begin": 3333, | |
| "end": 3412, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "46" | |
| }, | |
| { | |
| "begin": 3333, | |
| "end": 3412, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3333, | |
| "end": 3412, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "109" | |
| }, | |
| { | |
| "begin": 3333, | |
| "end": 3412, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3295, | |
| "end": 3414, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "108" | |
| }, | |
| { | |
| "begin": 3295, | |
| "end": 3414, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3453, | |
| "end": 3454, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 3478, | |
| "end": 3542, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "110" | |
| }, | |
| { | |
| "begin": 3534, | |
| "end": 3541, | |
| "name": "DUP6", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3525, | |
| "end": 3531, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3514, | |
| "end": 3523, | |
| "name": "DUP7", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3510, | |
| "end": 3532, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3478, | |
| "end": 3542, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "51" | |
| }, | |
| { | |
| "begin": 3478, | |
| "end": 3542, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3478, | |
| "end": 3542, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "110" | |
| }, | |
| { | |
| "begin": 3478, | |
| "end": 3542, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3468, | |
| "end": 3542, | |
| "name": "SWAP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3468, | |
| "end": 3542, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3424, | |
| "end": 3552, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3612, | |
| "end": 3614, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 3601, | |
| "end": 3610, | |
| "name": "DUP4", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3597, | |
| "end": 3615, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3591, | |
| "end": 3616, | |
| "name": "MLOAD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3643, | |
| "end": 3661, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "FFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 3635, | |
| "end": 3641, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3632, | |
| "end": 3662, | |
| "name": "GT", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3629, | |
| "end": 3746, | |
| "name": "ISZERO", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3629, | |
| "end": 3746, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "111" | |
| }, | |
| { | |
| "begin": 3629, | |
| "end": 3746, | |
| "name": "JUMPI", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3665, | |
| "end": 3744, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "112" | |
| }, | |
| { | |
| "begin": 3665, | |
| "end": 3744, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "47" | |
| }, | |
| { | |
| "begin": 3665, | |
| "end": 3744, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3665, | |
| "end": 3744, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "112" | |
| }, | |
| { | |
| "begin": 3665, | |
| "end": 3744, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3629, | |
| "end": 3746, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "111" | |
| }, | |
| { | |
| "begin": 3629, | |
| "end": 3746, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3770, | |
| "end": 3843, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "113" | |
| }, | |
| { | |
| "begin": 3835, | |
| "end": 3842, | |
| "name": "DUP6", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3826, | |
| "end": 3832, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3815, | |
| "end": 3824, | |
| "name": "DUP7", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3811, | |
| "end": 3833, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3770, | |
| "end": 3843, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "61" | |
| }, | |
| { | |
| "begin": 3770, | |
| "end": 3843, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3770, | |
| "end": 3843, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "113" | |
| }, | |
| { | |
| "begin": 3770, | |
| "end": 3843, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3760, | |
| "end": 3843, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3760, | |
| "end": 3843, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3562, | |
| "end": 3853, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3182, | |
| "end": 3860, | |
| "name": "SWAP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3182, | |
| "end": 3860, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3182, | |
| "end": 3860, | |
| "name": "SWAP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3182, | |
| "end": 3860, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3182, | |
| "end": 3860, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3182, | |
| "end": 3860, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3866, | |
| "end": 3984, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "62" | |
| }, | |
| { | |
| "begin": 3866, | |
| "end": 3984, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3953, | |
| "end": 3977, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "115" | |
| }, | |
| { | |
| "begin": 3971, | |
| "end": 3976, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3953, | |
| "end": 3977, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "49" | |
| }, | |
| { | |
| "begin": 3953, | |
| "end": 3977, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3953, | |
| "end": 3977, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "115" | |
| }, | |
| { | |
| "begin": 3953, | |
| "end": 3977, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3948, | |
| "end": 3951, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3941, | |
| "end": 3978, | |
| "name": "MSTORE", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3866, | |
| "end": 3984, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3866, | |
| "end": 3984, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3866, | |
| "end": 3984, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3990, | |
| "end": 4212, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 3990, | |
| "end": 4212, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4083, | |
| "end": 4087, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 4121, | |
| "end": 4123, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 4110, | |
| "end": 4119, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4106, | |
| "end": 4124, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4098, | |
| "end": 4124, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4098, | |
| "end": 4124, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4134, | |
| "end": 4205, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "117" | |
| }, | |
| { | |
| "begin": 4202, | |
| "end": 4203, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 4191, | |
| "end": 4200, | |
| "name": "DUP4", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4187, | |
| "end": 4204, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4178, | |
| "end": 4184, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4134, | |
| "end": 4205, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "62" | |
| }, | |
| { | |
| "begin": 4134, | |
| "end": 4205, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4134, | |
| "end": 4205, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "117" | |
| }, | |
| { | |
| "begin": 4134, | |
| "end": 4205, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3990, | |
| "end": 4212, | |
| "name": "SWAP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3990, | |
| "end": 4212, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3990, | |
| "end": 4212, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3990, | |
| "end": 4212, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 3990, | |
| "end": 4212, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4218, | |
| "end": 4316, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "63" | |
| }, | |
| { | |
| "begin": 4218, | |
| "end": 4316, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4269, | |
| "end": 4275, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 4303, | |
| "end": 4308, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4297, | |
| "end": 4309, | |
| "name": "MLOAD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4287, | |
| "end": 4309, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4287, | |
| "end": 4309, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4218, | |
| "end": 4316, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4218, | |
| "end": 4316, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4218, | |
| "end": 4316, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4218, | |
| "end": 4316, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4322, | |
| "end": 4469, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "64" | |
| }, | |
| { | |
| "begin": 4322, | |
| "end": 4469, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4423, | |
| "end": 4434, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 4460, | |
| "end": 4463, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4445, | |
| "end": 4463, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4445, | |
| "end": 4463, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4322, | |
| "end": 4469, | |
| "name": "SWAP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4322, | |
| "end": 4469, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4322, | |
| "end": 4469, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4322, | |
| "end": 4469, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4322, | |
| "end": 4469, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4475, | |
| "end": 4861, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "65" | |
| }, | |
| { | |
| "begin": 4475, | |
| "end": 4861, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4579, | |
| "end": 4582, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 4607, | |
| "end": 4645, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "121" | |
| }, | |
| { | |
| "begin": 4639, | |
| "end": 4644, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4607, | |
| "end": 4645, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "63" | |
| }, | |
| { | |
| "begin": 4607, | |
| "end": 4645, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4607, | |
| "end": 4645, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "121" | |
| }, | |
| { | |
| "begin": 4607, | |
| "end": 4645, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4661, | |
| "end": 4749, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "122" | |
| }, | |
| { | |
| "begin": 4742, | |
| "end": 4748, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4737, | |
| "end": 4740, | |
| "name": "DUP6", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4661, | |
| "end": 4749, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "64" | |
| }, | |
| { | |
| "begin": 4661, | |
| "end": 4749, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4661, | |
| "end": 4749, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "122" | |
| }, | |
| { | |
| "begin": 4661, | |
| "end": 4749, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4654, | |
| "end": 4749, | |
| "name": "SWAP4", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4654, | |
| "end": 4749, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4758, | |
| "end": 4823, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "123" | |
| }, | |
| { | |
| "begin": 4816, | |
| "end": 4822, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4811, | |
| "end": 4814, | |
| "name": "DUP6", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4804, | |
| "end": 4808, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 4797, | |
| "end": 4802, | |
| "name": "DUP7", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4793, | |
| "end": 4809, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4758, | |
| "end": 4823, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "59" | |
| }, | |
| { | |
| "begin": 4758, | |
| "end": 4823, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4758, | |
| "end": 4823, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "123" | |
| }, | |
| { | |
| "begin": 4758, | |
| "end": 4823, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4848, | |
| "end": 4854, | |
| "name": "DUP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4843, | |
| "end": 4846, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4839, | |
| "end": 4855, | |
| "name": "ADD", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4832, | |
| "end": 4855, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4832, | |
| "end": 4855, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4583, | |
| "end": 4861, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4475, | |
| "end": 4861, | |
| "name": "SWAP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4475, | |
| "end": 4861, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4475, | |
| "end": 4861, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4475, | |
| "end": 4861, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4475, | |
| "end": 4861, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4867, | |
| "end": 5138, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "25" | |
| }, | |
| { | |
| "begin": 4867, | |
| "end": 5138, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4997, | |
| "end": 5000, | |
| "name": "PUSH", | |
| "source": 6, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 5019, | |
| "end": 5112, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "125" | |
| }, | |
| { | |
| "begin": 5108, | |
| "end": 5111, | |
| "name": "DUP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 5099, | |
| "end": 5105, | |
| "name": "DUP5", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 5019, | |
| "end": 5112, | |
| "name": "PUSH [tag]", | |
| "source": 6, | |
| "value": "65" | |
| }, | |
| { | |
| "begin": 5019, | |
| "end": 5112, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 5019, | |
| "end": 5112, | |
| "name": "tag", | |
| "source": 6, | |
| "value": "125" | |
| }, | |
| { | |
| "begin": 5019, | |
| "end": 5112, | |
| "name": "JUMPDEST", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 5012, | |
| "end": 5112, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 5012, | |
| "end": 5112, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 5129, | |
| "end": 5132, | |
| "name": "DUP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 5122, | |
| "end": 5132, | |
| "name": "SWAP1", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 5122, | |
| "end": 5132, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4867, | |
| "end": 5138, | |
| "name": "SWAP3", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4867, | |
| "end": 5138, | |
| "name": "SWAP2", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4867, | |
| "end": 5138, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4867, | |
| "end": 5138, | |
| "name": "POP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 4867, | |
| "end": 5138, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 6 | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "7" | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "PUSH #[$]", | |
| "source": 0, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "DUP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "PUSH [$]", | |
| "source": 0, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "CODECOPY", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "RETURN", | |
| "source": 0 | |
| } | |
| ], | |
| ".data": { | |
| "0": { | |
| ".auxdata": "a26469706673582212204445ca1d654fe96658df00412cf9c7bcb1fdfaf66f39f4eb3c6a802907e7966864736f6c63430008150033", | |
| ".code": [ | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "80" | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "MSTORE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 2649, | |
| "end": 2660, | |
| "name": "PUSH [tag]", | |
| "source": 2, | |
| "value": "5" | |
| }, | |
| { | |
| "begin": 2649, | |
| "end": 2658, | |
| "name": "PUSH [tag]", | |
| "source": 2, | |
| "value": "6" | |
| }, | |
| { | |
| "begin": 2649, | |
| "end": 2660, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 2649, | |
| "end": 2660, | |
| "name": "tag", | |
| "source": 2, | |
| "value": "5" | |
| }, | |
| { | |
| "begin": 2649, | |
| "end": 2660, | |
| "name": "JUMPDEST", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 599, | |
| "end": 1715, | |
| "name": "STOP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 2323, | |
| "end": 2406, | |
| "name": "tag", | |
| "source": 2, | |
| "value": "6" | |
| }, | |
| { | |
| "begin": 2323, | |
| "end": 2406, | |
| "name": "JUMPDEST", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 2371, | |
| "end": 2399, | |
| "name": "PUSH [tag]", | |
| "source": 2, | |
| "value": "8" | |
| }, | |
| { | |
| "begin": 2381, | |
| "end": 2398, | |
| "name": "PUSH [tag]", | |
| "source": 2, | |
| "value": "9" | |
| }, | |
| { | |
| "begin": 2381, | |
| "end": 2396, | |
| "name": "PUSH [tag]", | |
| "source": 2, | |
| "value": "10" | |
| }, | |
| { | |
| "begin": 2381, | |
| "end": 2398, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 2381, | |
| "end": 2398, | |
| "name": "tag", | |
| "source": 2, | |
| "value": "9" | |
| }, | |
| { | |
| "begin": 2381, | |
| "end": 2398, | |
| "name": "JUMPDEST", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 2371, | |
| "end": 2380, | |
| "name": "PUSH [tag]", | |
| "source": 2, | |
| "value": "11" | |
| }, | |
| { | |
| "begin": 2371, | |
| "end": 2399, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 2371, | |
| "end": 2399, | |
| "name": "tag", | |
| "source": 2, | |
| "value": "8" | |
| }, | |
| { | |
| "begin": 2371, | |
| "end": 2399, | |
| "name": "JUMPDEST", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 2323, | |
| "end": 2406, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1581, | |
| "end": 1713, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "10" | |
| }, | |
| { | |
| "begin": 1581, | |
| "end": 1713, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1648, | |
| "end": 1655, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1674, | |
| "end": 1706, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "13" | |
| }, | |
| { | |
| "begin": 1674, | |
| "end": 1704, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "14" | |
| }, | |
| { | |
| "begin": 1674, | |
| "end": 1706, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1674, | |
| "end": 1706, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "13" | |
| }, | |
| { | |
| "begin": 1674, | |
| "end": 1706, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1667, | |
| "end": 1706, | |
| "name": "SWAP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1667, | |
| "end": 1706, | |
| "name": "POP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1581, | |
| "end": 1713, | |
| "name": "SWAP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 1581, | |
| "end": 1713, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 949, | |
| "end": 1844, | |
| "name": "tag", | |
| "source": 2, | |
| "value": "11" | |
| }, | |
| { | |
| "begin": 949, | |
| "end": 1844, | |
| "name": "JUMPDEST", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1287, | |
| "end": 1301, | |
| "name": "CALLDATASIZE", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1284, | |
| "end": 1285, | |
| "name": "PUSH", | |
| "source": 2, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1281, | |
| "end": 1282, | |
| "name": "DUP1", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1268, | |
| "end": 1302, | |
| "name": "CALLDATACOPY", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1501, | |
| "end": 1502, | |
| "name": "PUSH", | |
| "source": 2, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1498, | |
| "end": 1499, | |
| "name": "DUP1", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1482, | |
| "end": 1496, | |
| "name": "CALLDATASIZE", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1479, | |
| "end": 1480, | |
| "name": "PUSH", | |
| "source": 2, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1463, | |
| "end": 1477, | |
| "name": "DUP5", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1456, | |
| "end": 1461, | |
| "name": "GAS", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1443, | |
| "end": 1503, | |
| "name": "DELEGATECALL", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1577, | |
| "end": 1593, | |
| "name": "RETURNDATASIZE", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1574, | |
| "end": 1575, | |
| "name": "PUSH", | |
| "source": 2, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1571, | |
| "end": 1572, | |
| "name": "DUP1", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1556, | |
| "end": 1594, | |
| "name": "RETURNDATACOPY", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1615, | |
| "end": 1621, | |
| "name": "DUP1", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1687, | |
| "end": 1688, | |
| "name": "PUSH", | |
| "source": 2, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1682, | |
| "end": 1748, | |
| "name": "DUP2", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1682, | |
| "end": 1748, | |
| "name": "EQ", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1682, | |
| "end": 1748, | |
| "name": "PUSH [tag]", | |
| "source": 2, | |
| "value": "17" | |
| }, | |
| { | |
| "begin": 1682, | |
| "end": 1748, | |
| "name": "JUMPI", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1797, | |
| "end": 1813, | |
| "name": "RETURNDATASIZE", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1794, | |
| "end": 1795, | |
| "name": "PUSH", | |
| "source": 2, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1787, | |
| "end": 1814, | |
| "name": "RETURN", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1682, | |
| "end": 1748, | |
| "name": "tag", | |
| "source": 2, | |
| "value": "17" | |
| }, | |
| { | |
| "begin": 1682, | |
| "end": 1748, | |
| "name": "JUMPDEST", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1717, | |
| "end": 1733, | |
| "name": "RETURNDATASIZE", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1714, | |
| "end": 1715, | |
| "name": "PUSH", | |
| "source": 2, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1707, | |
| "end": 1734, | |
| "name": "REVERT", | |
| "source": 2 | |
| }, | |
| { | |
| "begin": 1957, | |
| "end": 2095, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "14" | |
| }, | |
| { | |
| "begin": 1957, | |
| "end": 2095, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2009, | |
| "end": 2016, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2082, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "19" | |
| }, | |
| { | |
| "begin": 1327, | |
| "end": 1393, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC" | |
| }, | |
| { | |
| "begin": 2062, | |
| "end": 2081, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2062, | |
| "end": 2081, | |
| "name": "SHL", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2061, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2082, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2082, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "19" | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2082, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "ADD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "SLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "100" | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "EXP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "DIV", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | |
| }, | |
| { | |
| "begin": 2035, | |
| "end": 2088, | |
| "name": "AND", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2028, | |
| "end": 2088, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 2028, | |
| "end": 2088, | |
| "name": "POP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 1957, | |
| "end": 2095, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 1957, | |
| "end": 2095, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "name": "tag", | |
| "source": 5, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "name": "JUMPDEST", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1745, | |
| "end": 1766, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1854, | |
| "end": 1858, | |
| "name": "DUP2", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1844, | |
| "end": 1858, | |
| "name": "SWAP1", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1844, | |
| "end": 1858, | |
| "name": "POP", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "name": "SWAP2", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "name": "SWAP1", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "name": "POP", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1684, | |
| "end": 1874, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 5 | |
| } | |
| ] | |
| } | |
| }, | |
| "sourceList": [ | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol", | |
| "#utility.yul" | |
| ] | |
| }, | |
| "methodIdentifiers": {} | |
| }, | |
| "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}", | |
| "storageLayout": { | |
| "storage": [], | |
| "types": null | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| } | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol": { | |
| "ERC1967Utils": { | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "admin", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "ERC1967InvalidAdmin", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "beacon", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "ERC1967InvalidBeacon", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "ERC1967InvalidImplementation", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "ERC1967NonPayable", | |
| "type": "error" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": false, | |
| "internalType": "address", | |
| "name": "previousAdmin", | |
| "type": "address" | |
| }, | |
| { | |
| "indexed": false, | |
| "internalType": "address", | |
| "name": "newAdmin", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "AdminChanged", | |
| "type": "event" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "beacon", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "BeaconUpgraded", | |
| "type": "event" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "Upgraded", | |
| "type": "event" | |
| } | |
| ], | |
| "devdoc": { | |
| "details": "This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.", | |
| "errors": { | |
| "ERC1967InvalidAdmin(address)": [ | |
| { | |
| "details": "The `admin` of the proxy is invalid." | |
| } | |
| ], | |
| "ERC1967InvalidBeacon(address)": [ | |
| { | |
| "details": "The `beacon` of the proxy is invalid." | |
| } | |
| ], | |
| "ERC1967InvalidImplementation(address)": [ | |
| { | |
| "details": "The `implementation` of the proxy is invalid." | |
| } | |
| ], | |
| "ERC1967NonPayable()": [ | |
| { | |
| "details": "An upgrade function sees `msg.value > 0` that may be lost." | |
| } | |
| ] | |
| }, | |
| "events": { | |
| "AdminChanged(address,address)": { | |
| "details": "Emitted when the admin account has changed." | |
| }, | |
| "BeaconUpgraded(address)": { | |
| "details": "Emitted when the beacon is changed." | |
| }, | |
| "Upgraded(address)": { | |
| "details": "Emitted when the implementation is upgraded." | |
| } | |
| }, | |
| "kind": "dev", | |
| "methods": {}, | |
| "stateVariables": { | |
| "ADMIN_SLOT": { | |
| "details": "Storage slot with the admin of the contract. This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1." | |
| }, | |
| "BEACON_SLOT": { | |
| "details": "The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1." | |
| }, | |
| "IMPLEMENTATION_SLOT": { | |
| "details": "Storage slot with the address of the current implementation. This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1." | |
| } | |
| }, | |
| "version": 1 | |
| }, | |
| "evm": { | |
| "assembly": " /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":449:6722 library ERC1967Utils {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":449:6722 library ERC1967Utils {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa26469706673582212202962696cce633b63b4e0360a13dfcf05df0c784895310d8a6af653b3cd87d49d64736f6c63430008150033\n}\n", | |
| "bytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202962696cce633b63b4e0360a13dfcf05df0c784895310d8a6af653b3cd87d49d64736f6c63430008150033", | |
| "opcodes": "PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 PUSH3 0x696CCE PUSH4 0x3B63B4E0 CALLDATASIZE EXP SGT 0xDF 0xCF SDIV 0xDF 0xC PUSH25 0x4895310D8A6AF653B3CD87D49D64736F6C6343000815003300 ", | |
| "sourceMap": "449:6273:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202962696cce633b63b4e0360a13dfcf05df0c784895310d8a6af653b3cd87d49d64736f6c63430008150033", | |
| "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 PUSH3 0x696CCE PUSH4 0x3B63B4E0 CALLDATASIZE EXP SGT 0xDF 0xCF SDIV 0xDF 0xC PUSH25 0x4895310D8A6AF653B3CD87D49D64736F6C6343000815003300 ", | |
| "sourceMap": "449:6273:1:-:0;;;;;;;;" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "17000", | |
| "executionCost": "92", | |
| "totalCost": "17092" | |
| }, | |
| "internal": { | |
| "_checkNonPayable()": "infinite", | |
| "_setAdmin(address)": "infinite", | |
| "_setBeacon(address)": "infinite", | |
| "_setImplementation(address)": "infinite", | |
| "changeAdmin(address)": "infinite", | |
| "getAdmin()": "infinite", | |
| "getBeacon()": "infinite", | |
| "getImplementation()": "infinite", | |
| "upgradeBeaconToAndCall(address,bytes memory)": "infinite", | |
| "upgradeToAndCall(address,bytes memory)": "infinite" | |
| } | |
| }, | |
| "legacyAssembly": { | |
| ".code": [ | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH #[$]", | |
| "source": 1, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH [$]", | |
| "source": 1, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "B" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "DUP3", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "DUP3", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "DUP3", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "CODECOPY", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "DUP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "MLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "BYTE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "73" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "EQ", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "JUMPI", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "4E487B7100000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "MSTORE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "MSTORE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "24" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "REVERT", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "ADDRESS", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "MSTORE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "73" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "DUP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "MSTORE8", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "DUP3", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "DUP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "RETURN", | |
| "source": 1 | |
| } | |
| ], | |
| ".data": { | |
| "0": { | |
| ".auxdata": "a26469706673582212202962696cce633b63b4e0360a13dfcf05df0c784895310d8a6af653b3cd87d49d64736f6c63430008150033", | |
| ".code": [ | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSHDEPLOYADDRESS", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "ADDRESS", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "EQ", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "80" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "MSTORE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "DUP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 449, | |
| "end": 6722, | |
| "name": "REVERT", | |
| "source": 1 | |
| } | |
| ] | |
| } | |
| }, | |
| "sourceList": [ | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol", | |
| "#utility.yul" | |
| ] | |
| }, | |
| "methodIdentifiers": {} | |
| }, | |
| "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\",\"errors\":{\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidBeacon(address)\":[{\"details\":\"The `beacon` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1.\"},\"BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is the keccak-256 hash of \\\"eip1967.proxy.beacon\\\" subtracted by 1.\"},\"IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":\"ERC1967Utils\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}", | |
| "storageLayout": { | |
| "storage": [], | |
| "types": null | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| } | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol": { | |
| "Proxy": { | |
| "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 | |
| }, | |
| "evm": { | |
| "assembly": "", | |
| "bytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "", | |
| "opcodes": "", | |
| "sourceMap": "" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "", | |
| "opcodes": "", | |
| "sourceMap": "" | |
| }, | |
| "gasEstimates": null, | |
| "legacyAssembly": null, | |
| "methodIdentifiers": {} | |
| }, | |
| "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"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\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]}},\"version\":1}", | |
| "storageLayout": { | |
| "storage": [], | |
| "types": null | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| } | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol": { | |
| "IBeacon": { | |
| "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 | |
| }, | |
| "evm": { | |
| "assembly": "", | |
| "bytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "", | |
| "opcodes": "", | |
| "sourceMap": "" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "", | |
| "opcodes": "", | |
| "sourceMap": "" | |
| }, | |
| "gasEstimates": null, | |
| "legacyAssembly": null, | |
| "methodIdentifiers": { | |
| "implementation()": "5c60da1b" | |
| } | |
| }, | |
| "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"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\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]}},\"version\":1}", | |
| "storageLayout": { | |
| "storage": [], | |
| "types": null | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| } | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol": { | |
| "Address": { | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "target", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "AddressEmptyCode", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "account", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "AddressInsufficientBalance", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "FailedInnerCall", | |
| "type": "error" | |
| } | |
| ], | |
| "devdoc": { | |
| "details": "Collection of functions related to the address type", | |
| "errors": { | |
| "AddressEmptyCode(address)": [ | |
| { | |
| "details": "There's no code at `target` (it is not a contract)." | |
| } | |
| ], | |
| "AddressInsufficientBalance(address)": [ | |
| { | |
| "details": "The ETH balance of the account is not enough to perform the operation." | |
| } | |
| ], | |
| "FailedInnerCall()": [ | |
| { | |
| "details": "A call to an address target failed. The target may have reverted." | |
| } | |
| ] | |
| }, | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "evm": { | |
| "assembly": " /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":195:6261 library Address {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":195:6261 library Address {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa26469706673582212202e9bc740be063baf7b4656c512ebb4b2dcb41ca3a31519da71306b655aaf1e9264736f6c63430008150033\n}\n", | |
| "bytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202e9bc740be063baf7b4656c512ebb4b2dcb41ca3a31519da71306b655aaf1e9264736f6c63430008150033", | |
| "opcodes": "PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E SWAP12 0xC7 BLOCKHASH 0xBE MOD EXTCODESIZE 0xAF PUSH28 0x4656C512EBB4B2DCB41CA3A31519DA71306B655AAF1E9264736F6C63 NUMBER STOP ADDMOD ISZERO STOP CALLER ", | |
| "sourceMap": "195:6066:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202e9bc740be063baf7b4656c512ebb4b2dcb41ca3a31519da71306b655aaf1e9264736f6c63430008150033", | |
| "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E SWAP12 0xC7 BLOCKHASH 0xBE MOD EXTCODESIZE 0xAF PUSH28 0x4656C512EBB4B2DCB41CA3A31519DA71306B655AAF1E9264736F6C63 NUMBER STOP ADDMOD ISZERO STOP CALLER ", | |
| "sourceMap": "195:6066:4:-:0;;;;;;;;" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "17000", | |
| "executionCost": "92", | |
| "totalCost": "17092" | |
| }, | |
| "internal": { | |
| "_revert(bytes memory)": "infinite", | |
| "functionCall(address,bytes memory)": "infinite", | |
| "functionCallWithValue(address,bytes memory,uint256)": "infinite", | |
| "functionDelegateCall(address,bytes memory)": "infinite", | |
| "functionStaticCall(address,bytes memory)": "infinite", | |
| "sendValue(address payable,uint256)": "infinite", | |
| "verifyCallResult(bool,bytes memory)": "infinite", | |
| "verifyCallResultFromTarget(address,bool,bytes memory)": "infinite" | |
| } | |
| }, | |
| "legacyAssembly": { | |
| ".code": [ | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH #[$]", | |
| "source": 4, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH [$]", | |
| "source": 4, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "B" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "DUP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "DUP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "DUP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "CODECOPY", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "DUP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "MLOAD", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "BYTE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "73" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "EQ", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH [tag]", | |
| "source": 4, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "JUMPI", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "4E487B7100000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "MSTORE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "MSTORE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "24" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "REVERT", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "tag", | |
| "source": 4, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "JUMPDEST", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "ADDRESS", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "MSTORE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "73" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "DUP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "MSTORE8", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "DUP3", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "DUP2", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "RETURN", | |
| "source": 4 | |
| } | |
| ], | |
| ".data": { | |
| "0": { | |
| ".auxdata": "a26469706673582212202e9bc740be063baf7b4656c512ebb4b2dcb41ca3a31519da71306b655aaf1e9264736f6c63430008150033", | |
| ".code": [ | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSHDEPLOYADDRESS", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "ADDRESS", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "EQ", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "80" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "MSTORE", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "PUSH", | |
| "source": 4, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "DUP1", | |
| "source": 4 | |
| }, | |
| { | |
| "begin": 195, | |
| "end": 6261, | |
| "name": "REVERT", | |
| "source": 4 | |
| } | |
| ] | |
| } | |
| }, | |
| "sourceList": [ | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol", | |
| "#utility.yul" | |
| ] | |
| }, | |
| "methodIdentifiers": {} | |
| }, | |
| "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}", | |
| "storageLayout": { | |
| "storage": [], | |
| "types": null | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| } | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol": { | |
| "StorageSlot": { | |
| "abi": [], | |
| "devdoc": { | |
| "details": "Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```", | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "evm": { | |
| "assembly": " /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1245:3930 library StorageSlot {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":1245:3930 library StorageSlot {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa2646970667358221220bacaea727064bb4f4be2fb8419b8d27347a9fe38830c83c124631975a588b91a64736f6c63430008150033\n}\n", | |
| "bytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220bacaea727064bb4f4be2fb8419b8d27347a9fe38830c83c124631975a588b91a64736f6c63430008150033", | |
| "opcodes": "PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA 0xCA 0xEA PUSH19 0x7064BB4F4BE2FB8419B8D27347A9FE38830C83 0xC1 0x24 PUSH4 0x1975A588 0xB9 BYTE PUSH5 0x736F6C6343 STOP ADDMOD ISZERO STOP CALLER ", | |
| "sourceMap": "1245:2685:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220bacaea727064bb4f4be2fb8419b8d27347a9fe38830c83c124631975a588b91a64736f6c63430008150033", | |
| "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA 0xCA 0xEA PUSH19 0x7064BB4F4BE2FB8419B8D27347A9FE38830C83 0xC1 0x24 PUSH4 0x1975A588 0xB9 BYTE PUSH5 0x736F6C6343 STOP ADDMOD ISZERO STOP CALLER ", | |
| "sourceMap": "1245:2685:5:-:0;;;;;;;;" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "17000", | |
| "executionCost": "92", | |
| "totalCost": "17092" | |
| }, | |
| "internal": { | |
| "getAddressSlot(bytes32)": "infinite", | |
| "getBooleanSlot(bytes32)": "infinite", | |
| "getBytes32Slot(bytes32)": "infinite", | |
| "getBytesSlot(bytes storage pointer)": "infinite", | |
| "getBytesSlot(bytes32)": "infinite", | |
| "getStringSlot(bytes32)": "infinite", | |
| "getStringSlot(string storage pointer)": "infinite", | |
| "getUint256Slot(bytes32)": "infinite" | |
| } | |
| }, | |
| "legacyAssembly": { | |
| ".code": [ | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH #[$]", | |
| "source": 5, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH [$]", | |
| "source": 5, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "B" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "DUP3", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "DUP3", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "DUP3", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "CODECOPY", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "DUP1", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "MLOAD", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "BYTE", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "73" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "EQ", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH [tag]", | |
| "source": 5, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "JUMPI", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "4E487B7100000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "MSTORE", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "MSTORE", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "24" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "REVERT", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "tag", | |
| "source": 5, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "JUMPDEST", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "ADDRESS", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "MSTORE", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "73" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "DUP2", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "MSTORE8", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "DUP3", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "DUP2", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "RETURN", | |
| "source": 5 | |
| } | |
| ], | |
| ".data": { | |
| "0": { | |
| ".auxdata": "a2646970667358221220bacaea727064bb4f4be2fb8419b8d27347a9fe38830c83c124631975a588b91a64736f6c63430008150033", | |
| ".code": [ | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSHDEPLOYADDRESS", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "ADDRESS", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "EQ", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "80" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "MSTORE", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "PUSH", | |
| "source": 5, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "DUP1", | |
| "source": 5 | |
| }, | |
| { | |
| "begin": 1245, | |
| "end": 3930, | |
| "name": "REVERT", | |
| "source": 5 | |
| } | |
| ] | |
| } | |
| }, | |
| "sourceList": [ | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol", | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol", | |
| "#utility.yul" | |
| ] | |
| }, | |
| "methodIdentifiers": {} | |
| }, | |
| "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}", | |
| "storageLayout": { | |
| "storage": [], | |
| "types": null | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| } | |
| } | |
| }, | |
| "sources": { | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol": { | |
| "ast": { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", | |
| "exportedSymbols": { | |
| "ERC1967Proxy": [ | |
| 37 | |
| ], | |
| "ERC1967Utils": [ | |
| 340 | |
| ], | |
| "Proxy": [ | |
| 376 | |
| ] | |
| }, | |
| "id": 38, | |
| "license": "MIT", | |
| "nodeType": "SourceUnit", | |
| "nodes": [ | |
| { | |
| "id": 1, | |
| "literals": [ | |
| "solidity", | |
| "^", | |
| "0.8", | |
| ".20" | |
| ], | |
| "nodeType": "PragmaDirective", | |
| "src": "114:24:0" | |
| }, | |
| { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol", | |
| "file": "../Proxy.sol", | |
| "id": 3, | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "ImportDirective", | |
| "scope": 38, | |
| "sourceUnit": 377, | |
| "src": "140:35:0", | |
| "symbolAliases": [ | |
| { | |
| "foreign": { | |
| "id": 2, | |
| "name": "Proxy", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 376, | |
| "src": "148:5:0", | |
| "typeDescriptions": {} | |
| }, | |
| "nameLocation": "-1:-1:-1" | |
| } | |
| ], | |
| "unitAlias": "" | |
| }, | |
| { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", | |
| "file": "./ERC1967Utils.sol", | |
| "id": 5, | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "ImportDirective", | |
| "scope": 38, | |
| "sourceUnit": 341, | |
| "src": "176:48:0", | |
| "symbolAliases": [ | |
| { | |
| "foreign": { | |
| "id": 4, | |
| "name": "ERC1967Utils", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 340, | |
| "src": "184:12:0", | |
| "typeDescriptions": {} | |
| }, | |
| "nameLocation": "-1:-1:-1" | |
| } | |
| ], | |
| "unitAlias": "" | |
| }, | |
| { | |
| "abstract": false, | |
| "baseContracts": [ | |
| { | |
| "baseName": { | |
| "id": 7, | |
| "name": "Proxy", | |
| "nameLocations": [ | |
| "624:5:0" | |
| ], | |
| "nodeType": "IdentifierPath", | |
| "referencedDeclaration": 376, | |
| "src": "624:5:0" | |
| }, | |
| "id": 8, | |
| "nodeType": "InheritanceSpecifier", | |
| "src": "624:5:0" | |
| } | |
| ], | |
| "canonicalName": "ERC1967Proxy", | |
| "contractDependencies": [], | |
| "contractKind": "contract", | |
| "documentation": { | |
| "id": 6, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "226:372:0", | |
| "text": " @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy." | |
| }, | |
| "fullyImplemented": true, | |
| "id": 37, | |
| "linearizedBaseContracts": [ | |
| 37, | |
| 376 | |
| ], | |
| "name": "ERC1967Proxy", | |
| "nameLocation": "608:12:0", | |
| "nodeType": "ContractDefinition", | |
| "nodes": [ | |
| { | |
| "body": { | |
| "id": 23, | |
| "nodeType": "Block", | |
| "src": "1144:69:0", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 19, | |
| "name": "implementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 11, | |
| "src": "1184:14:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| { | |
| "id": 20, | |
| "name": "_data", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 13, | |
| "src": "1200:5:0", | |
| "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": 16, | |
| "name": "ERC1967Utils", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 340, | |
| "src": "1154:12:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$340_$", | |
| "typeString": "type(library ERC1967Utils)" | |
| } | |
| }, | |
| "id": 18, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "1167:16:0", | |
| "memberName": "upgradeToAndCall", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 159, | |
| "src": "1154:29:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", | |
| "typeString": "function (address,bytes memory)" | |
| } | |
| }, | |
| "id": 21, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "1154:52:0", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 22, | |
| "nodeType": "ExpressionStatement", | |
| "src": "1154:52:0" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 9, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "636:439:0", | |
| "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": 24, | |
| "implemented": true, | |
| "kind": "constructor", | |
| "modifiers": [], | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 14, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 11, | |
| "mutability": "mutable", | |
| "name": "implementation", | |
| "nameLocation": "1100:14:0", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 24, | |
| "src": "1092:22:0", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 10, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1092:7:0", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 13, | |
| "mutability": "mutable", | |
| "name": "_data", | |
| "nameLocation": "1129:5:0", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 24, | |
| "src": "1116:18:0", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 12, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1116:5:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "1091:44:0" | |
| }, | |
| "returnParameters": { | |
| "id": 15, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "1144:0:0" | |
| }, | |
| "scope": 37, | |
| "src": "1080:133:0", | |
| "stateMutability": "payable", | |
| "virtual": false, | |
| "visibility": "public" | |
| }, | |
| { | |
| "baseFunctions": [ | |
| 357 | |
| ], | |
| "body": { | |
| "id": 35, | |
| "nodeType": "Block", | |
| "src": "1657:56:0", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "expression": { | |
| "id": 31, | |
| "name": "ERC1967Utils", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 340, | |
| "src": "1674:12:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$340_$", | |
| "typeString": "type(library ERC1967Utils)" | |
| } | |
| }, | |
| "id": 32, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "1687:17:0", | |
| "memberName": "getImplementation", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 98, | |
| "src": "1674:30:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", | |
| "typeString": "function () view returns (address)" | |
| } | |
| }, | |
| "id": 33, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "1674:32:0", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "functionReturnParameters": 30, | |
| "id": 34, | |
| "nodeType": "Return", | |
| "src": "1667:39:0" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 25, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1219:357:0", | |
| "text": " @dev Returns the current implementation address.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`" | |
| }, | |
| "id": 36, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "_implementation", | |
| "nameLocation": "1590:15:0", | |
| "nodeType": "FunctionDefinition", | |
| "overrides": { | |
| "id": 27, | |
| "nodeType": "OverrideSpecifier", | |
| "overrides": [], | |
| "src": "1630:8:0" | |
| }, | |
| "parameters": { | |
| "id": 26, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "1605:2:0" | |
| }, | |
| "returnParameters": { | |
| "id": 30, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 29, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 36, | |
| "src": "1648:7:0", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 28, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1648:7:0", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "1647:9:0" | |
| }, | |
| "scope": 37, | |
| "src": "1581:132:0", | |
| "stateMutability": "view", | |
| "virtual": true, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "scope": 38, | |
| "src": "599:1116:0", | |
| "usedErrors": [ | |
| 72, | |
| 85, | |
| 399, | |
| 402 | |
| ], | |
| "usedEvents": [ | |
| 51 | |
| ] | |
| } | |
| ], | |
| "src": "114:1602:0" | |
| }, | |
| "id": 0 | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol": { | |
| "ast": { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", | |
| "exportedSymbols": { | |
| "Address": [ | |
| 639 | |
| ], | |
| "ERC1967Utils": [ | |
| 340 | |
| ], | |
| "IBeacon": [ | |
| 386 | |
| ], | |
| "StorageSlot": [ | |
| 749 | |
| ] | |
| }, | |
| "id": 341, | |
| "license": "MIT", | |
| "nodeType": "SourceUnit", | |
| "nodes": [ | |
| { | |
| "id": 39, | |
| "literals": [ | |
| "solidity", | |
| "^", | |
| "0.8", | |
| ".20" | |
| ], | |
| "nodeType": "PragmaDirective", | |
| "src": "114:24:1" | |
| }, | |
| { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", | |
| "file": "../beacon/IBeacon.sol", | |
| "id": 41, | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "ImportDirective", | |
| "scope": 341, | |
| "sourceUnit": 387, | |
| "src": "140:46:1", | |
| "symbolAliases": [ | |
| { | |
| "foreign": { | |
| "id": 40, | |
| "name": "IBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 386, | |
| "src": "148:7:1", | |
| "typeDescriptions": {} | |
| }, | |
| "nameLocation": "-1:-1:-1" | |
| } | |
| ], | |
| "unitAlias": "" | |
| }, | |
| { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol", | |
| "file": "../../utils/Address.sol", | |
| "id": 43, | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "ImportDirective", | |
| "scope": 341, | |
| "sourceUnit": 640, | |
| "src": "187:48:1", | |
| "symbolAliases": [ | |
| { | |
| "foreign": { | |
| "id": 42, | |
| "name": "Address", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 639, | |
| "src": "195:7:1", | |
| "typeDescriptions": {} | |
| }, | |
| "nameLocation": "-1:-1:-1" | |
| } | |
| ], | |
| "unitAlias": "" | |
| }, | |
| { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol", | |
| "file": "../../utils/StorageSlot.sol", | |
| "id": 45, | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "ImportDirective", | |
| "scope": 341, | |
| "sourceUnit": 750, | |
| "src": "236:56:1", | |
| "symbolAliases": [ | |
| { | |
| "foreign": { | |
| "id": 44, | |
| "name": "StorageSlot", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 749, | |
| "src": "244:11:1", | |
| "typeDescriptions": {} | |
| }, | |
| "nameLocation": "-1:-1:-1" | |
| } | |
| ], | |
| "unitAlias": "" | |
| }, | |
| { | |
| "abstract": false, | |
| "baseContracts": [], | |
| "canonicalName": "ERC1967Utils", | |
| "contractDependencies": [], | |
| "contractKind": "library", | |
| "documentation": { | |
| "id": 46, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "294:154:1", | |
| "text": " @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots." | |
| }, | |
| "fullyImplemented": true, | |
| "id": 340, | |
| "linearizedBaseContracts": [ | |
| 340 | |
| ], | |
| "name": "ERC1967Utils", | |
| "nameLocation": "457:12:1", | |
| "nodeType": "ContractDefinition", | |
| "nodes": [ | |
| { | |
| "anonymous": false, | |
| "documentation": { | |
| "id": 47, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "660:68:1", | |
| "text": " @dev Emitted when the implementation is upgraded." | |
| }, | |
| "eventSelector": "bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", | |
| "id": 51, | |
| "name": "Upgraded", | |
| "nameLocation": "739:8:1", | |
| "nodeType": "EventDefinition", | |
| "parameters": { | |
| "id": 50, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 49, | |
| "indexed": true, | |
| "mutability": "mutable", | |
| "name": "implementation", | |
| "nameLocation": "764:14:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 51, | |
| "src": "748:30:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 48, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "748:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "747:32:1" | |
| }, | |
| "src": "733:47:1" | |
| }, | |
| { | |
| "anonymous": false, | |
| "documentation": { | |
| "id": 52, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "786:67:1", | |
| "text": " @dev Emitted when the admin account has changed." | |
| }, | |
| "eventSelector": "7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f", | |
| "id": 58, | |
| "name": "AdminChanged", | |
| "nameLocation": "864:12:1", | |
| "nodeType": "EventDefinition", | |
| "parameters": { | |
| "id": 57, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 54, | |
| "indexed": false, | |
| "mutability": "mutable", | |
| "name": "previousAdmin", | |
| "nameLocation": "885:13:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 58, | |
| "src": "877:21:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 53, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "877:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 56, | |
| "indexed": false, | |
| "mutability": "mutable", | |
| "name": "newAdmin", | |
| "nameLocation": "908:8:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 58, | |
| "src": "900:16:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 55, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "900:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "876:41:1" | |
| }, | |
| "src": "858:60:1" | |
| }, | |
| { | |
| "anonymous": false, | |
| "documentation": { | |
| "id": 59, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "924:59:1", | |
| "text": " @dev Emitted when the beacon is changed." | |
| }, | |
| "eventSelector": "1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e", | |
| "id": 63, | |
| "name": "BeaconUpgraded", | |
| "nameLocation": "994:14:1", | |
| "nodeType": "EventDefinition", | |
| "parameters": { | |
| "id": 62, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 61, | |
| "indexed": true, | |
| "mutability": "mutable", | |
| "name": "beacon", | |
| "nameLocation": "1025:6:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 63, | |
| "src": "1009:22:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 60, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1009:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "1008:24:1" | |
| }, | |
| "src": "988:45:1" | |
| }, | |
| { | |
| "constant": true, | |
| "documentation": { | |
| "id": 64, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1039:170:1", | |
| "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": 67, | |
| "mutability": "constant", | |
| "name": "IMPLEMENTATION_SLOT", | |
| "nameLocation": "1305:19:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 340, | |
| "src": "1279:114:1", | |
| "stateVariable": true, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| }, | |
| "typeName": { | |
| "id": 65, | |
| "name": "bytes32", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1279:7:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| }, | |
| "value": { | |
| "hexValue": "307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263", | |
| "id": 66, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "1327:66:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1", | |
| "typeString": "int_const 2444...(69 digits omitted)...5612" | |
| }, | |
| "value": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "documentation": { | |
| "id": 68, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1400:69:1", | |
| "text": " @dev The `implementation` of the proxy is invalid." | |
| }, | |
| "errorSelector": "4c9c8ce3", | |
| "id": 72, | |
| "name": "ERC1967InvalidImplementation", | |
| "nameLocation": "1480:28:1", | |
| "nodeType": "ErrorDefinition", | |
| "parameters": { | |
| "id": 71, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 70, | |
| "mutability": "mutable", | |
| "name": "implementation", | |
| "nameLocation": "1517:14:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 72, | |
| "src": "1509:22:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 69, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1509:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "1508:24:1" | |
| }, | |
| "src": "1474:59:1" | |
| }, | |
| { | |
| "documentation": { | |
| "id": 73, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1539:60:1", | |
| "text": " @dev The `admin` of the proxy is invalid." | |
| }, | |
| "errorSelector": "62e77ba2", | |
| "id": 77, | |
| "name": "ERC1967InvalidAdmin", | |
| "nameLocation": "1610:19:1", | |
| "nodeType": "ErrorDefinition", | |
| "parameters": { | |
| "id": 76, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 75, | |
| "mutability": "mutable", | |
| "name": "admin", | |
| "nameLocation": "1638:5:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 77, | |
| "src": "1630:13:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 74, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1630:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "1629:15:1" | |
| }, | |
| "src": "1604:41:1" | |
| }, | |
| { | |
| "documentation": { | |
| "id": 78, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1651:61:1", | |
| "text": " @dev The `beacon` of the proxy is invalid." | |
| }, | |
| "errorSelector": "64ced0ec", | |
| "id": 82, | |
| "name": "ERC1967InvalidBeacon", | |
| "nameLocation": "1723:20:1", | |
| "nodeType": "ErrorDefinition", | |
| "parameters": { | |
| "id": 81, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 80, | |
| "mutability": "mutable", | |
| "name": "beacon", | |
| "nameLocation": "1752:6:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 82, | |
| "src": "1744:14:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 79, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1744:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "1743:16:1" | |
| }, | |
| "src": "1717:43:1" | |
| }, | |
| { | |
| "documentation": { | |
| "id": 83, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1766:82:1", | |
| "text": " @dev An upgrade function sees `msg.value > 0` that may be lost." | |
| }, | |
| "errorSelector": "b398979f", | |
| "id": 85, | |
| "name": "ERC1967NonPayable", | |
| "nameLocation": "1859:17:1", | |
| "nodeType": "ErrorDefinition", | |
| "parameters": { | |
| "id": 84, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "1876:2:1" | |
| }, | |
| "src": "1853:26:1" | |
| }, | |
| { | |
| "body": { | |
| "id": 97, | |
| "nodeType": "Block", | |
| "src": "2018:77:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 93, | |
| "name": "IMPLEMENTATION_SLOT", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 67, | |
| "src": "2062:19:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| ], | |
| "expression": { | |
| "id": 91, | |
| "name": "StorageSlot", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 749, | |
| "src": "2035:11:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_StorageSlot_$749_$", | |
| "typeString": "type(library StorageSlot)" | |
| } | |
| }, | |
| "id": 92, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "2047:14:1", | |
| "memberName": "getAddressSlot", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 671, | |
| "src": "2035:26:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$645_storage_ptr_$", | |
| "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" | |
| } | |
| }, | |
| "id": 94, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "2035:47:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_AddressSlot_$645_storage_ptr", | |
| "typeString": "struct StorageSlot.AddressSlot storage pointer" | |
| } | |
| }, | |
| "id": 95, | |
| "isConstant": false, | |
| "isLValue": true, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "2083:5:1", | |
| "memberName": "value", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 644, | |
| "src": "2035:53:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "functionReturnParameters": 90, | |
| "id": 96, | |
| "nodeType": "Return", | |
| "src": "2028:60:1" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 86, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1885:67:1", | |
| "text": " @dev Returns the current implementation address." | |
| }, | |
| "id": 98, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getImplementation", | |
| "nameLocation": "1966:17:1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 87, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "1983:2:1" | |
| }, | |
| "returnParameters": { | |
| "id": 90, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 89, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 98, | |
| "src": "2009:7:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 88, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2009:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2008:9:1" | |
| }, | |
| "scope": 340, | |
| "src": "1957:138:1", | |
| "stateMutability": "view", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 124, | |
| "nodeType": "Block", | |
| "src": "2249:218:1", | |
| "statements": [ | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 108, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "expression": { | |
| "id": 104, | |
| "name": "newImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 101, | |
| "src": "2263:17:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 105, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "2281:4:1", | |
| "memberName": "code", | |
| "nodeType": "MemberAccess", | |
| "src": "2263:22:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "id": 106, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "2286:6:1", | |
| "memberName": "length", | |
| "nodeType": "MemberAccess", | |
| "src": "2263:29:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": "==", | |
| "rightExpression": { | |
| "hexValue": "30", | |
| "id": 107, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "2296:1:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_0_by_1", | |
| "typeString": "int_const 0" | |
| }, | |
| "value": "0" | |
| }, | |
| "src": "2263:34:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "id": 114, | |
| "nodeType": "IfStatement", | |
| "src": "2259:119:1", | |
| "trueBody": { | |
| "id": 113, | |
| "nodeType": "Block", | |
| "src": "2299:79:1", | |
| "statements": [ | |
| { | |
| "errorCall": { | |
| "arguments": [ | |
| { | |
| "id": 110, | |
| "name": "newImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 101, | |
| "src": "2349:17:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 109, | |
| "name": "ERC1967InvalidImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 72, | |
| "src": "2320:28:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", | |
| "typeString": "function (address) pure" | |
| } | |
| }, | |
| "id": 111, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "2320:47:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 112, | |
| "nodeType": "RevertStatement", | |
| "src": "2313:54:1" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "expression": { | |
| "id": 122, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftHandSide": { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 118, | |
| "name": "IMPLEMENTATION_SLOT", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 67, | |
| "src": "2414:19:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| ], | |
| "expression": { | |
| "id": 115, | |
| "name": "StorageSlot", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 749, | |
| "src": "2387:11:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_StorageSlot_$749_$", | |
| "typeString": "type(library StorageSlot)" | |
| } | |
| }, | |
| "id": 117, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "2399:14:1", | |
| "memberName": "getAddressSlot", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 671, | |
| "src": "2387:26:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$645_storage_ptr_$", | |
| "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" | |
| } | |
| }, | |
| "id": 119, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "2387:47:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_AddressSlot_$645_storage_ptr", | |
| "typeString": "struct StorageSlot.AddressSlot storage pointer" | |
| } | |
| }, | |
| "id": 120, | |
| "isConstant": false, | |
| "isLValue": true, | |
| "isPure": false, | |
| "lValueRequested": true, | |
| "memberLocation": "2435:5:1", | |
| "memberName": "value", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 644, | |
| "src": "2387:53:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "nodeType": "Assignment", | |
| "operator": "=", | |
| "rightHandSide": { | |
| "id": 121, | |
| "name": "newImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 101, | |
| "src": "2443:17:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "src": "2387:73:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 123, | |
| "nodeType": "ExpressionStatement", | |
| "src": "2387:73:1" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 99, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "2101:80:1", | |
| "text": " @dev Stores a new address in the EIP1967 implementation slot." | |
| }, | |
| "id": 125, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "_setImplementation", | |
| "nameLocation": "2195:18:1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 102, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 101, | |
| "mutability": "mutable", | |
| "name": "newImplementation", | |
| "nameLocation": "2222:17:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 125, | |
| "src": "2214:25:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 100, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2214:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2213:27:1" | |
| }, | |
| "returnParameters": { | |
| "id": 103, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "2249:0:1" | |
| }, | |
| "scope": 340, | |
| "src": "2186:281:1", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "private" | |
| }, | |
| { | |
| "body": { | |
| "id": 158, | |
| "nodeType": "Block", | |
| "src": "2860:254:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 134, | |
| "name": "newImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 128, | |
| "src": "2889:17:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 133, | |
| "name": "_setImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 125, | |
| "src": "2870:18:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", | |
| "typeString": "function (address)" | |
| } | |
| }, | |
| "id": 135, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "2870:37:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 136, | |
| "nodeType": "ExpressionStatement", | |
| "src": "2870:37:1" | |
| }, | |
| { | |
| "eventCall": { | |
| "arguments": [ | |
| { | |
| "id": 138, | |
| "name": "newImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 128, | |
| "src": "2931:17:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 137, | |
| "name": "Upgraded", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 51, | |
| "src": "2922:8:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", | |
| "typeString": "function (address)" | |
| } | |
| }, | |
| "id": 139, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "2922:27:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 140, | |
| "nodeType": "EmitStatement", | |
| "src": "2917:32:1" | |
| }, | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 144, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "id": 141, | |
| "name": "data", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 130, | |
| "src": "2964:4:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "id": 142, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "2969:6:1", | |
| "memberName": "length", | |
| "nodeType": "MemberAccess", | |
| "src": "2964:11:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": ">", | |
| "rightExpression": { | |
| "hexValue": "30", | |
| "id": 143, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "2978:1:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_0_by_1", | |
| "typeString": "int_const 0" | |
| }, | |
| "value": "0" | |
| }, | |
| "src": "2964:15:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "falseBody": { | |
| "id": 156, | |
| "nodeType": "Block", | |
| "src": "3065:43:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "id": 153, | |
| "name": "_checkNonPayable", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 339, | |
| "src": "3079:16:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", | |
| "typeString": "function ()" | |
| } | |
| }, | |
| "id": 154, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "3079:18:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 155, | |
| "nodeType": "ExpressionStatement", | |
| "src": "3079:18:1" | |
| } | |
| ] | |
| }, | |
| "id": 157, | |
| "nodeType": "IfStatement", | |
| "src": "2960:148:1", | |
| "trueBody": { | |
| "id": 152, | |
| "nodeType": "Block", | |
| "src": "2981:78:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 148, | |
| "name": "newImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 128, | |
| "src": "3024:17:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| { | |
| "id": 149, | |
| "name": "data", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 130, | |
| "src": "3043:4:1", | |
| "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": 145, | |
| "name": "Address", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 639, | |
| "src": "2995:7:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_Address_$639_$", | |
| "typeString": "type(library Address)" | |
| } | |
| }, | |
| "id": 147, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "3003:20:1", | |
| "memberName": "functionDelegateCall", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 558, | |
| "src": "2995:28:1", | |
| "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": 150, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "2995:53:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "id": 151, | |
| "nodeType": "ExpressionStatement", | |
| "src": "2995:53:1" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 126, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "2473:301:1", | |
| "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": 159, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "upgradeToAndCall", | |
| "nameLocation": "2788:16:1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 131, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 128, | |
| "mutability": "mutable", | |
| "name": "newImplementation", | |
| "nameLocation": "2813:17:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 159, | |
| "src": "2805:25:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 127, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2805:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 130, | |
| "mutability": "mutable", | |
| "name": "data", | |
| "nameLocation": "2845:4:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 159, | |
| "src": "2832:17:1", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 129, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2832:5:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2804:46:1" | |
| }, | |
| "returnParameters": { | |
| "id": 132, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "2860:0:1" | |
| }, | |
| "scope": 340, | |
| "src": "2779:335:1", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": true, | |
| "documentation": { | |
| "id": 160, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "3120:145:1", | |
| "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": 163, | |
| "mutability": "constant", | |
| "name": "ADMIN_SLOT", | |
| "nameLocation": "3361:10:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 340, | |
| "src": "3335:105:1", | |
| "stateVariable": true, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| }, | |
| "typeName": { | |
| "id": 161, | |
| "name": "bytes32", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3335:7:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| }, | |
| "value": { | |
| "hexValue": "307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033", | |
| "id": 162, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "3374:66:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1", | |
| "typeString": "int_const 8195...(69 digits omitted)...7091" | |
| }, | |
| "value": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 175, | |
| "nodeType": "Block", | |
| "src": "3844:68:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 171, | |
| "name": "ADMIN_SLOT", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 163, | |
| "src": "3888:10:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| ], | |
| "expression": { | |
| "id": 169, | |
| "name": "StorageSlot", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 749, | |
| "src": "3861:11:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_StorageSlot_$749_$", | |
| "typeString": "type(library StorageSlot)" | |
| } | |
| }, | |
| "id": 170, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "3873:14:1", | |
| "memberName": "getAddressSlot", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 671, | |
| "src": "3861:26:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$645_storage_ptr_$", | |
| "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" | |
| } | |
| }, | |
| "id": 172, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "3861:38:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_AddressSlot_$645_storage_ptr", | |
| "typeString": "struct StorageSlot.AddressSlot storage pointer" | |
| } | |
| }, | |
| "id": 173, | |
| "isConstant": false, | |
| "isLValue": true, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "3900:5:1", | |
| "memberName": "value", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 644, | |
| "src": "3861:44:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "functionReturnParameters": 168, | |
| "id": 174, | |
| "nodeType": "Return", | |
| "src": "3854:51:1" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 164, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "3447:340:1", | |
| "text": " @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`" | |
| }, | |
| "id": 176, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getAdmin", | |
| "nameLocation": "3801:8:1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 165, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "3809:2:1" | |
| }, | |
| "returnParameters": { | |
| "id": 168, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 167, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 176, | |
| "src": "3835:7:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 166, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3835:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3834:9:1" | |
| }, | |
| "scope": 340, | |
| "src": "3792:120:1", | |
| "stateMutability": "view", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 206, | |
| "nodeType": "Block", | |
| "src": "4039:172:1", | |
| "statements": [ | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "id": 187, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "id": 182, | |
| "name": "newAdmin", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 179, | |
| "src": "4053:8:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": "==", | |
| "rightExpression": { | |
| "arguments": [ | |
| { | |
| "hexValue": "30", | |
| "id": 185, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "4073:1:1", | |
| "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": 184, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "lValueRequested": false, | |
| "nodeType": "ElementaryTypeNameExpression", | |
| "src": "4065:7:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_address_$", | |
| "typeString": "type(address)" | |
| }, | |
| "typeName": { | |
| "id": 183, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4065:7:1", | |
| "typeDescriptions": {} | |
| } | |
| }, | |
| "id": 186, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "typeConversion", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4065:10:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "src": "4053:22:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "id": 196, | |
| "nodeType": "IfStatement", | |
| "src": "4049:91:1", | |
| "trueBody": { | |
| "id": 195, | |
| "nodeType": "Block", | |
| "src": "4077:63:1", | |
| "statements": [ | |
| { | |
| "errorCall": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "hexValue": "30", | |
| "id": 191, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "4126:1:1", | |
| "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": 190, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "lValueRequested": false, | |
| "nodeType": "ElementaryTypeNameExpression", | |
| "src": "4118:7:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_address_$", | |
| "typeString": "type(address)" | |
| }, | |
| "typeName": { | |
| "id": 189, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4118:7:1", | |
| "typeDescriptions": {} | |
| } | |
| }, | |
| "id": 192, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "typeConversion", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4118:10:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 188, | |
| "name": "ERC1967InvalidAdmin", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 77, | |
| "src": "4098:19:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", | |
| "typeString": "function (address) pure" | |
| } | |
| }, | |
| "id": 193, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4098:31:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 194, | |
| "nodeType": "RevertStatement", | |
| "src": "4091:38:1" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "expression": { | |
| "id": 204, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftHandSide": { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 200, | |
| "name": "ADMIN_SLOT", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 163, | |
| "src": "4176:10:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| ], | |
| "expression": { | |
| "id": 197, | |
| "name": "StorageSlot", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 749, | |
| "src": "4149:11:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_StorageSlot_$749_$", | |
| "typeString": "type(library StorageSlot)" | |
| } | |
| }, | |
| "id": 199, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "4161:14:1", | |
| "memberName": "getAddressSlot", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 671, | |
| "src": "4149:26:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$645_storage_ptr_$", | |
| "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" | |
| } | |
| }, | |
| "id": 201, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4149:38:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_AddressSlot_$645_storage_ptr", | |
| "typeString": "struct StorageSlot.AddressSlot storage pointer" | |
| } | |
| }, | |
| "id": 202, | |
| "isConstant": false, | |
| "isLValue": true, | |
| "isPure": false, | |
| "lValueRequested": true, | |
| "memberLocation": "4188:5:1", | |
| "memberName": "value", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 644, | |
| "src": "4149:44:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "nodeType": "Assignment", | |
| "operator": "=", | |
| "rightHandSide": { | |
| "id": 203, | |
| "name": "newAdmin", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 179, | |
| "src": "4196:8:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "src": "4149:55:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 205, | |
| "nodeType": "ExpressionStatement", | |
| "src": "4149:55:1" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 177, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "3918:71:1", | |
| "text": " @dev Stores a new address in the EIP1967 admin slot." | |
| }, | |
| "id": 207, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "_setAdmin", | |
| "nameLocation": "4003:9:1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 180, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 179, | |
| "mutability": "mutable", | |
| "name": "newAdmin", | |
| "nameLocation": "4021:8:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 207, | |
| "src": "4013:16:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 178, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4013:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "4012:18:1" | |
| }, | |
| "returnParameters": { | |
| "id": 181, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "4039:0:1" | |
| }, | |
| "scope": 340, | |
| "src": "3994:217:1", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "private" | |
| }, | |
| { | |
| "body": { | |
| "id": 223, | |
| "nodeType": "Block", | |
| "src": "4379:85:1", | |
| "statements": [ | |
| { | |
| "eventCall": { | |
| "arguments": [ | |
| { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "id": 214, | |
| "name": "getAdmin", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 176, | |
| "src": "4407:8:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", | |
| "typeString": "function () view returns (address)" | |
| } | |
| }, | |
| "id": 215, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4407:10:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| { | |
| "id": 216, | |
| "name": "newAdmin", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 210, | |
| "src": "4419:8:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 213, | |
| "name": "AdminChanged", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 58, | |
| "src": "4394:12:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", | |
| "typeString": "function (address,address)" | |
| } | |
| }, | |
| "id": 217, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4394:34:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 218, | |
| "nodeType": "EmitStatement", | |
| "src": "4389:39:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 220, | |
| "name": "newAdmin", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 210, | |
| "src": "4448:8:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 219, | |
| "name": "_setAdmin", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 207, | |
| "src": "4438:9:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", | |
| "typeString": "function (address)" | |
| } | |
| }, | |
| "id": 221, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4438:19:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 222, | |
| "nodeType": "ExpressionStatement", | |
| "src": "4438:19:1" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 208, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "4217:109:1", | |
| "text": " @dev Changes the admin of the proxy.\n Emits an {IERC1967-AdminChanged} event." | |
| }, | |
| "id": 224, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "changeAdmin", | |
| "nameLocation": "4340:11:1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 211, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 210, | |
| "mutability": "mutable", | |
| "name": "newAdmin", | |
| "nameLocation": "4360:8:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 224, | |
| "src": "4352:16:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 209, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4352:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "4351:18:1" | |
| }, | |
| "returnParameters": { | |
| "id": 212, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "4379:0:1" | |
| }, | |
| "scope": 340, | |
| "src": "4331:133:1", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": true, | |
| "documentation": { | |
| "id": 225, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "4470:201:1", | |
| "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": 228, | |
| "mutability": "constant", | |
| "name": "BEACON_SLOT", | |
| "nameLocation": "4767:11:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 340, | |
| "src": "4741:106:1", | |
| "stateVariable": true, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| }, | |
| "typeName": { | |
| "id": 226, | |
| "name": "bytes32", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4741:7:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| }, | |
| "value": { | |
| "hexValue": "307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530", | |
| "id": 227, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "4781:66:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1", | |
| "typeString": "int_const 7415...(69 digits omitted)...4704" | |
| }, | |
| "value": "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50" | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 240, | |
| "nodeType": "Block", | |
| "src": "4963:69:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 236, | |
| "name": "BEACON_SLOT", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 228, | |
| "src": "5007:11:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| ], | |
| "expression": { | |
| "id": 234, | |
| "name": "StorageSlot", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 749, | |
| "src": "4980:11:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_StorageSlot_$749_$", | |
| "typeString": "type(library StorageSlot)" | |
| } | |
| }, | |
| "id": 235, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "4992:14:1", | |
| "memberName": "getAddressSlot", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 671, | |
| "src": "4980:26:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$645_storage_ptr_$", | |
| "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" | |
| } | |
| }, | |
| "id": 237, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4980:39:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_AddressSlot_$645_storage_ptr", | |
| "typeString": "struct StorageSlot.AddressSlot storage pointer" | |
| } | |
| }, | |
| "id": 238, | |
| "isConstant": false, | |
| "isLValue": true, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5020:5:1", | |
| "memberName": "value", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 644, | |
| "src": "4980:45:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "functionReturnParameters": 233, | |
| "id": 239, | |
| "nodeType": "Return", | |
| "src": "4973:52:1" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 229, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "4854:51:1", | |
| "text": " @dev Returns the current beacon." | |
| }, | |
| "id": 241, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getBeacon", | |
| "nameLocation": "4919:9:1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 230, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "4928:2:1" | |
| }, | |
| "returnParameters": { | |
| "id": 233, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 232, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 241, | |
| "src": "4954:7:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 231, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4954:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "4953:9:1" | |
| }, | |
| "scope": 340, | |
| "src": "4910:122:1", | |
| "stateMutability": "view", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 286, | |
| "nodeType": "Block", | |
| "src": "5161:390:1", | |
| "statements": [ | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 251, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "expression": { | |
| "id": 247, | |
| "name": "newBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 244, | |
| "src": "5175:9:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 248, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5185:4:1", | |
| "memberName": "code", | |
| "nodeType": "MemberAccess", | |
| "src": "5175:14:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "id": 249, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5190:6:1", | |
| "memberName": "length", | |
| "nodeType": "MemberAccess", | |
| "src": "5175:21:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": "==", | |
| "rightExpression": { | |
| "hexValue": "30", | |
| "id": 250, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "5200:1:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_0_by_1", | |
| "typeString": "int_const 0" | |
| }, | |
| "value": "0" | |
| }, | |
| "src": "5175:26:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "id": 257, | |
| "nodeType": "IfStatement", | |
| "src": "5171:95:1", | |
| "trueBody": { | |
| "id": 256, | |
| "nodeType": "Block", | |
| "src": "5203:63:1", | |
| "statements": [ | |
| { | |
| "errorCall": { | |
| "arguments": [ | |
| { | |
| "id": 253, | |
| "name": "newBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 244, | |
| "src": "5245:9:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 252, | |
| "name": "ERC1967InvalidBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 82, | |
| "src": "5224:20:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", | |
| "typeString": "function (address) pure" | |
| } | |
| }, | |
| "id": 254, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "5224:31:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 255, | |
| "nodeType": "RevertStatement", | |
| "src": "5217:38:1" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "expression": { | |
| "id": 265, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftHandSide": { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 261, | |
| "name": "BEACON_SLOT", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 228, | |
| "src": "5303:11:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| ], | |
| "expression": { | |
| "id": 258, | |
| "name": "StorageSlot", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 749, | |
| "src": "5276:11:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_StorageSlot_$749_$", | |
| "typeString": "type(library StorageSlot)" | |
| } | |
| }, | |
| "id": 260, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5288:14:1", | |
| "memberName": "getAddressSlot", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 671, | |
| "src": "5276:26:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$645_storage_ptr_$", | |
| "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" | |
| } | |
| }, | |
| "id": 262, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "5276:39:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_AddressSlot_$645_storage_ptr", | |
| "typeString": "struct StorageSlot.AddressSlot storage pointer" | |
| } | |
| }, | |
| "id": 263, | |
| "isConstant": false, | |
| "isLValue": true, | |
| "isPure": false, | |
| "lValueRequested": true, | |
| "memberLocation": "5316:5:1", | |
| "memberName": "value", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 644, | |
| "src": "5276:45:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "nodeType": "Assignment", | |
| "operator": "=", | |
| "rightHandSide": { | |
| "id": 264, | |
| "name": "newBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 244, | |
| "src": "5324:9:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "src": "5276:57:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 266, | |
| "nodeType": "ExpressionStatement", | |
| "src": "5276:57:1" | |
| }, | |
| { | |
| "assignments": [ | |
| 268 | |
| ], | |
| "declarations": [ | |
| { | |
| "constant": false, | |
| "id": 268, | |
| "mutability": "mutable", | |
| "name": "beaconImplementation", | |
| "nameLocation": "5352:20:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 286, | |
| "src": "5344:28:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 267, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "5344:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "id": 274, | |
| "initialValue": { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 270, | |
| "name": "newBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 244, | |
| "src": "5383:9:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 269, | |
| "name": "IBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 386, | |
| "src": "5375:7:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_IBeacon_$386_$", | |
| "typeString": "type(contract IBeacon)" | |
| } | |
| }, | |
| "id": 271, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "typeConversion", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "5375:18:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_contract$_IBeacon_$386", | |
| "typeString": "contract IBeacon" | |
| } | |
| }, | |
| "id": 272, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5394:14:1", | |
| "memberName": "implementation", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 385, | |
| "src": "5375:33:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", | |
| "typeString": "function () view external returns (address)" | |
| } | |
| }, | |
| "id": 273, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "5375:35:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "nodeType": "VariableDeclarationStatement", | |
| "src": "5344:66:1" | |
| }, | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 279, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "expression": { | |
| "id": 275, | |
| "name": "beaconImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 268, | |
| "src": "5424:20:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 276, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5445:4:1", | |
| "memberName": "code", | |
| "nodeType": "MemberAccess", | |
| "src": "5424:25:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "id": 277, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5450:6:1", | |
| "memberName": "length", | |
| "nodeType": "MemberAccess", | |
| "src": "5424:32:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": "==", | |
| "rightExpression": { | |
| "hexValue": "30", | |
| "id": 278, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "5460:1:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_0_by_1", | |
| "typeString": "int_const 0" | |
| }, | |
| "value": "0" | |
| }, | |
| "src": "5424:37:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "id": 285, | |
| "nodeType": "IfStatement", | |
| "src": "5420:125:1", | |
| "trueBody": { | |
| "id": 284, | |
| "nodeType": "Block", | |
| "src": "5463:82:1", | |
| "statements": [ | |
| { | |
| "errorCall": { | |
| "arguments": [ | |
| { | |
| "id": 281, | |
| "name": "beaconImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 268, | |
| "src": "5513:20:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 280, | |
| "name": "ERC1967InvalidImplementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 72, | |
| "src": "5484:28:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", | |
| "typeString": "function (address) pure" | |
| } | |
| }, | |
| "id": 282, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "5484:50:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 283, | |
| "nodeType": "RevertStatement", | |
| "src": "5477:57:1" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 242, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "5038:71:1", | |
| "text": " @dev Stores a new beacon in the EIP1967 beacon slot." | |
| }, | |
| "id": 287, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "_setBeacon", | |
| "nameLocation": "5123:10:1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 245, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 244, | |
| "mutability": "mutable", | |
| "name": "newBeacon", | |
| "nameLocation": "5142:9:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 287, | |
| "src": "5134:17:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 243, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "5134:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "5133:19:1" | |
| }, | |
| "returnParameters": { | |
| "id": 246, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "5161:0:1" | |
| }, | |
| "scope": 340, | |
| "src": "5114:437:1", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "private" | |
| }, | |
| { | |
| "body": { | |
| "id": 324, | |
| "nodeType": "Block", | |
| "src": "6155:254:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 296, | |
| "name": "newBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 290, | |
| "src": "6176:9:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 295, | |
| "name": "_setBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 287, | |
| "src": "6165:10:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", | |
| "typeString": "function (address)" | |
| } | |
| }, | |
| "id": 297, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "6165:21:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 298, | |
| "nodeType": "ExpressionStatement", | |
| "src": "6165:21:1" | |
| }, | |
| { | |
| "eventCall": { | |
| "arguments": [ | |
| { | |
| "id": 300, | |
| "name": "newBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 290, | |
| "src": "6216:9:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 299, | |
| "name": "BeaconUpgraded", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 63, | |
| "src": "6201:14:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", | |
| "typeString": "function (address)" | |
| } | |
| }, | |
| "id": 301, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "6201:25:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 302, | |
| "nodeType": "EmitStatement", | |
| "src": "6196:30:1" | |
| }, | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 306, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "id": 303, | |
| "name": "data", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 292, | |
| "src": "6241:4:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "id": 304, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "6246:6:1", | |
| "memberName": "length", | |
| "nodeType": "MemberAccess", | |
| "src": "6241:11:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": ">", | |
| "rightExpression": { | |
| "hexValue": "30", | |
| "id": 305, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "6255:1:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_0_by_1", | |
| "typeString": "int_const 0" | |
| }, | |
| "value": "0" | |
| }, | |
| "src": "6241:15:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "falseBody": { | |
| "id": 322, | |
| "nodeType": "Block", | |
| "src": "6360:43:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "id": 319, | |
| "name": "_checkNonPayable", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 339, | |
| "src": "6374:16:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", | |
| "typeString": "function ()" | |
| } | |
| }, | |
| "id": 320, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "6374:18:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 321, | |
| "nodeType": "ExpressionStatement", | |
| "src": "6374:18:1" | |
| } | |
| ] | |
| }, | |
| "id": 323, | |
| "nodeType": "IfStatement", | |
| "src": "6237:166:1", | |
| "trueBody": { | |
| "id": 318, | |
| "nodeType": "Block", | |
| "src": "6258:96:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 311, | |
| "name": "newBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 290, | |
| "src": "6309:9:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 310, | |
| "name": "IBeacon", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 386, | |
| "src": "6301:7:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_IBeacon_$386_$", | |
| "typeString": "type(contract IBeacon)" | |
| } | |
| }, | |
| "id": 312, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "typeConversion", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "6301:18:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_contract$_IBeacon_$386", | |
| "typeString": "contract IBeacon" | |
| } | |
| }, | |
| "id": 313, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "6320:14:1", | |
| "memberName": "implementation", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 385, | |
| "src": "6301:33:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", | |
| "typeString": "function () view external returns (address)" | |
| } | |
| }, | |
| "id": 314, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "6301:35:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| { | |
| "id": 315, | |
| "name": "data", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 292, | |
| "src": "6338:4:1", | |
| "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": 307, | |
| "name": "Address", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 639, | |
| "src": "6272:7:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_contract$_Address_$639_$", | |
| "typeString": "type(library Address)" | |
| } | |
| }, | |
| "id": 309, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "6280:20:1", | |
| "memberName": "functionDelegateCall", | |
| "nodeType": "MemberAccess", | |
| "referencedDeclaration": 558, | |
| "src": "6272:28:1", | |
| "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": 316, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "6272:71:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "id": 317, | |
| "nodeType": "ExpressionStatement", | |
| "src": "6272:71:1" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 288, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "5557:514:1", | |
| "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": 325, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "upgradeBeaconToAndCall", | |
| "nameLocation": "6085:22:1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 293, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 290, | |
| "mutability": "mutable", | |
| "name": "newBeacon", | |
| "nameLocation": "6116:9:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 325, | |
| "src": "6108:17:1", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 289, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "6108:7:1", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 292, | |
| "mutability": "mutable", | |
| "name": "data", | |
| "nameLocation": "6140:4:1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 325, | |
| "src": "6127:17:1", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 291, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "6127:5:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "6107:38:1" | |
| }, | |
| "returnParameters": { | |
| "id": 294, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "6155:0:1" | |
| }, | |
| "scope": 340, | |
| "src": "6076:333:1", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 338, | |
| "nodeType": "Block", | |
| "src": "6634:86:1", | |
| "statements": [ | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 332, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "id": 329, | |
| "name": "msg", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 4294967281, | |
| "src": "6648:3:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_magic_message", | |
| "typeString": "msg" | |
| } | |
| }, | |
| "id": 330, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "6652:5:1", | |
| "memberName": "value", | |
| "nodeType": "MemberAccess", | |
| "src": "6648:9:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": ">", | |
| "rightExpression": { | |
| "hexValue": "30", | |
| "id": 331, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "6660:1:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_0_by_1", | |
| "typeString": "int_const 0" | |
| }, | |
| "value": "0" | |
| }, | |
| "src": "6648:13:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "id": 337, | |
| "nodeType": "IfStatement", | |
| "src": "6644:70:1", | |
| "trueBody": { | |
| "id": 336, | |
| "nodeType": "Block", | |
| "src": "6663:51:1", | |
| "statements": [ | |
| { | |
| "errorCall": { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "id": 333, | |
| "name": "ERC1967NonPayable", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 85, | |
| "src": "6684:17:1", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_error_pure$__$returns$__$", | |
| "typeString": "function () pure" | |
| } | |
| }, | |
| "id": 334, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "6684:19:1", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 335, | |
| "nodeType": "RevertStatement", | |
| "src": "6677:26:1" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 326, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "6415:178:1", | |
| "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": 339, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "_checkNonPayable", | |
| "nameLocation": "6607:16:1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 327, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "6623:2:1" | |
| }, | |
| "returnParameters": { | |
| "id": 328, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "6634:0:1" | |
| }, | |
| "scope": 340, | |
| "src": "6598:122:1", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "private" | |
| } | |
| ], | |
| "scope": 341, | |
| "src": "449:6273:1", | |
| "usedErrors": [ | |
| 72, | |
| 77, | |
| 82, | |
| 85 | |
| ], | |
| "usedEvents": [ | |
| 51, | |
| 58, | |
| 63 | |
| ] | |
| } | |
| ], | |
| "src": "114:6609:1" | |
| }, | |
| "id": 1 | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol": { | |
| "ast": { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol", | |
| "exportedSymbols": { | |
| "Proxy": [ | |
| 376 | |
| ] | |
| }, | |
| "id": 377, | |
| "license": "MIT", | |
| "nodeType": "SourceUnit", | |
| "nodes": [ | |
| { | |
| "id": 342, | |
| "literals": [ | |
| "solidity", | |
| "^", | |
| "0.8", | |
| ".20" | |
| ], | |
| "nodeType": "PragmaDirective", | |
| "src": "99:24:2" | |
| }, | |
| { | |
| "abstract": true, | |
| "baseContracts": [], | |
| "canonicalName": "Proxy", | |
| "contractDependencies": [], | |
| "contractKind": "contract", | |
| "documentation": { | |
| "id": 343, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "125:598:2", | |
| "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": 376, | |
| "linearizedBaseContracts": [ | |
| 376 | |
| ], | |
| "name": "Proxy", | |
| "nameLocation": "742:5:2", | |
| "nodeType": "ContractDefinition", | |
| "nodes": [ | |
| { | |
| "body": { | |
| "id": 350, | |
| "nodeType": "Block", | |
| "src": "1009:835:2", | |
| "statements": [ | |
| { | |
| "AST": { | |
| "nativeSrc": "1028:810:2", | |
| "nodeType": "YulBlock", | |
| "src": "1028:810:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1281:1:2", | |
| "nodeType": "YulLiteral", | |
| "src": "1281:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1284:1:2", | |
| "nodeType": "YulLiteral", | |
| "src": "1284:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "calldatasize", | |
| "nativeSrc": "1287:12:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1287:12:2" | |
| }, | |
| "nativeSrc": "1287:14:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1287:14:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldatacopy", | |
| "nativeSrc": "1268:12:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1268:12:2" | |
| }, | |
| "nativeSrc": "1268:34:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1268:34:2" | |
| }, | |
| "nativeSrc": "1268:34:2", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1268:34:2" | |
| }, | |
| { | |
| "nativeSrc": "1429:74:2", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "1429:74:2", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "gas", | |
| "nativeSrc": "1456:3:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1456:3:2" | |
| }, | |
| "nativeSrc": "1456:5:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1456:5:2" | |
| }, | |
| { | |
| "name": "implementation", | |
| "nativeSrc": "1463:14:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1463:14:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1479:1:2", | |
| "nodeType": "YulLiteral", | |
| "src": "1479:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "calldatasize", | |
| "nativeSrc": "1482:12:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1482:12:2" | |
| }, | |
| "nativeSrc": "1482:14:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1482:14:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1498:1:2", | |
| "nodeType": "YulLiteral", | |
| "src": "1498:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1501:1:2", | |
| "nodeType": "YulLiteral", | |
| "src": "1501:1:2", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "delegatecall", | |
| "nativeSrc": "1443:12:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1443:12:2" | |
| }, | |
| "nativeSrc": "1443:60:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1443:60:2" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "result", | |
| "nativeSrc": "1433:6:2", | |
| "nodeType": "YulTypedName", | |
| "src": "1433:6:2", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1571:1:2", | |
| "nodeType": "YulLiteral", | |
| "src": "1571:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1574:1:2", | |
| "nodeType": "YulLiteral", | |
| "src": "1574:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "returndatasize", | |
| "nativeSrc": "1577:14:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1577:14:2" | |
| }, | |
| "nativeSrc": "1577:16:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1577:16:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "returndatacopy", | |
| "nativeSrc": "1556:14:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1556:14:2" | |
| }, | |
| "nativeSrc": "1556:38:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1556:38:2" | |
| }, | |
| "nativeSrc": "1556:38:2", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1556:38:2" | |
| }, | |
| { | |
| "cases": [ | |
| { | |
| "body": { | |
| "nativeSrc": "1689:59:2", | |
| "nodeType": "YulBlock", | |
| "src": "1689:59:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1714:1:2", | |
| "nodeType": "YulLiteral", | |
| "src": "1714:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "returndatasize", | |
| "nativeSrc": "1717:14:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1717:14:2" | |
| }, | |
| "nativeSrc": "1717:16:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1717:16:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "1707:6:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1707:6:2" | |
| }, | |
| "nativeSrc": "1707:27:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1707:27:2" | |
| }, | |
| "nativeSrc": "1707:27:2", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1707:27:2" | |
| } | |
| ] | |
| }, | |
| "nativeSrc": "1682:66:2", | |
| "nodeType": "YulCase", | |
| "src": "1682:66:2", | |
| "value": { | |
| "kind": "number", | |
| "nativeSrc": "1687:1:2", | |
| "nodeType": "YulLiteral", | |
| "src": "1687:1:2", | |
| "type": "", | |
| "value": "0" | |
| } | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1769:59:2", | |
| "nodeType": "YulBlock", | |
| "src": "1769:59:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1794:1:2", | |
| "nodeType": "YulLiteral", | |
| "src": "1794:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "returndatasize", | |
| "nativeSrc": "1797:14:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1797:14:2" | |
| }, | |
| "nativeSrc": "1797:16:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1797:16:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "return", | |
| "nativeSrc": "1787:6:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1787:6:2" | |
| }, | |
| "nativeSrc": "1787:27:2", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1787:27:2" | |
| }, | |
| "nativeSrc": "1787:27:2", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1787:27:2" | |
| } | |
| ] | |
| }, | |
| "nativeSrc": "1761:67:2", | |
| "nodeType": "YulCase", | |
| "src": "1761:67:2", | |
| "value": "default" | |
| } | |
| ], | |
| "expression": { | |
| "name": "result", | |
| "nativeSrc": "1615:6:2", | |
| "nodeType": "YulIdentifier", | |
| "src": "1615:6:2" | |
| }, | |
| "nativeSrc": "1608:220:2", | |
| "nodeType": "YulSwitch", | |
| "src": "1608:220:2" | |
| } | |
| ] | |
| }, | |
| "evmVersion": "shanghai", | |
| "externalReferences": [ | |
| { | |
| "declaration": 346, | |
| "isOffset": false, | |
| "isSlot": false, | |
| "src": "1463:14:2", | |
| "valueSize": 1 | |
| } | |
| ], | |
| "id": 349, | |
| "nodeType": "InlineAssembly", | |
| "src": "1019:819:2" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 344, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "754:190:2", | |
| "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": 351, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "_delegate", | |
| "nameLocation": "958:9:2", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 347, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 346, | |
| "mutability": "mutable", | |
| "name": "implementation", | |
| "nameLocation": "976:14:2", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 351, | |
| "src": "968:22:2", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 345, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "968:7:2", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "967:24:2" | |
| }, | |
| "returnParameters": { | |
| "id": 348, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "1009:0:2" | |
| }, | |
| "scope": 376, | |
| "src": "949:895:2", | |
| "stateMutability": "nonpayable", | |
| "virtual": true, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "documentation": { | |
| "id": 352, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1850:173:2", | |
| "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": 357, | |
| "implemented": false, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "_implementation", | |
| "nameLocation": "2037:15:2", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 353, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "2052:2:2" | |
| }, | |
| "returnParameters": { | |
| "id": 356, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 355, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 357, | |
| "src": "2086:7:2", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 354, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2086:7:2", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2085:9:2" | |
| }, | |
| "scope": 376, | |
| "src": "2028:67:2", | |
| "stateMutability": "view", | |
| "virtual": true, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 366, | |
| "nodeType": "Block", | |
| "src": "2361:45:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "id": 362, | |
| "name": "_implementation", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 357, | |
| "src": "2381:15:2", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", | |
| "typeString": "function () view returns (address)" | |
| } | |
| }, | |
| "id": 363, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "2381:17:2", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 361, | |
| "name": "_delegate", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 351, | |
| "src": "2371:9:2", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", | |
| "typeString": "function (address)" | |
| } | |
| }, | |
| "id": 364, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "2371:28:2", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 365, | |
| "nodeType": "ExpressionStatement", | |
| "src": "2371:28:2" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 358, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "2101:217:2", | |
| "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": 367, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "_fallback", | |
| "nameLocation": "2332:9:2", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 359, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "2341:2:2" | |
| }, | |
| "returnParameters": { | |
| "id": 360, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "2361:0:2" | |
| }, | |
| "scope": 376, | |
| "src": "2323:83:2", | |
| "stateMutability": "nonpayable", | |
| "virtual": true, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 374, | |
| "nodeType": "Block", | |
| "src": "2639:28:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "id": 371, | |
| "name": "_fallback", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 367, | |
| "src": "2649:9:2", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", | |
| "typeString": "function ()" | |
| } | |
| }, | |
| "id": 372, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "2649:11:2", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 373, | |
| "nodeType": "ExpressionStatement", | |
| "src": "2649:11:2" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 368, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "2412:186:2", | |
| "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": 375, | |
| "implemented": true, | |
| "kind": "fallback", | |
| "modifiers": [], | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 369, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "2611:2:2" | |
| }, | |
| "returnParameters": { | |
| "id": 370, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "2639:0:2" | |
| }, | |
| "scope": 376, | |
| "src": "2603:64:2", | |
| "stateMutability": "payable", | |
| "virtual": true, | |
| "visibility": "external" | |
| } | |
| ], | |
| "scope": 377, | |
| "src": "724:1945:2", | |
| "usedErrors": [], | |
| "usedEvents": [] | |
| } | |
| ], | |
| "src": "99:2571:2" | |
| }, | |
| "id": 2 | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol": { | |
| "ast": { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", | |
| "exportedSymbols": { | |
| "IBeacon": [ | |
| 386 | |
| ] | |
| }, | |
| "id": 387, | |
| "license": "MIT", | |
| "nodeType": "SourceUnit", | |
| "nodes": [ | |
| { | |
| "id": 378, | |
| "literals": [ | |
| "solidity", | |
| "^", | |
| "0.8", | |
| ".20" | |
| ], | |
| "nodeType": "PragmaDirective", | |
| "src": "108:24:3" | |
| }, | |
| { | |
| "abstract": false, | |
| "baseContracts": [], | |
| "canonicalName": "IBeacon", | |
| "contractDependencies": [], | |
| "contractKind": "interface", | |
| "documentation": { | |
| "id": 379, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "134:79:3", | |
| "text": " @dev This is the interface that {BeaconProxy} expects of its beacon." | |
| }, | |
| "fullyImplemented": false, | |
| "id": 386, | |
| "linearizedBaseContracts": [ | |
| 386 | |
| ], | |
| "name": "IBeacon", | |
| "nameLocation": "224:7:3", | |
| "nodeType": "ContractDefinition", | |
| "nodes": [ | |
| { | |
| "documentation": { | |
| "id": 380, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "238:168:3", | |
| "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": 385, | |
| "implemented": false, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "implementation", | |
| "nameLocation": "420:14:3", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 381, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "434:2:3" | |
| }, | |
| "returnParameters": { | |
| "id": 384, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 383, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 385, | |
| "src": "460:7:3", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 382, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "460:7:3", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "459:9:3" | |
| }, | |
| "scope": 386, | |
| "src": "411:58:3", | |
| "stateMutability": "view", | |
| "virtual": false, | |
| "visibility": "external" | |
| } | |
| ], | |
| "scope": 387, | |
| "src": "214:257:3", | |
| "usedErrors": [], | |
| "usedEvents": [] | |
| } | |
| ], | |
| "src": "108:364:3" | |
| }, | |
| "id": 3 | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol": { | |
| "ast": { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol", | |
| "exportedSymbols": { | |
| "Address": [ | |
| 639 | |
| ] | |
| }, | |
| "id": 640, | |
| "license": "MIT", | |
| "nodeType": "SourceUnit", | |
| "nodes": [ | |
| { | |
| "id": 388, | |
| "literals": [ | |
| "solidity", | |
| "^", | |
| "0.8", | |
| ".20" | |
| ], | |
| "nodeType": "PragmaDirective", | |
| "src": "101:24:4" | |
| }, | |
| { | |
| "abstract": false, | |
| "baseContracts": [], | |
| "canonicalName": "Address", | |
| "contractDependencies": [], | |
| "contractKind": "library", | |
| "documentation": { | |
| "id": 389, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "127:67:4", | |
| "text": " @dev Collection of functions related to the address type" | |
| }, | |
| "fullyImplemented": true, | |
| "id": 639, | |
| "linearizedBaseContracts": [ | |
| 639 | |
| ], | |
| "name": "Address", | |
| "nameLocation": "203:7:4", | |
| "nodeType": "ContractDefinition", | |
| "nodes": [ | |
| { | |
| "documentation": { | |
| "id": 390, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "217:94:4", | |
| "text": " @dev The ETH balance of the account is not enough to perform the operation." | |
| }, | |
| "errorSelector": "cd786059", | |
| "id": 394, | |
| "name": "AddressInsufficientBalance", | |
| "nameLocation": "322:26:4", | |
| "nodeType": "ErrorDefinition", | |
| "parameters": { | |
| "id": 393, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 392, | |
| "mutability": "mutable", | |
| "name": "account", | |
| "nameLocation": "357:7:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 394, | |
| "src": "349:15:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 391, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "349:7:4", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "348:17:4" | |
| }, | |
| "src": "316:50:4" | |
| }, | |
| { | |
| "documentation": { | |
| "id": 395, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "372:75:4", | |
| "text": " @dev There's no code at `target` (it is not a contract)." | |
| }, | |
| "errorSelector": "9996b315", | |
| "id": 399, | |
| "name": "AddressEmptyCode", | |
| "nameLocation": "458:16:4", | |
| "nodeType": "ErrorDefinition", | |
| "parameters": { | |
| "id": 398, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 397, | |
| "mutability": "mutable", | |
| "name": "target", | |
| "nameLocation": "483:6:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 399, | |
| "src": "475:14:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 396, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "475:7:4", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "474:16:4" | |
| }, | |
| "src": "452:39:4" | |
| }, | |
| { | |
| "documentation": { | |
| "id": 400, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "497:89:4", | |
| "text": " @dev A call to an address target failed. The target may have reverted." | |
| }, | |
| "errorSelector": "1425ea42", | |
| "id": 402, | |
| "name": "FailedInnerCall", | |
| "nameLocation": "597:15:4", | |
| "nodeType": "ErrorDefinition", | |
| "parameters": { | |
| "id": 401, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "612:2:4" | |
| }, | |
| "src": "591:24:4" | |
| }, | |
| { | |
| "body": { | |
| "id": 442, | |
| "nodeType": "Block", | |
| "src": "1602:260:4", | |
| "statements": [ | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 416, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 412, | |
| "name": "this", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 4294967268, | |
| "src": "1624:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_contract$_Address_$639", | |
| "typeString": "library Address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_contract$_Address_$639", | |
| "typeString": "library Address" | |
| } | |
| ], | |
| "id": 411, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "lValueRequested": false, | |
| "nodeType": "ElementaryTypeNameExpression", | |
| "src": "1616:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_address_$", | |
| "typeString": "type(address)" | |
| }, | |
| "typeName": { | |
| "id": 410, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1616:7:4", | |
| "typeDescriptions": {} | |
| } | |
| }, | |
| "id": 413, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "typeConversion", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "1616:13:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 414, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "1630:7:4", | |
| "memberName": "balance", | |
| "nodeType": "MemberAccess", | |
| "src": "1616:21:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": "<", | |
| "rightExpression": { | |
| "id": 415, | |
| "name": "amount", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 407, | |
| "src": "1640:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "src": "1616:30:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "id": 425, | |
| "nodeType": "IfStatement", | |
| "src": "1612:109:4", | |
| "trueBody": { | |
| "id": 424, | |
| "nodeType": "Block", | |
| "src": "1648:73:4", | |
| "statements": [ | |
| { | |
| "errorCall": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "id": 420, | |
| "name": "this", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 4294967268, | |
| "src": "1704:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_contract$_Address_$639", | |
| "typeString": "library Address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_contract$_Address_$639", | |
| "typeString": "library Address" | |
| } | |
| ], | |
| "id": 419, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "lValueRequested": false, | |
| "nodeType": "ElementaryTypeNameExpression", | |
| "src": "1696:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_address_$", | |
| "typeString": "type(address)" | |
| }, | |
| "typeName": { | |
| "id": 418, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1696:7:4", | |
| "typeDescriptions": {} | |
| } | |
| }, | |
| "id": 421, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "typeConversion", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "1696:13:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 417, | |
| "name": "AddressInsufficientBalance", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 394, | |
| "src": "1669:26:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", | |
| "typeString": "function (address) pure" | |
| } | |
| }, | |
| "id": 422, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "1669:41:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 423, | |
| "nodeType": "RevertStatement", | |
| "src": "1662:48:4" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "assignments": [ | |
| 427, | |
| null | |
| ], | |
| "declarations": [ | |
| { | |
| "constant": false, | |
| "id": 427, | |
| "mutability": "mutable", | |
| "name": "success", | |
| "nameLocation": "1737:7:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 442, | |
| "src": "1732:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| }, | |
| "typeName": { | |
| "id": 426, | |
| "name": "bool", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1732:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| null | |
| ], | |
| "id": 434, | |
| "initialValue": { | |
| "arguments": [ | |
| { | |
| "hexValue": "", | |
| "id": 432, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "string", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "1780:2:4", | |
| "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": 428, | |
| "name": "recipient", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 405, | |
| "src": "1750:9:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address_payable", | |
| "typeString": "address payable" | |
| } | |
| }, | |
| "id": 429, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "1760:4:4", | |
| "memberName": "call", | |
| "nodeType": "MemberAccess", | |
| "src": "1750:14:4", | |
| "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": 431, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "names": [ | |
| "value" | |
| ], | |
| "nodeType": "FunctionCallOptions", | |
| "options": [ | |
| { | |
| "id": 430, | |
| "name": "amount", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 407, | |
| "src": "1772:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| } | |
| ], | |
| "src": "1750:29:4", | |
| "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": 433, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "1750:33:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", | |
| "typeString": "tuple(bool,bytes memory)" | |
| } | |
| }, | |
| "nodeType": "VariableDeclarationStatement", | |
| "src": "1731:52:4" | |
| }, | |
| { | |
| "condition": { | |
| "id": 436, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "nodeType": "UnaryOperation", | |
| "operator": "!", | |
| "prefix": true, | |
| "src": "1797:8:4", | |
| "subExpression": { | |
| "id": 435, | |
| "name": "success", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 427, | |
| "src": "1798:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "id": 441, | |
| "nodeType": "IfStatement", | |
| "src": "1793:63:4", | |
| "trueBody": { | |
| "id": 440, | |
| "nodeType": "Block", | |
| "src": "1807:49:4", | |
| "statements": [ | |
| { | |
| "errorCall": { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "id": 437, | |
| "name": "FailedInnerCall", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 402, | |
| "src": "1828:15:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_error_pure$__$returns$__$", | |
| "typeString": "function () pure" | |
| } | |
| }, | |
| "id": 438, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "1828:17:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 439, | |
| "nodeType": "RevertStatement", | |
| "src": "1821:24:4" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 403, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "621:905:4", | |
| "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": 443, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "sendValue", | |
| "nameLocation": "1540:9:4", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 408, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 405, | |
| "mutability": "mutable", | |
| "name": "recipient", | |
| "nameLocation": "1566:9:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 443, | |
| "src": "1550:25:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address_payable", | |
| "typeString": "address payable" | |
| }, | |
| "typeName": { | |
| "id": 404, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1550:15:4", | |
| "stateMutability": "payable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address_payable", | |
| "typeString": "address payable" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 407, | |
| "mutability": "mutable", | |
| "name": "amount", | |
| "nameLocation": "1585:6:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 443, | |
| "src": "1577:14:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 406, | |
| "name": "uint256", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1577:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "1549:43:4" | |
| }, | |
| "returnParameters": { | |
| "id": 409, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "1602:0:4" | |
| }, | |
| "scope": 639, | |
| "src": "1531:331:4", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 459, | |
| "nodeType": "Block", | |
| "src": "2794:62:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 454, | |
| "name": "target", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 446, | |
| "src": "2833:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| { | |
| "id": 455, | |
| "name": "data", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 448, | |
| "src": "2841:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| { | |
| "hexValue": "30", | |
| "id": 456, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "2847:1:4", | |
| "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": 453, | |
| "name": "functionCallWithValue", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 506, | |
| "src": "2811:21:4", | |
| "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": 457, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "2811:38:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "functionReturnParameters": 452, | |
| "id": 458, | |
| "nodeType": "Return", | |
| "src": "2804:45:4" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 444, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1868:832:4", | |
| "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason or custom error, it is bubbled\n up by this function (like regular Solidity function calls). However, if\n the call reverted with no returned reason, this function reverts with a\n {FailedInnerCall} error.\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert." | |
| }, | |
| "id": 460, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "functionCall", | |
| "nameLocation": "2714:12:4", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 449, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 446, | |
| "mutability": "mutable", | |
| "name": "target", | |
| "nameLocation": "2735:6:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 460, | |
| "src": "2727:14:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 445, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2727:7:4", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 448, | |
| "mutability": "mutable", | |
| "name": "data", | |
| "nameLocation": "2756:4:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 460, | |
| "src": "2743:17:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 447, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2743:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2726:35:4" | |
| }, | |
| "returnParameters": { | |
| "id": 452, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 451, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 460, | |
| "src": "2780:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 450, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2780:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2779:14:4" | |
| }, | |
| "scope": 639, | |
| "src": "2705:151:4", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 505, | |
| "nodeType": "Block", | |
| "src": "3293:279:4", | |
| "statements": [ | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 478, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 474, | |
| "name": "this", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 4294967268, | |
| "src": "3315:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_contract$_Address_$639", | |
| "typeString": "library Address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_contract$_Address_$639", | |
| "typeString": "library Address" | |
| } | |
| ], | |
| "id": 473, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "lValueRequested": false, | |
| "nodeType": "ElementaryTypeNameExpression", | |
| "src": "3307:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_address_$", | |
| "typeString": "type(address)" | |
| }, | |
| "typeName": { | |
| "id": 472, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3307:7:4", | |
| "typeDescriptions": {} | |
| } | |
| }, | |
| "id": 475, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "typeConversion", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "3307:13:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 476, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "3321:7:4", | |
| "memberName": "balance", | |
| "nodeType": "MemberAccess", | |
| "src": "3307:21:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": "<", | |
| "rightExpression": { | |
| "id": 477, | |
| "name": "value", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 467, | |
| "src": "3331:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "src": "3307:29:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "id": 487, | |
| "nodeType": "IfStatement", | |
| "src": "3303:108:4", | |
| "trueBody": { | |
| "id": 486, | |
| "nodeType": "Block", | |
| "src": "3338:73:4", | |
| "statements": [ | |
| { | |
| "errorCall": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "id": 482, | |
| "name": "this", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 4294967268, | |
| "src": "3394:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_contract$_Address_$639", | |
| "typeString": "library Address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_contract$_Address_$639", | |
| "typeString": "library Address" | |
| } | |
| ], | |
| "id": 481, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "lValueRequested": false, | |
| "nodeType": "ElementaryTypeNameExpression", | |
| "src": "3386:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_type$_t_address_$", | |
| "typeString": "type(address)" | |
| }, | |
| "typeName": { | |
| "id": 480, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3386:7:4", | |
| "typeDescriptions": {} | |
| } | |
| }, | |
| "id": 483, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "typeConversion", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "3386:13:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 479, | |
| "name": "AddressInsufficientBalance", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 394, | |
| "src": "3359:26:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", | |
| "typeString": "function (address) pure" | |
| } | |
| }, | |
| "id": 484, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "3359:41:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 485, | |
| "nodeType": "RevertStatement", | |
| "src": "3352:48:4" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "assignments": [ | |
| 489, | |
| 491 | |
| ], | |
| "declarations": [ | |
| { | |
| "constant": false, | |
| "id": 489, | |
| "mutability": "mutable", | |
| "name": "success", | |
| "nameLocation": "3426:7:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 505, | |
| "src": "3421:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| }, | |
| "typeName": { | |
| "id": 488, | |
| "name": "bool", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3421:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 491, | |
| "mutability": "mutable", | |
| "name": "returndata", | |
| "nameLocation": "3448:10:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 505, | |
| "src": "3435:23:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 490, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3435:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "id": 498, | |
| "initialValue": { | |
| "arguments": [ | |
| { | |
| "id": 496, | |
| "name": "data", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 465, | |
| "src": "3488:4:4", | |
| "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": 492, | |
| "name": "target", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 463, | |
| "src": "3462:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 493, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "3469:4:4", | |
| "memberName": "call", | |
| "nodeType": "MemberAccess", | |
| "src": "3462:11:4", | |
| "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": 495, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "names": [ | |
| "value" | |
| ], | |
| "nodeType": "FunctionCallOptions", | |
| "options": [ | |
| { | |
| "id": 494, | |
| "name": "value", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 467, | |
| "src": "3481:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| } | |
| ], | |
| "src": "3462:25:4", | |
| "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": 497, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "3462:31:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", | |
| "typeString": "tuple(bool,bytes memory)" | |
| } | |
| }, | |
| "nodeType": "VariableDeclarationStatement", | |
| "src": "3420:73:4" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 500, | |
| "name": "target", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 463, | |
| "src": "3537:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| { | |
| "id": 501, | |
| "name": "success", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 489, | |
| "src": "3545:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| { | |
| "id": 502, | |
| "name": "returndata", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 491, | |
| "src": "3554:10:4", | |
| "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": 499, | |
| "name": "verifyCallResultFromTarget", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 598, | |
| "src": "3510:26:4", | |
| "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": 503, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "3510:55:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "functionReturnParameters": 471, | |
| "id": 504, | |
| "nodeType": "Return", | |
| "src": "3503:62:4" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 461, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "2862:313:4", | |
| "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": 506, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "functionCallWithValue", | |
| "nameLocation": "3189:21:4", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 468, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 463, | |
| "mutability": "mutable", | |
| "name": "target", | |
| "nameLocation": "3219:6:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 506, | |
| "src": "3211:14:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 462, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3211:7:4", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 465, | |
| "mutability": "mutable", | |
| "name": "data", | |
| "nameLocation": "3240:4:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 506, | |
| "src": "3227:17:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 464, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3227:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 467, | |
| "mutability": "mutable", | |
| "name": "value", | |
| "nameLocation": "3254:5:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 506, | |
| "src": "3246:13:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 466, | |
| "name": "uint256", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3246:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3210:50:4" | |
| }, | |
| "returnParameters": { | |
| "id": 471, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 470, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 506, | |
| "src": "3279:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 469, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3279:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3278:14:4" | |
| }, | |
| "scope": 639, | |
| "src": "3180:392:4", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 531, | |
| "nodeType": "Block", | |
| "src": "3811:154:4", | |
| "statements": [ | |
| { | |
| "assignments": [ | |
| 517, | |
| 519 | |
| ], | |
| "declarations": [ | |
| { | |
| "constant": false, | |
| "id": 517, | |
| "mutability": "mutable", | |
| "name": "success", | |
| "nameLocation": "3827:7:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 531, | |
| "src": "3822:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| }, | |
| "typeName": { | |
| "id": 516, | |
| "name": "bool", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3822:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 519, | |
| "mutability": "mutable", | |
| "name": "returndata", | |
| "nameLocation": "3849:10:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 531, | |
| "src": "3836:23:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 518, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3836:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "id": 524, | |
| "initialValue": { | |
| "arguments": [ | |
| { | |
| "id": 522, | |
| "name": "data", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 511, | |
| "src": "3881:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| ], | |
| "expression": { | |
| "id": 520, | |
| "name": "target", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 509, | |
| "src": "3863:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 521, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "3870:10:4", | |
| "memberName": "staticcall", | |
| "nodeType": "MemberAccess", | |
| "src": "3863:17:4", | |
| "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": 523, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "3863:23:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", | |
| "typeString": "tuple(bool,bytes memory)" | |
| } | |
| }, | |
| "nodeType": "VariableDeclarationStatement", | |
| "src": "3821:65:4" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 526, | |
| "name": "target", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 509, | |
| "src": "3930:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| { | |
| "id": 527, | |
| "name": "success", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 517, | |
| "src": "3938:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| { | |
| "id": 528, | |
| "name": "returndata", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 519, | |
| "src": "3947:10:4", | |
| "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": 525, | |
| "name": "verifyCallResultFromTarget", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 598, | |
| "src": "3903:26:4", | |
| "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": 529, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "3903:55:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "functionReturnParameters": 515, | |
| "id": 530, | |
| "nodeType": "Return", | |
| "src": "3896:62:4" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 507, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "3578:128:4", | |
| "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call." | |
| }, | |
| "id": 532, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "functionStaticCall", | |
| "nameLocation": "3720:18:4", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 512, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 509, | |
| "mutability": "mutable", | |
| "name": "target", | |
| "nameLocation": "3747:6:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 532, | |
| "src": "3739:14:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 508, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3739:7:4", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 511, | |
| "mutability": "mutable", | |
| "name": "data", | |
| "nameLocation": "3768:4:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 532, | |
| "src": "3755:17:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 510, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3755:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3738:35:4" | |
| }, | |
| "returnParameters": { | |
| "id": 515, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 514, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 532, | |
| "src": "3797:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 513, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3797:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3796:14:4" | |
| }, | |
| "scope": 639, | |
| "src": "3711:254:4", | |
| "stateMutability": "view", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 557, | |
| "nodeType": "Block", | |
| "src": "4203:156:4", | |
| "statements": [ | |
| { | |
| "assignments": [ | |
| 543, | |
| 545 | |
| ], | |
| "declarations": [ | |
| { | |
| "constant": false, | |
| "id": 543, | |
| "mutability": "mutable", | |
| "name": "success", | |
| "nameLocation": "4219:7:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 557, | |
| "src": "4214:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| }, | |
| "typeName": { | |
| "id": 542, | |
| "name": "bool", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4214:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 545, | |
| "mutability": "mutable", | |
| "name": "returndata", | |
| "nameLocation": "4241:10:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 557, | |
| "src": "4228:23:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 544, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4228:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "id": 550, | |
| "initialValue": { | |
| "arguments": [ | |
| { | |
| "id": 548, | |
| "name": "data", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 537, | |
| "src": "4275:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| ], | |
| "expression": { | |
| "id": 546, | |
| "name": "target", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 535, | |
| "src": "4255:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 547, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "4262:12:4", | |
| "memberName": "delegatecall", | |
| "nodeType": "MemberAccess", | |
| "src": "4255:19:4", | |
| "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": 549, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4255:25:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", | |
| "typeString": "tuple(bool,bytes memory)" | |
| } | |
| }, | |
| "nodeType": "VariableDeclarationStatement", | |
| "src": "4213:67:4" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 552, | |
| "name": "target", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 535, | |
| "src": "4324:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| { | |
| "id": 553, | |
| "name": "success", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 543, | |
| "src": "4332:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| { | |
| "id": 554, | |
| "name": "returndata", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 545, | |
| "src": "4341:10:4", | |
| "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": 551, | |
| "name": "verifyCallResultFromTarget", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 598, | |
| "src": "4297:26:4", | |
| "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": 555, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4297:55:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "functionReturnParameters": 541, | |
| "id": 556, | |
| "nodeType": "Return", | |
| "src": "4290:62:4" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 533, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "3971:130:4", | |
| "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call." | |
| }, | |
| "id": 558, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "functionDelegateCall", | |
| "nameLocation": "4115:20:4", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 538, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 535, | |
| "mutability": "mutable", | |
| "name": "target", | |
| "nameLocation": "4144:6:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 558, | |
| "src": "4136:14:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 534, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4136:7:4", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 537, | |
| "mutability": "mutable", | |
| "name": "data", | |
| "nameLocation": "4165:4:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 558, | |
| "src": "4152:17:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 536, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4152:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "4135:35:4" | |
| }, | |
| "returnParameters": { | |
| "id": 541, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 540, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 558, | |
| "src": "4189:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 539, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4189:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "4188:14:4" | |
| }, | |
| "scope": 639, | |
| "src": "4106:253:4", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 597, | |
| "nodeType": "Block", | |
| "src": "4783:424:4", | |
| "statements": [ | |
| { | |
| "condition": { | |
| "id": 571, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "nodeType": "UnaryOperation", | |
| "operator": "!", | |
| "prefix": true, | |
| "src": "4797:8:4", | |
| "subExpression": { | |
| "id": 570, | |
| "name": "success", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 563, | |
| "src": "4798:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "falseBody": { | |
| "id": 595, | |
| "nodeType": "Block", | |
| "src": "4857:344:4", | |
| "statements": [ | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| }, | |
| "id": 586, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 580, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "id": 577, | |
| "name": "returndata", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 565, | |
| "src": "5045:10:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "id": 578, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5056:6:4", | |
| "memberName": "length", | |
| "nodeType": "MemberAccess", | |
| "src": "5045:17:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": "==", | |
| "rightExpression": { | |
| "hexValue": "30", | |
| "id": 579, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "5066:1:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_0_by_1", | |
| "typeString": "int_const 0" | |
| }, | |
| "value": "0" | |
| }, | |
| "src": "5045:22:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": "&&", | |
| "rightExpression": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 585, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "expression": { | |
| "id": 581, | |
| "name": "target", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 561, | |
| "src": "5071:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "id": 582, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5078:4:4", | |
| "memberName": "code", | |
| "nodeType": "MemberAccess", | |
| "src": "5071:11:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "id": 583, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5083:6:4", | |
| "memberName": "length", | |
| "nodeType": "MemberAccess", | |
| "src": "5071:18:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": "==", | |
| "rightExpression": { | |
| "hexValue": "30", | |
| "id": 584, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "5093:1:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_0_by_1", | |
| "typeString": "int_const 0" | |
| }, | |
| "value": "0" | |
| }, | |
| "src": "5071:23:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "src": "5045:49:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "id": 592, | |
| "nodeType": "IfStatement", | |
| "src": "5041:119:4", | |
| "trueBody": { | |
| "id": 591, | |
| "nodeType": "Block", | |
| "src": "5096:64:4", | |
| "statements": [ | |
| { | |
| "errorCall": { | |
| "arguments": [ | |
| { | |
| "id": 588, | |
| "name": "target", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 561, | |
| "src": "5138:6:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| ], | |
| "id": 587, | |
| "name": "AddressEmptyCode", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 399, | |
| "src": "5121:16:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", | |
| "typeString": "function (address) pure" | |
| } | |
| }, | |
| "id": 589, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "5121:24:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 590, | |
| "nodeType": "RevertStatement", | |
| "src": "5114:31:4" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "expression": { | |
| "id": 593, | |
| "name": "returndata", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 565, | |
| "src": "5180:10:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "functionReturnParameters": 569, | |
| "id": 594, | |
| "nodeType": "Return", | |
| "src": "5173:17:4" | |
| } | |
| ] | |
| }, | |
| "id": 596, | |
| "nodeType": "IfStatement", | |
| "src": "4793:408:4", | |
| "trueBody": { | |
| "id": 576, | |
| "nodeType": "Block", | |
| "src": "4807:44:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 573, | |
| "name": "returndata", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 565, | |
| "src": "4829:10:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| ], | |
| "id": 572, | |
| "name": "_revert", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 638, | |
| "src": "4821:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", | |
| "typeString": "function (bytes memory) pure" | |
| } | |
| }, | |
| "id": 574, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "4821:19:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 575, | |
| "nodeType": "ExpressionStatement", | |
| "src": "4821:19:4" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 559, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "4365:255:4", | |
| "text": " @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n unsuccessful call." | |
| }, | |
| "id": 598, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "verifyCallResultFromTarget", | |
| "nameLocation": "4634:26:4", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 566, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 561, | |
| "mutability": "mutable", | |
| "name": "target", | |
| "nameLocation": "4678:6:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 598, | |
| "src": "4670:14:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 560, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4670:7:4", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 563, | |
| "mutability": "mutable", | |
| "name": "success", | |
| "nameLocation": "4699:7:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 598, | |
| "src": "4694:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| }, | |
| "typeName": { | |
| "id": 562, | |
| "name": "bool", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4694:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 565, | |
| "mutability": "mutable", | |
| "name": "returndata", | |
| "nameLocation": "4729:10:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 598, | |
| "src": "4716:23:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 564, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4716:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "4660:85:4" | |
| }, | |
| "returnParameters": { | |
| "id": 569, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 568, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 598, | |
| "src": "4769:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 567, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "4769:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "4768:14:4" | |
| }, | |
| "scope": 639, | |
| "src": "4625:582:4", | |
| "stateMutability": "view", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 619, | |
| "nodeType": "Block", | |
| "src": "5509:122:4", | |
| "statements": [ | |
| { | |
| "condition": { | |
| "id": 609, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "nodeType": "UnaryOperation", | |
| "operator": "!", | |
| "prefix": true, | |
| "src": "5523:8:4", | |
| "subExpression": { | |
| "id": 608, | |
| "name": "success", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 601, | |
| "src": "5524:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "falseBody": { | |
| "id": 617, | |
| "nodeType": "Block", | |
| "src": "5583:42:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "id": 615, | |
| "name": "returndata", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 603, | |
| "src": "5604:10:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "functionReturnParameters": 607, | |
| "id": 616, | |
| "nodeType": "Return", | |
| "src": "5597:17:4" | |
| } | |
| ] | |
| }, | |
| "id": 618, | |
| "nodeType": "IfStatement", | |
| "src": "5519:106:4", | |
| "trueBody": { | |
| "id": 614, | |
| "nodeType": "Block", | |
| "src": "5533:44:4", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 611, | |
| "name": "returndata", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 603, | |
| "src": "5555:10:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| ], | |
| "id": 610, | |
| "name": "_revert", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 638, | |
| "src": "5547:7:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", | |
| "typeString": "function (bytes memory) pure" | |
| } | |
| }, | |
| "id": 612, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "5547:19:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 613, | |
| "nodeType": "ExpressionStatement", | |
| "src": "5547:19:4" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 599, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "5213:189:4", | |
| "text": " @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n revert reason or with a default {FailedInnerCall} error." | |
| }, | |
| "id": 620, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "verifyCallResult", | |
| "nameLocation": "5416:16:4", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 604, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 601, | |
| "mutability": "mutable", | |
| "name": "success", | |
| "nameLocation": "5438:7:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 620, | |
| "src": "5433:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| }, | |
| "typeName": { | |
| "id": 600, | |
| "name": "bool", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "5433:4:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 603, | |
| "mutability": "mutable", | |
| "name": "returndata", | |
| "nameLocation": "5460:10:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 620, | |
| "src": "5447:23:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 602, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "5447:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "5432:39:4" | |
| }, | |
| "returnParameters": { | |
| "id": 607, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 606, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 620, | |
| "src": "5495:12:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 605, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "5495:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "5494:14:4" | |
| }, | |
| "scope": 639, | |
| "src": "5407:224:4", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 637, | |
| "nodeType": "Block", | |
| "src": "5798:461:4", | |
| "statements": [ | |
| { | |
| "condition": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 629, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "expression": { | |
| "id": 626, | |
| "name": "returndata", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 623, | |
| "src": "5874:10:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes memory" | |
| } | |
| }, | |
| "id": 627, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "memberLocation": "5885:6:4", | |
| "memberName": "length", | |
| "nodeType": "MemberAccess", | |
| "src": "5874:17:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": ">", | |
| "rightExpression": { | |
| "hexValue": "30", | |
| "id": 628, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": true, | |
| "kind": "number", | |
| "lValueRequested": false, | |
| "nodeType": "Literal", | |
| "src": "5894:1:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_rational_0_by_1", | |
| "typeString": "int_const 0" | |
| }, | |
| "value": "0" | |
| }, | |
| "src": "5874:21:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "falseBody": { | |
| "id": 635, | |
| "nodeType": "Block", | |
| "src": "6204:49:4", | |
| "statements": [ | |
| { | |
| "errorCall": { | |
| "arguments": [], | |
| "expression": { | |
| "argumentTypes": [], | |
| "id": 632, | |
| "name": "FailedInnerCall", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 402, | |
| "src": "6225:15:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_error_pure$__$returns$__$", | |
| "typeString": "function () pure" | |
| } | |
| }, | |
| "id": 633, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "6225:17:4", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 634, | |
| "nodeType": "RevertStatement", | |
| "src": "6218:24:4" | |
| } | |
| ] | |
| }, | |
| "id": 636, | |
| "nodeType": "IfStatement", | |
| "src": "5870:383:4", | |
| "trueBody": { | |
| "id": 631, | |
| "nodeType": "Block", | |
| "src": "5897:301:4", | |
| "statements": [ | |
| { | |
| "AST": { | |
| "nativeSrc": "6055:133:4", | |
| "nodeType": "YulBlock", | |
| "src": "6055:133:4", | |
| "statements": [ | |
| { | |
| "nativeSrc": "6073:40:4", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "6073:40:4", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "returndata", | |
| "nativeSrc": "6102:10:4", | |
| "nodeType": "YulIdentifier", | |
| "src": "6102:10:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "6096:5:4", | |
| "nodeType": "YulIdentifier", | |
| "src": "6096:5:4" | |
| }, | |
| "nativeSrc": "6096:17:4", | |
| "nodeType": "YulFunctionCall", | |
| "src": "6096:17:4" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "returndata_size", | |
| "nativeSrc": "6077:15:4", | |
| "nodeType": "YulTypedName", | |
| "src": "6077:15:4", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "6141:2:4", | |
| "nodeType": "YulLiteral", | |
| "src": "6141:2:4", | |
| "type": "", | |
| "value": "32" | |
| }, | |
| { | |
| "name": "returndata", | |
| "nativeSrc": "6145:10:4", | |
| "nodeType": "YulIdentifier", | |
| "src": "6145:10:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "6137:3:4", | |
| "nodeType": "YulIdentifier", | |
| "src": "6137:3:4" | |
| }, | |
| "nativeSrc": "6137:19:4", | |
| "nodeType": "YulFunctionCall", | |
| "src": "6137:19:4" | |
| }, | |
| { | |
| "name": "returndata_size", | |
| "nativeSrc": "6158:15:4", | |
| "nodeType": "YulIdentifier", | |
| "src": "6158:15:4" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "6130:6:4", | |
| "nodeType": "YulIdentifier", | |
| "src": "6130:6:4" | |
| }, | |
| "nativeSrc": "6130:44:4", | |
| "nodeType": "YulFunctionCall", | |
| "src": "6130:44:4" | |
| }, | |
| "nativeSrc": "6130:44:4", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6130:44:4" | |
| } | |
| ] | |
| }, | |
| "documentation": "@solidity memory-safe-assembly", | |
| "evmVersion": "shanghai", | |
| "externalReferences": [ | |
| { | |
| "declaration": 623, | |
| "isOffset": false, | |
| "isSlot": false, | |
| "src": "6102:10:4", | |
| "valueSize": 1 | |
| }, | |
| { | |
| "declaration": 623, | |
| "isOffset": false, | |
| "isSlot": false, | |
| "src": "6145:10:4", | |
| "valueSize": 1 | |
| } | |
| ], | |
| "id": 630, | |
| "nodeType": "InlineAssembly", | |
| "src": "6046:142:4" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 621, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "5637:101:4", | |
| "text": " @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}." | |
| }, | |
| "id": 638, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "_revert", | |
| "nameLocation": "5752:7:4", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 624, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 623, | |
| "mutability": "mutable", | |
| "name": "returndata", | |
| "nameLocation": "5773:10:4", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 638, | |
| "src": "5760:23:4", | |
| "stateVariable": false, | |
| "storageLocation": "memory", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_memory_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 622, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "5760:5:4", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "5759:25:4" | |
| }, | |
| "returnParameters": { | |
| "id": 625, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "5798:0:4" | |
| }, | |
| "scope": 639, | |
| "src": "5743:516:4", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "private" | |
| } | |
| ], | |
| "scope": 640, | |
| "src": "195:6066:4", | |
| "usedErrors": [ | |
| 394, | |
| 399, | |
| 402 | |
| ], | |
| "usedEvents": [] | |
| } | |
| ], | |
| "src": "101:6161:4" | |
| }, | |
| "id": 4 | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol": { | |
| "ast": { | |
| "absolutePath": "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol", | |
| "exportedSymbols": { | |
| "StorageSlot": [ | |
| 749 | |
| ] | |
| }, | |
| "id": 750, | |
| "license": "MIT", | |
| "nodeType": "SourceUnit", | |
| "nodes": [ | |
| { | |
| "id": 641, | |
| "literals": [ | |
| "solidity", | |
| "^", | |
| "0.8", | |
| ".20" | |
| ], | |
| "nodeType": "PragmaDirective", | |
| "src": "193:24:5" | |
| }, | |
| { | |
| "abstract": false, | |
| "baseContracts": [], | |
| "canonicalName": "StorageSlot", | |
| "contractDependencies": [], | |
| "contractKind": "library", | |
| "documentation": { | |
| "id": 642, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "219:1025:5", | |
| "text": " @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```solidity\n contract ERC1967 {\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```" | |
| }, | |
| "fullyImplemented": true, | |
| "id": 749, | |
| "linearizedBaseContracts": [ | |
| 749 | |
| ], | |
| "name": "StorageSlot", | |
| "nameLocation": "1253:11:5", | |
| "nodeType": "ContractDefinition", | |
| "nodes": [ | |
| { | |
| "canonicalName": "StorageSlot.AddressSlot", | |
| "id": 645, | |
| "members": [ | |
| { | |
| "constant": false, | |
| "id": 644, | |
| "mutability": "mutable", | |
| "name": "value", | |
| "nameLocation": "1308:5:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 645, | |
| "src": "1300:13:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| }, | |
| "typeName": { | |
| "id": 643, | |
| "name": "address", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1300:7:5", | |
| "stateMutability": "nonpayable", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_address", | |
| "typeString": "address" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "name": "AddressSlot", | |
| "nameLocation": "1278:11:5", | |
| "nodeType": "StructDefinition", | |
| "scope": 749, | |
| "src": "1271:49:5", | |
| "visibility": "public" | |
| }, | |
| { | |
| "canonicalName": "StorageSlot.BooleanSlot", | |
| "id": 648, | |
| "members": [ | |
| { | |
| "constant": false, | |
| "id": 647, | |
| "mutability": "mutable", | |
| "name": "value", | |
| "nameLocation": "1360:5:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 648, | |
| "src": "1355:10:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| }, | |
| "typeName": { | |
| "id": 646, | |
| "name": "bool", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1355:4:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bool", | |
| "typeString": "bool" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "name": "BooleanSlot", | |
| "nameLocation": "1333:11:5", | |
| "nodeType": "StructDefinition", | |
| "scope": 749, | |
| "src": "1326:46:5", | |
| "visibility": "public" | |
| }, | |
| { | |
| "canonicalName": "StorageSlot.Bytes32Slot", | |
| "id": 651, | |
| "members": [ | |
| { | |
| "constant": false, | |
| "id": 650, | |
| "mutability": "mutable", | |
| "name": "value", | |
| "nameLocation": "1415:5:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 651, | |
| "src": "1407:13:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| }, | |
| "typeName": { | |
| "id": 649, | |
| "name": "bytes32", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1407:7:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "name": "Bytes32Slot", | |
| "nameLocation": "1385:11:5", | |
| "nodeType": "StructDefinition", | |
| "scope": 749, | |
| "src": "1378:49:5", | |
| "visibility": "public" | |
| }, | |
| { | |
| "canonicalName": "StorageSlot.Uint256Slot", | |
| "id": 654, | |
| "members": [ | |
| { | |
| "constant": false, | |
| "id": 653, | |
| "mutability": "mutable", | |
| "name": "value", | |
| "nameLocation": "1470:5:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 654, | |
| "src": "1462:13:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 652, | |
| "name": "uint256", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1462:7:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "name": "Uint256Slot", | |
| "nameLocation": "1440:11:5", | |
| "nodeType": "StructDefinition", | |
| "scope": 749, | |
| "src": "1433:49:5", | |
| "visibility": "public" | |
| }, | |
| { | |
| "canonicalName": "StorageSlot.StringSlot", | |
| "id": 657, | |
| "members": [ | |
| { | |
| "constant": false, | |
| "id": 656, | |
| "mutability": "mutable", | |
| "name": "value", | |
| "nameLocation": "1523:5:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 657, | |
| "src": "1516:12:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_string_storage_ptr", | |
| "typeString": "string" | |
| }, | |
| "typeName": { | |
| "id": 655, | |
| "name": "string", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1516:6:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_string_storage_ptr", | |
| "typeString": "string" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "name": "StringSlot", | |
| "nameLocation": "1495:10:5", | |
| "nodeType": "StructDefinition", | |
| "scope": 749, | |
| "src": "1488:47:5", | |
| "visibility": "public" | |
| }, | |
| { | |
| "canonicalName": "StorageSlot.BytesSlot", | |
| "id": 660, | |
| "members": [ | |
| { | |
| "constant": false, | |
| "id": 659, | |
| "mutability": "mutable", | |
| "name": "value", | |
| "nameLocation": "1574:5:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 660, | |
| "src": "1568:11:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 658, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1568:5:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "name": "BytesSlot", | |
| "nameLocation": "1548:9:5", | |
| "nodeType": "StructDefinition", | |
| "scope": 749, | |
| "src": "1541:45:5", | |
| "visibility": "public" | |
| }, | |
| { | |
| "body": { | |
| "id": 670, | |
| "nodeType": "Block", | |
| "src": "1768:106:5", | |
| "statements": [ | |
| { | |
| "AST": { | |
| "nativeSrc": "1830:38:5", | |
| "nodeType": "YulBlock", | |
| "src": "1830:38:5", | |
| "statements": [ | |
| { | |
| "nativeSrc": "1844:14:5", | |
| "nodeType": "YulAssignment", | |
| "src": "1844:14:5", | |
| "value": { | |
| "name": "slot", | |
| "nativeSrc": "1854:4:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "1854:4:5" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r.slot", | |
| "nativeSrc": "1844:6:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "1844:6:5" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "documentation": "@solidity memory-safe-assembly", | |
| "evmVersion": "shanghai", | |
| "externalReferences": [ | |
| { | |
| "declaration": 667, | |
| "isOffset": false, | |
| "isSlot": true, | |
| "src": "1844:6:5", | |
| "suffix": "slot", | |
| "valueSize": 1 | |
| }, | |
| { | |
| "declaration": 663, | |
| "isOffset": false, | |
| "isSlot": false, | |
| "src": "1854:4:5", | |
| "valueSize": 1 | |
| } | |
| ], | |
| "id": 669, | |
| "nodeType": "InlineAssembly", | |
| "src": "1821:47:5" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 661, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1592:87:5", | |
| "text": " @dev Returns an `AddressSlot` with member `value` located at `slot`." | |
| }, | |
| "id": 671, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getAddressSlot", | |
| "nameLocation": "1693:14:5", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 664, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 663, | |
| "mutability": "mutable", | |
| "name": "slot", | |
| "nameLocation": "1716:4:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 671, | |
| "src": "1708:12:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| }, | |
| "typeName": { | |
| "id": 662, | |
| "name": "bytes32", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1708:7:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "1707:14:5" | |
| }, | |
| "returnParameters": { | |
| "id": 668, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 667, | |
| "mutability": "mutable", | |
| "name": "r", | |
| "nameLocation": "1765:1:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 671, | |
| "src": "1745:21:5", | |
| "stateVariable": false, | |
| "storageLocation": "storage", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_AddressSlot_$645_storage_ptr", | |
| "typeString": "struct StorageSlot.AddressSlot" | |
| }, | |
| "typeName": { | |
| "id": 666, | |
| "nodeType": "UserDefinedTypeName", | |
| "pathNode": { | |
| "id": 665, | |
| "name": "AddressSlot", | |
| "nameLocations": [ | |
| "1745:11:5" | |
| ], | |
| "nodeType": "IdentifierPath", | |
| "referencedDeclaration": 645, | |
| "src": "1745:11:5" | |
| }, | |
| "referencedDeclaration": 645, | |
| "src": "1745:11:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_AddressSlot_$645_storage_ptr", | |
| "typeString": "struct StorageSlot.AddressSlot" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "1744:23:5" | |
| }, | |
| "scope": 749, | |
| "src": "1684:190:5", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 681, | |
| "nodeType": "Block", | |
| "src": "2056:106:5", | |
| "statements": [ | |
| { | |
| "AST": { | |
| "nativeSrc": "2118:38:5", | |
| "nodeType": "YulBlock", | |
| "src": "2118:38:5", | |
| "statements": [ | |
| { | |
| "nativeSrc": "2132:14:5", | |
| "nodeType": "YulAssignment", | |
| "src": "2132:14:5", | |
| "value": { | |
| "name": "slot", | |
| "nativeSrc": "2142:4:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "2142:4:5" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r.slot", | |
| "nativeSrc": "2132:6:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "2132:6:5" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "documentation": "@solidity memory-safe-assembly", | |
| "evmVersion": "shanghai", | |
| "externalReferences": [ | |
| { | |
| "declaration": 678, | |
| "isOffset": false, | |
| "isSlot": true, | |
| "src": "2132:6:5", | |
| "suffix": "slot", | |
| "valueSize": 1 | |
| }, | |
| { | |
| "declaration": 674, | |
| "isOffset": false, | |
| "isSlot": false, | |
| "src": "2142:4:5", | |
| "valueSize": 1 | |
| } | |
| ], | |
| "id": 680, | |
| "nodeType": "InlineAssembly", | |
| "src": "2109:47:5" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 672, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "1880:87:5", | |
| "text": " @dev Returns an `BooleanSlot` with member `value` located at `slot`." | |
| }, | |
| "id": 682, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getBooleanSlot", | |
| "nameLocation": "1981:14:5", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 675, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 674, | |
| "mutability": "mutable", | |
| "name": "slot", | |
| "nameLocation": "2004:4:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 682, | |
| "src": "1996:12:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| }, | |
| "typeName": { | |
| "id": 673, | |
| "name": "bytes32", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "1996:7:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "1995:14:5" | |
| }, | |
| "returnParameters": { | |
| "id": 679, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 678, | |
| "mutability": "mutable", | |
| "name": "r", | |
| "nameLocation": "2053:1:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 682, | |
| "src": "2033:21:5", | |
| "stateVariable": false, | |
| "storageLocation": "storage", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_BooleanSlot_$648_storage_ptr", | |
| "typeString": "struct StorageSlot.BooleanSlot" | |
| }, | |
| "typeName": { | |
| "id": 677, | |
| "nodeType": "UserDefinedTypeName", | |
| "pathNode": { | |
| "id": 676, | |
| "name": "BooleanSlot", | |
| "nameLocations": [ | |
| "2033:11:5" | |
| ], | |
| "nodeType": "IdentifierPath", | |
| "referencedDeclaration": 648, | |
| "src": "2033:11:5" | |
| }, | |
| "referencedDeclaration": 648, | |
| "src": "2033:11:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_BooleanSlot_$648_storage_ptr", | |
| "typeString": "struct StorageSlot.BooleanSlot" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2032:23:5" | |
| }, | |
| "scope": 749, | |
| "src": "1972:190:5", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 692, | |
| "nodeType": "Block", | |
| "src": "2344:106:5", | |
| "statements": [ | |
| { | |
| "AST": { | |
| "nativeSrc": "2406:38:5", | |
| "nodeType": "YulBlock", | |
| "src": "2406:38:5", | |
| "statements": [ | |
| { | |
| "nativeSrc": "2420:14:5", | |
| "nodeType": "YulAssignment", | |
| "src": "2420:14:5", | |
| "value": { | |
| "name": "slot", | |
| "nativeSrc": "2430:4:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "2430:4:5" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r.slot", | |
| "nativeSrc": "2420:6:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "2420:6:5" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "documentation": "@solidity memory-safe-assembly", | |
| "evmVersion": "shanghai", | |
| "externalReferences": [ | |
| { | |
| "declaration": 689, | |
| "isOffset": false, | |
| "isSlot": true, | |
| "src": "2420:6:5", | |
| "suffix": "slot", | |
| "valueSize": 1 | |
| }, | |
| { | |
| "declaration": 685, | |
| "isOffset": false, | |
| "isSlot": false, | |
| "src": "2430:4:5", | |
| "valueSize": 1 | |
| } | |
| ], | |
| "id": 691, | |
| "nodeType": "InlineAssembly", | |
| "src": "2397:47:5" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 683, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "2168:87:5", | |
| "text": " @dev Returns an `Bytes32Slot` with member `value` located at `slot`." | |
| }, | |
| "id": 693, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getBytes32Slot", | |
| "nameLocation": "2269:14:5", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 686, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 685, | |
| "mutability": "mutable", | |
| "name": "slot", | |
| "nameLocation": "2292:4:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 693, | |
| "src": "2284:12:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| }, | |
| "typeName": { | |
| "id": 684, | |
| "name": "bytes32", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2284:7:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2283:14:5" | |
| }, | |
| "returnParameters": { | |
| "id": 690, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 689, | |
| "mutability": "mutable", | |
| "name": "r", | |
| "nameLocation": "2341:1:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 693, | |
| "src": "2321:21:5", | |
| "stateVariable": false, | |
| "storageLocation": "storage", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_Bytes32Slot_$651_storage_ptr", | |
| "typeString": "struct StorageSlot.Bytes32Slot" | |
| }, | |
| "typeName": { | |
| "id": 688, | |
| "nodeType": "UserDefinedTypeName", | |
| "pathNode": { | |
| "id": 687, | |
| "name": "Bytes32Slot", | |
| "nameLocations": [ | |
| "2321:11:5" | |
| ], | |
| "nodeType": "IdentifierPath", | |
| "referencedDeclaration": 651, | |
| "src": "2321:11:5" | |
| }, | |
| "referencedDeclaration": 651, | |
| "src": "2321:11:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_Bytes32Slot_$651_storage_ptr", | |
| "typeString": "struct StorageSlot.Bytes32Slot" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2320:23:5" | |
| }, | |
| "scope": 749, | |
| "src": "2260:190:5", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 703, | |
| "nodeType": "Block", | |
| "src": "2632:106:5", | |
| "statements": [ | |
| { | |
| "AST": { | |
| "nativeSrc": "2694:38:5", | |
| "nodeType": "YulBlock", | |
| "src": "2694:38:5", | |
| "statements": [ | |
| { | |
| "nativeSrc": "2708:14:5", | |
| "nodeType": "YulAssignment", | |
| "src": "2708:14:5", | |
| "value": { | |
| "name": "slot", | |
| "nativeSrc": "2718:4:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "2718:4:5" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r.slot", | |
| "nativeSrc": "2708:6:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "2708:6:5" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "documentation": "@solidity memory-safe-assembly", | |
| "evmVersion": "shanghai", | |
| "externalReferences": [ | |
| { | |
| "declaration": 700, | |
| "isOffset": false, | |
| "isSlot": true, | |
| "src": "2708:6:5", | |
| "suffix": "slot", | |
| "valueSize": 1 | |
| }, | |
| { | |
| "declaration": 696, | |
| "isOffset": false, | |
| "isSlot": false, | |
| "src": "2718:4:5", | |
| "valueSize": 1 | |
| } | |
| ], | |
| "id": 702, | |
| "nodeType": "InlineAssembly", | |
| "src": "2685:47:5" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 694, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "2456:87:5", | |
| "text": " @dev Returns an `Uint256Slot` with member `value` located at `slot`." | |
| }, | |
| "id": 704, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getUint256Slot", | |
| "nameLocation": "2557:14:5", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 697, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 696, | |
| "mutability": "mutable", | |
| "name": "slot", | |
| "nameLocation": "2580:4:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 704, | |
| "src": "2572:12:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| }, | |
| "typeName": { | |
| "id": 695, | |
| "name": "bytes32", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2572:7:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2571:14:5" | |
| }, | |
| "returnParameters": { | |
| "id": 701, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 700, | |
| "mutability": "mutable", | |
| "name": "r", | |
| "nameLocation": "2629:1:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 704, | |
| "src": "2609:21:5", | |
| "stateVariable": false, | |
| "storageLocation": "storage", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_Uint256Slot_$654_storage_ptr", | |
| "typeString": "struct StorageSlot.Uint256Slot" | |
| }, | |
| "typeName": { | |
| "id": 699, | |
| "nodeType": "UserDefinedTypeName", | |
| "pathNode": { | |
| "id": 698, | |
| "name": "Uint256Slot", | |
| "nameLocations": [ | |
| "2609:11:5" | |
| ], | |
| "nodeType": "IdentifierPath", | |
| "referencedDeclaration": 654, | |
| "src": "2609:11:5" | |
| }, | |
| "referencedDeclaration": 654, | |
| "src": "2609:11:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_Uint256Slot_$654_storage_ptr", | |
| "typeString": "struct StorageSlot.Uint256Slot" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2608:23:5" | |
| }, | |
| "scope": 749, | |
| "src": "2548:190:5", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 714, | |
| "nodeType": "Block", | |
| "src": "2917:106:5", | |
| "statements": [ | |
| { | |
| "AST": { | |
| "nativeSrc": "2979:38:5", | |
| "nodeType": "YulBlock", | |
| "src": "2979:38:5", | |
| "statements": [ | |
| { | |
| "nativeSrc": "2993:14:5", | |
| "nodeType": "YulAssignment", | |
| "src": "2993:14:5", | |
| "value": { | |
| "name": "slot", | |
| "nativeSrc": "3003:4:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "3003:4:5" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r.slot", | |
| "nativeSrc": "2993:6:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "2993:6:5" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "documentation": "@solidity memory-safe-assembly", | |
| "evmVersion": "shanghai", | |
| "externalReferences": [ | |
| { | |
| "declaration": 711, | |
| "isOffset": false, | |
| "isSlot": true, | |
| "src": "2993:6:5", | |
| "suffix": "slot", | |
| "valueSize": 1 | |
| }, | |
| { | |
| "declaration": 707, | |
| "isOffset": false, | |
| "isSlot": false, | |
| "src": "3003:4:5", | |
| "valueSize": 1 | |
| } | |
| ], | |
| "id": 713, | |
| "nodeType": "InlineAssembly", | |
| "src": "2970:47:5" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 705, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "2744:86:5", | |
| "text": " @dev Returns an `StringSlot` with member `value` located at `slot`." | |
| }, | |
| "id": 715, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getStringSlot", | |
| "nameLocation": "2844:13:5", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 708, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 707, | |
| "mutability": "mutable", | |
| "name": "slot", | |
| "nameLocation": "2866:4:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 715, | |
| "src": "2858:12:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| }, | |
| "typeName": { | |
| "id": 706, | |
| "name": "bytes32", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "2858:7:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2857:14:5" | |
| }, | |
| "returnParameters": { | |
| "id": 712, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 711, | |
| "mutability": "mutable", | |
| "name": "r", | |
| "nameLocation": "2914:1:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 715, | |
| "src": "2895:20:5", | |
| "stateVariable": false, | |
| "storageLocation": "storage", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_StringSlot_$657_storage_ptr", | |
| "typeString": "struct StorageSlot.StringSlot" | |
| }, | |
| "typeName": { | |
| "id": 710, | |
| "nodeType": "UserDefinedTypeName", | |
| "pathNode": { | |
| "id": 709, | |
| "name": "StringSlot", | |
| "nameLocations": [ | |
| "2895:10:5" | |
| ], | |
| "nodeType": "IdentifierPath", | |
| "referencedDeclaration": 657, | |
| "src": "2895:10:5" | |
| }, | |
| "referencedDeclaration": 657, | |
| "src": "2895:10:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_StringSlot_$657_storage_ptr", | |
| "typeString": "struct StorageSlot.StringSlot" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "2894:22:5" | |
| }, | |
| "scope": 749, | |
| "src": "2835:188:5", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 725, | |
| "nodeType": "Block", | |
| "src": "3225:112:5", | |
| "statements": [ | |
| { | |
| "AST": { | |
| "nativeSrc": "3287:44:5", | |
| "nodeType": "YulBlock", | |
| "src": "3287:44:5", | |
| "statements": [ | |
| { | |
| "nativeSrc": "3301:20:5", | |
| "nodeType": "YulAssignment", | |
| "src": "3301:20:5", | |
| "value": { | |
| "name": "store.slot", | |
| "nativeSrc": "3311:10:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "3311:10:5" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r.slot", | |
| "nativeSrc": "3301:6:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "3301:6:5" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "documentation": "@solidity memory-safe-assembly", | |
| "evmVersion": "shanghai", | |
| "externalReferences": [ | |
| { | |
| "declaration": 722, | |
| "isOffset": false, | |
| "isSlot": true, | |
| "src": "3301:6:5", | |
| "suffix": "slot", | |
| "valueSize": 1 | |
| }, | |
| { | |
| "declaration": 718, | |
| "isOffset": false, | |
| "isSlot": true, | |
| "src": "3311:10:5", | |
| "suffix": "slot", | |
| "valueSize": 1 | |
| } | |
| ], | |
| "id": 724, | |
| "nodeType": "InlineAssembly", | |
| "src": "3278:53:5" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 716, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "3029:101:5", | |
| "text": " @dev Returns an `StringSlot` representation of the string storage pointer `store`." | |
| }, | |
| "id": 726, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getStringSlot", | |
| "nameLocation": "3144:13:5", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 719, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 718, | |
| "mutability": "mutable", | |
| "name": "store", | |
| "nameLocation": "3173:5:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 726, | |
| "src": "3158:20:5", | |
| "stateVariable": false, | |
| "storageLocation": "storage", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_string_storage_ptr", | |
| "typeString": "string" | |
| }, | |
| "typeName": { | |
| "id": 717, | |
| "name": "string", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3158:6:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_string_storage_ptr", | |
| "typeString": "string" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3157:22:5" | |
| }, | |
| "returnParameters": { | |
| "id": 723, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 722, | |
| "mutability": "mutable", | |
| "name": "r", | |
| "nameLocation": "3222:1:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 726, | |
| "src": "3203:20:5", | |
| "stateVariable": false, | |
| "storageLocation": "storage", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_StringSlot_$657_storage_ptr", | |
| "typeString": "struct StorageSlot.StringSlot" | |
| }, | |
| "typeName": { | |
| "id": 721, | |
| "nodeType": "UserDefinedTypeName", | |
| "pathNode": { | |
| "id": 720, | |
| "name": "StringSlot", | |
| "nameLocations": [ | |
| "3203:10:5" | |
| ], | |
| "nodeType": "IdentifierPath", | |
| "referencedDeclaration": 657, | |
| "src": "3203:10:5" | |
| }, | |
| "referencedDeclaration": 657, | |
| "src": "3203:10:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_StringSlot_$657_storage_ptr", | |
| "typeString": "struct StorageSlot.StringSlot" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3202:22:5" | |
| }, | |
| "scope": 749, | |
| "src": "3135:202:5", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 736, | |
| "nodeType": "Block", | |
| "src": "3513:106:5", | |
| "statements": [ | |
| { | |
| "AST": { | |
| "nativeSrc": "3575:38:5", | |
| "nodeType": "YulBlock", | |
| "src": "3575:38:5", | |
| "statements": [ | |
| { | |
| "nativeSrc": "3589:14:5", | |
| "nodeType": "YulAssignment", | |
| "src": "3589:14:5", | |
| "value": { | |
| "name": "slot", | |
| "nativeSrc": "3599:4:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "3599:4:5" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r.slot", | |
| "nativeSrc": "3589:6:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "3589:6:5" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "documentation": "@solidity memory-safe-assembly", | |
| "evmVersion": "shanghai", | |
| "externalReferences": [ | |
| { | |
| "declaration": 733, | |
| "isOffset": false, | |
| "isSlot": true, | |
| "src": "3589:6:5", | |
| "suffix": "slot", | |
| "valueSize": 1 | |
| }, | |
| { | |
| "declaration": 729, | |
| "isOffset": false, | |
| "isSlot": false, | |
| "src": "3599:4:5", | |
| "valueSize": 1 | |
| } | |
| ], | |
| "id": 735, | |
| "nodeType": "InlineAssembly", | |
| "src": "3566:47:5" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 727, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "3343:85:5", | |
| "text": " @dev Returns an `BytesSlot` with member `value` located at `slot`." | |
| }, | |
| "id": 737, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getBytesSlot", | |
| "nameLocation": "3442:12:5", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 730, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 729, | |
| "mutability": "mutable", | |
| "name": "slot", | |
| "nameLocation": "3463:4:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 737, | |
| "src": "3455:12:5", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| }, | |
| "typeName": { | |
| "id": 728, | |
| "name": "bytes32", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3455:7:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes32", | |
| "typeString": "bytes32" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3454:14:5" | |
| }, | |
| "returnParameters": { | |
| "id": 734, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 733, | |
| "mutability": "mutable", | |
| "name": "r", | |
| "nameLocation": "3510:1:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 737, | |
| "src": "3492:19:5", | |
| "stateVariable": false, | |
| "storageLocation": "storage", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_BytesSlot_$660_storage_ptr", | |
| "typeString": "struct StorageSlot.BytesSlot" | |
| }, | |
| "typeName": { | |
| "id": 732, | |
| "nodeType": "UserDefinedTypeName", | |
| "pathNode": { | |
| "id": 731, | |
| "name": "BytesSlot", | |
| "nameLocations": [ | |
| "3492:9:5" | |
| ], | |
| "nodeType": "IdentifierPath", | |
| "referencedDeclaration": 660, | |
| "src": "3492:9:5" | |
| }, | |
| "referencedDeclaration": 660, | |
| "src": "3492:9:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_BytesSlot_$660_storage_ptr", | |
| "typeString": "struct StorageSlot.BytesSlot" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3491:21:5" | |
| }, | |
| "scope": 749, | |
| "src": "3433:186:5", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 747, | |
| "nodeType": "Block", | |
| "src": "3816:112:5", | |
| "statements": [ | |
| { | |
| "AST": { | |
| "nativeSrc": "3878:44:5", | |
| "nodeType": "YulBlock", | |
| "src": "3878:44:5", | |
| "statements": [ | |
| { | |
| "nativeSrc": "3892:20:5", | |
| "nodeType": "YulAssignment", | |
| "src": "3892:20:5", | |
| "value": { | |
| "name": "store.slot", | |
| "nativeSrc": "3902:10:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "3902:10:5" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r.slot", | |
| "nativeSrc": "3892:6:5", | |
| "nodeType": "YulIdentifier", | |
| "src": "3892:6:5" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "documentation": "@solidity memory-safe-assembly", | |
| "evmVersion": "shanghai", | |
| "externalReferences": [ | |
| { | |
| "declaration": 744, | |
| "isOffset": false, | |
| "isSlot": true, | |
| "src": "3892:6:5", | |
| "suffix": "slot", | |
| "valueSize": 1 | |
| }, | |
| { | |
| "declaration": 740, | |
| "isOffset": false, | |
| "isSlot": true, | |
| "src": "3902:10:5", | |
| "suffix": "slot", | |
| "valueSize": 1 | |
| } | |
| ], | |
| "id": 746, | |
| "nodeType": "InlineAssembly", | |
| "src": "3869:53:5" | |
| } | |
| ] | |
| }, | |
| "documentation": { | |
| "id": 738, | |
| "nodeType": "StructuredDocumentation", | |
| "src": "3625:99:5", | |
| "text": " @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`." | |
| }, | |
| "id": 748, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "getBytesSlot", | |
| "nameLocation": "3738:12:5", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 741, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 740, | |
| "mutability": "mutable", | |
| "name": "store", | |
| "nameLocation": "3765:5:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 748, | |
| "src": "3751:19:5", | |
| "stateVariable": false, | |
| "storageLocation": "storage", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| }, | |
| "typeName": { | |
| "id": 739, | |
| "name": "bytes", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "3751:5:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_bytes_storage_ptr", | |
| "typeString": "bytes" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3750:21:5" | |
| }, | |
| "returnParameters": { | |
| "id": 745, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 744, | |
| "mutability": "mutable", | |
| "name": "r", | |
| "nameLocation": "3813:1:5", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 748, | |
| "src": "3795:19:5", | |
| "stateVariable": false, | |
| "storageLocation": "storage", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_BytesSlot_$660_storage_ptr", | |
| "typeString": "struct StorageSlot.BytesSlot" | |
| }, | |
| "typeName": { | |
| "id": 743, | |
| "nodeType": "UserDefinedTypeName", | |
| "pathNode": { | |
| "id": 742, | |
| "name": "BytesSlot", | |
| "nameLocations": [ | |
| "3795:9:5" | |
| ], | |
| "nodeType": "IdentifierPath", | |
| "referencedDeclaration": 660, | |
| "src": "3795:9:5" | |
| }, | |
| "referencedDeclaration": 660, | |
| "src": "3795:9:5", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_struct$_BytesSlot_$660_storage_ptr", | |
| "typeString": "struct StorageSlot.BytesSlot" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "3794:21:5" | |
| }, | |
| "scope": 749, | |
| "src": "3729:199:5", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "scope": 750, | |
| "src": "1245:2685:5", | |
| "usedErrors": [], | |
| "usedEvents": [] | |
| } | |
| ], | |
| "src": "193:3738:5" | |
| }, | |
| "id": 5 | |
| } | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "goerli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "functionDebugData": { | |
| "@_24": { | |
| "entryPoint": null, | |
| "id": 24, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "@_checkNonPayable_339": { | |
| "entryPoint": 533, | |
| "id": 339, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@_revert_638": { | |
| "entryPoint": 749, | |
| "id": 638, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@_setImplementation_125": { | |
| "entryPoint": 192, | |
| "id": 125, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@functionDelegateCall_558": { | |
| "entryPoint": 399, | |
| "id": 558, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "@getAddressSlot_671": { | |
| "entryPoint": 593, | |
| "id": 671, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "@upgradeToAndCall_159": { | |
| "entryPoint": 60, | |
| "id": 159, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "@verifyCallResultFromTarget_598": { | |
| "entryPoint": 602, | |
| "id": 598, | |
| "parameterSlots": 3, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_available_length_t_bytes_memory_ptr_fromMemory": { | |
| "entryPoint": 1156, | |
| "id": null, | |
| "parameterSlots": 3, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_t_address_fromMemory": { | |
| "entryPoint": 904, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_t_bytes_memory_ptr_fromMemory": { | |
| "entryPoint": 1221, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory": { | |
| "entryPoint": 1266, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 2 | |
| }, | |
| "abi_encode_t_address_to_t_address_fromStack": { | |
| "entryPoint": 1356, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { | |
| "entryPoint": 1416, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { | |
| "entryPoint": 1464, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { | |
| "entryPoint": 1371, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "allocate_memory": { | |
| "entryPoint": 1042, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "allocate_unbounded": { | |
| "entryPoint": 817, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "array_allocation_size_t_bytes_memory_ptr": { | |
| "entryPoint": 1068, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "array_length_t_bytes_memory_ptr": { | |
| "entryPoint": 1396, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { | |
| "entryPoint": 1406, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_address": { | |
| "entryPoint": 865, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_uint160": { | |
| "entryPoint": 834, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "copy_memory_to_memory_with_cleanup": { | |
| "entryPoint": 1116, | |
| "id": null, | |
| "parameterSlots": 3, | |
| "returnSlots": 0 | |
| }, | |
| "finalize_allocation": { | |
| "entryPoint": 993, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "panic_error_0x41": { | |
| "entryPoint": 948, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { | |
| "entryPoint": 924, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { | |
| "entryPoint": 928, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { | |
| "entryPoint": 830, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { | |
| "entryPoint": 826, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "round_up_to_mul_of_32": { | |
| "entryPoint": 932, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "validator_revert_t_address": { | |
| "entryPoint": 882, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nativeSrc": "0:5141:6", | |
| "nodeType": "YulBlock", | |
| "src": "0:5141:6", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "47:35:6", | |
| "nodeType": "YulBlock", | |
| "src": "47:35:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "57:19:6", | |
| "nodeType": "YulAssignment", | |
| "src": "57:19:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "73:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "73:2:6", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "67:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "67:5:6" | |
| }, | |
| "nativeSrc": "67:9:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "67:9:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "57:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "57:6:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "allocate_unbounded", | |
| "nativeSrc": "7:75:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "40:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "40:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:75:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "177:28:6", | |
| "nodeType": "YulBlock", | |
| "src": "177:28:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "194:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "194:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "197:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "197:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "187:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "187:6:6" | |
| }, | |
| "nativeSrc": "187:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "187:12:6" | |
| }, | |
| "nativeSrc": "187:12:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "187:12:6" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nativeSrc": "88:117:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "88:117:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "300:28:6", | |
| "nodeType": "YulBlock", | |
| "src": "300:28:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "317:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "317:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "320:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "320:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "310:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "310:6:6" | |
| }, | |
| "nativeSrc": "310:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "310:12:6" | |
| }, | |
| "nativeSrc": "310:12:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "310:12:6" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", | |
| "nativeSrc": "211:117:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "211:117:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "379:81:6", | |
| "nodeType": "YulBlock", | |
| "src": "379:81:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "389:65:6", | |
| "nodeType": "YulAssignment", | |
| "src": "389:65:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "404:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "404:5:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "411:42:6", | |
| "nodeType": "YulLiteral", | |
| "src": "411:42:6", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nativeSrc": "400:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "400:3:6" | |
| }, | |
| "nativeSrc": "400:54:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "400:54:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nativeSrc": "389:7:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "389:7:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint160", | |
| "nativeSrc": "334:126:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "361:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "361:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nativeSrc": "371:7:6", | |
| "nodeType": "YulTypedName", | |
| "src": "371:7:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "334:126:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "511:51:6", | |
| "nodeType": "YulBlock", | |
| "src": "511:51:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "521:35:6", | |
| "nodeType": "YulAssignment", | |
| "src": "521:35:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "550:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "550:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint160", | |
| "nativeSrc": "532:17:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "532:17:6" | |
| }, | |
| "nativeSrc": "532:24:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "532:24:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nativeSrc": "521:7:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "521:7:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_address", | |
| "nativeSrc": "466:96:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "493:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "493:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nativeSrc": "503:7:6", | |
| "nodeType": "YulTypedName", | |
| "src": "503:7:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "466:96:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "611:79:6", | |
| "nodeType": "YulBlock", | |
| "src": "611:79:6", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "668:16:6", | |
| "nodeType": "YulBlock", | |
| "src": "668:16:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "677:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "677:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "680:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "680:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "670:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "670:6:6" | |
| }, | |
| "nativeSrc": "670:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "670:12:6" | |
| }, | |
| "nativeSrc": "670:12:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "670:12:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "634:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "634:5:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "659:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "659:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_address", | |
| "nativeSrc": "641:17:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "641:17:6" | |
| }, | |
| "nativeSrc": "641:24:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "641:24:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nativeSrc": "631:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "631:2:6" | |
| }, | |
| "nativeSrc": "631:35:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "631:35:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nativeSrc": "624:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "624:6:6" | |
| }, | |
| "nativeSrc": "624:43:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "624:43:6" | |
| }, | |
| "nativeSrc": "621:63:6", | |
| "nodeType": "YulIf", | |
| "src": "621:63:6" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_address", | |
| "nativeSrc": "568:122:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "604:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "604:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "568:122:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "759:80:6", | |
| "nodeType": "YulBlock", | |
| "src": "759:80:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "769:22:6", | |
| "nodeType": "YulAssignment", | |
| "src": "769:22:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "784:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "784:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "778:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "778:5:6" | |
| }, | |
| "nativeSrc": "778:13:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "778:13:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "769:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "769:5:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "827:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "827:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_address", | |
| "nativeSrc": "800:26:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "800:26:6" | |
| }, | |
| "nativeSrc": "800:33:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "800:33:6" | |
| }, | |
| "nativeSrc": "800:33:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "800:33:6" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_address_fromMemory", | |
| "nativeSrc": "696:143:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "737:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "737:6:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "745:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "745:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "753:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "753:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "696:143:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "934:28:6", | |
| "nodeType": "YulBlock", | |
| "src": "934:28:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "951:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "951:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "954:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "954:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "944:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "944:6:6" | |
| }, | |
| "nativeSrc": "944:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "944:12:6" | |
| }, | |
| "nativeSrc": "944:12:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "944:12:6" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", | |
| "nativeSrc": "845:117:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "845:117:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1057:28:6", | |
| "nodeType": "YulBlock", | |
| "src": "1057:28:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1074:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1074:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1077:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1077:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "1067:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1067:6:6" | |
| }, | |
| "nativeSrc": "1067:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1067:12:6" | |
| }, | |
| "nativeSrc": "1067:12:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1067:12:6" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", | |
| "nativeSrc": "968:117:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "968:117:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1139:54:6", | |
| "nodeType": "YulBlock", | |
| "src": "1139:54:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "1149:38:6", | |
| "nodeType": "YulAssignment", | |
| "src": "1149:38:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "1167:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1167:5:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1174:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1174:2:6", | |
| "type": "", | |
| "value": "31" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "1163:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1163:3:6" | |
| }, | |
| "nativeSrc": "1163:14:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1163:14:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1183:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1183:2:6", | |
| "type": "", | |
| "value": "31" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "not", | |
| "nativeSrc": "1179:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1179:3:6" | |
| }, | |
| "nativeSrc": "1179:7:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1179:7:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nativeSrc": "1159:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1159:3:6" | |
| }, | |
| "nativeSrc": "1159:28:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1159:28:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "result", | |
| "nativeSrc": "1149:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1149:6:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "round_up_to_mul_of_32", | |
| "nativeSrc": "1091:102:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "1122:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1122:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "result", | |
| "nativeSrc": "1132:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1132:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1091:102:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1227:152:6", | |
| "nodeType": "YulBlock", | |
| "src": "1227:152:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1244:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1244:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1247:77:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1247:77:6", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "1237:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1237:6:6" | |
| }, | |
| "nativeSrc": "1237:88:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1237:88:6" | |
| }, | |
| "nativeSrc": "1237:88:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1237:88:6" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1341:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1341:1:6", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1344:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1344:4:6", | |
| "type": "", | |
| "value": "0x41" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "1334:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1334:6:6" | |
| }, | |
| "nativeSrc": "1334:15:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1334:15:6" | |
| }, | |
| "nativeSrc": "1334:15:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1334:15:6" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1365:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1365:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1368:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1368:4:6", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "1358:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1358:6:6" | |
| }, | |
| "nativeSrc": "1358:15:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1358:15:6" | |
| }, | |
| "nativeSrc": "1358:15:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1358:15:6" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x41", | |
| "nativeSrc": "1199:180:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "1199:180:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1428:238:6", | |
| "nodeType": "YulBlock", | |
| "src": "1428:238:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "1438:58:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "1438:58:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1460:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1460:6:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "1490:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1490:4:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "round_up_to_mul_of_32", | |
| "nativeSrc": "1468:21:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1468:21:6" | |
| }, | |
| "nativeSrc": "1468:27:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1468:27:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "1456:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1456:3:6" | |
| }, | |
| "nativeSrc": "1456:40:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1456:40:6" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "newFreePtr", | |
| "nativeSrc": "1442:10:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1442:10:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1607:22:6", | |
| "nodeType": "YulBlock", | |
| "src": "1607:22:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x41", | |
| "nativeSrc": "1609:16:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1609:16:6" | |
| }, | |
| "nativeSrc": "1609:18:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1609:18:6" | |
| }, | |
| "nativeSrc": "1609:18:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1609:18:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "newFreePtr", | |
| "nativeSrc": "1550:10:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1550:10:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1562:18:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1562:18:6", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nativeSrc": "1547:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1547:2:6" | |
| }, | |
| "nativeSrc": "1547:34:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1547:34:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "newFreePtr", | |
| "nativeSrc": "1586:10:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1586:10:6" | |
| }, | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1598:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1598:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nativeSrc": "1583:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1583:2:6" | |
| }, | |
| "nativeSrc": "1583:22:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1583:22:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "or", | |
| "nativeSrc": "1544:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1544:2:6" | |
| }, | |
| "nativeSrc": "1544:62:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1544:62:6" | |
| }, | |
| "nativeSrc": "1541:88:6", | |
| "nodeType": "YulIf", | |
| "src": "1541:88:6" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1645:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1645:2:6", | |
| "type": "", | |
| "value": "64" | |
| }, | |
| { | |
| "name": "newFreePtr", | |
| "nativeSrc": "1649:10:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1649:10:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "1638:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1638:6:6" | |
| }, | |
| "nativeSrc": "1638:22:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1638:22:6" | |
| }, | |
| "nativeSrc": "1638:22:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1638:22:6" | |
| } | |
| ] | |
| }, | |
| "name": "finalize_allocation", | |
| "nativeSrc": "1385:281:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1414:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1414:6:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "size", | |
| "nativeSrc": "1422:4:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1422:4:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1385:281:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1713:88:6", | |
| "nodeType": "YulBlock", | |
| "src": "1713:88:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "1723:30:6", | |
| "nodeType": "YulAssignment", | |
| "src": "1723:30:6", | |
| "value": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "allocate_unbounded", | |
| "nativeSrc": "1733:18:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1733:18:6" | |
| }, | |
| "nativeSrc": "1733:20:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1733:20:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1723:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1723:6:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1782:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1782:6:6" | |
| }, | |
| { | |
| "name": "size", | |
| "nativeSrc": "1790:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1790:4:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "finalize_allocation", | |
| "nativeSrc": "1762:19:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1762:19:6" | |
| }, | |
| "nativeSrc": "1762:33:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1762:33:6" | |
| }, | |
| "nativeSrc": "1762:33:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1762:33:6" | |
| } | |
| ] | |
| }, | |
| "name": "allocate_memory", | |
| "nativeSrc": "1672:129:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "1697:4:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1697:4:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nativeSrc": "1706:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1706:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1672:129:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "1873:241:6", | |
| "nodeType": "YulBlock", | |
| "src": "1873:241:6", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "1978:22:6", | |
| "nodeType": "YulBlock", | |
| "src": "1978:22:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x41", | |
| "nativeSrc": "1980:16:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1980:16:6" | |
| }, | |
| "nativeSrc": "1980:18:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1980:18:6" | |
| }, | |
| "nativeSrc": "1980:18:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1980:18:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "1950:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1950:6:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "1958:18:6", | |
| "nodeType": "YulLiteral", | |
| "src": "1958:18:6", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nativeSrc": "1947:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "1947:2:6" | |
| }, | |
| "nativeSrc": "1947:30:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "1947:30:6" | |
| }, | |
| "nativeSrc": "1944:56:6", | |
| "nodeType": "YulIf", | |
| "src": "1944:56:6" | |
| }, | |
| { | |
| "nativeSrc": "2010:37:6", | |
| "nodeType": "YulAssignment", | |
| "src": "2010:37:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "2040:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2040:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "round_up_to_mul_of_32", | |
| "nativeSrc": "2018:21:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2018:21:6" | |
| }, | |
| "nativeSrc": "2018:29:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2018:29:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "2010:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2010:4:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "2084:23:6", | |
| "nodeType": "YulAssignment", | |
| "src": "2084:23:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "2096:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2096:4:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "2102:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2102:4:6", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2092:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2092:3:6" | |
| }, | |
| "nativeSrc": "2092:15:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2092:15:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "2084:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2084:4:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_allocation_size_t_bytes_memory_ptr", | |
| "nativeSrc": "1807:307:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "1857:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1857:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "size", | |
| "nativeSrc": "1868:4:6", | |
| "nodeType": "YulTypedName", | |
| "src": "1868:4:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1807:307:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "2182:184:6", | |
| "nodeType": "YulBlock", | |
| "src": "2182:184:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "2192:10:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2192:10:6", | |
| "value": { | |
| "kind": "number", | |
| "nativeSrc": "2201:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2201:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "i", | |
| "nativeSrc": "2196:1:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2196:1:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "2261:63:6", | |
| "nodeType": "YulBlock", | |
| "src": "2261:63:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nativeSrc": "2286:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2286:3:6" | |
| }, | |
| { | |
| "name": "i", | |
| "nativeSrc": "2291:1:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2291:1:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2282:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2282:3:6" | |
| }, | |
| "nativeSrc": "2282:11:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2282:11:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nativeSrc": "2305:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2305:3:6" | |
| }, | |
| { | |
| "name": "i", | |
| "nativeSrc": "2310:1:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2310:1:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2301:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2301:3:6" | |
| }, | |
| "nativeSrc": "2301:11:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2301:11:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "2295:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2295:5:6" | |
| }, | |
| "nativeSrc": "2295:18:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2295:18:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "2275:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2275:6:6" | |
| }, | |
| "nativeSrc": "2275:39:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2275:39:6" | |
| }, | |
| "nativeSrc": "2275:39:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2275:39:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nativeSrc": "2222:1:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2222:1:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2225:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2225:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nativeSrc": "2219:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2219:2:6" | |
| }, | |
| "nativeSrc": "2219:13:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2219:13:6" | |
| }, | |
| "nativeSrc": "2211:113:6", | |
| "nodeType": "YulForLoop", | |
| "post": { | |
| "nativeSrc": "2233:19:6", | |
| "nodeType": "YulBlock", | |
| "src": "2233:19:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "2235:15:6", | |
| "nodeType": "YulAssignment", | |
| "src": "2235:15:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nativeSrc": "2244:1:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2244:1:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "2247:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2247:2:6", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2240:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2240:3:6" | |
| }, | |
| "nativeSrc": "2240:10:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2240:10:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "i", | |
| "nativeSrc": "2235:1:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2235:1:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "pre": { | |
| "nativeSrc": "2215:3:6", | |
| "nodeType": "YulBlock", | |
| "src": "2215:3:6", | |
| "statements": [] | |
| }, | |
| "src": "2211:113:6" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nativeSrc": "2344:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2344:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2349:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2349:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2340:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2340:3:6" | |
| }, | |
| "nativeSrc": "2340:16:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2340:16:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "2358:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2358:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "2333:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2333:6:6" | |
| }, | |
| "nativeSrc": "2333:27:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2333:27:6" | |
| }, | |
| "nativeSrc": "2333:27:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2333:27:6" | |
| } | |
| ] | |
| }, | |
| "name": "copy_memory_to_memory_with_cleanup", | |
| "nativeSrc": "2120:246:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "src", | |
| "nativeSrc": "2164:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2164:3:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dst", | |
| "nativeSrc": "2169:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2169:3:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2174:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2174:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2120:246:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "2466:338:6", | |
| "nodeType": "YulBlock", | |
| "src": "2466:338:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "2476:74:6", | |
| "nodeType": "YulAssignment", | |
| "src": "2476:74:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "2542:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2542:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_allocation_size_t_bytes_memory_ptr", | |
| "nativeSrc": "2501:40:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2501:40:6" | |
| }, | |
| "nativeSrc": "2501:48:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2501:48:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "allocate_memory", | |
| "nativeSrc": "2485:15:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2485:15:6" | |
| }, | |
| "nativeSrc": "2485:65:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2485:65:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "2476:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2476:5:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "2566:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2566:5:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2573:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2573:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "2559:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2559:6:6" | |
| }, | |
| "nativeSrc": "2559:21:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2559:21:6" | |
| }, | |
| "nativeSrc": "2559:21:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2559:21:6" | |
| }, | |
| { | |
| "nativeSrc": "2589:27:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2589:27:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "2604:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2604:5:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "2611:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2611:4:6", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2600:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2600:3:6" | |
| }, | |
| "nativeSrc": "2600:16:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2600:16:6" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "dst", | |
| "nativeSrc": "2593:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2593:3:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "2654:83:6", | |
| "nodeType": "YulBlock", | |
| "src": "2654:83:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", | |
| "nativeSrc": "2656:77:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2656:77:6" | |
| }, | |
| "nativeSrc": "2656:79:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2656:79:6" | |
| }, | |
| "nativeSrc": "2656:79:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2656:79:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nativeSrc": "2635:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2635:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2640:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2640:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2631:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2631:3:6" | |
| }, | |
| "nativeSrc": "2631:16:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2631:16:6" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "2649:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2649:3:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nativeSrc": "2628:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2628:2:6" | |
| }, | |
| "nativeSrc": "2628:25:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2628:25:6" | |
| }, | |
| "nativeSrc": "2625:112:6", | |
| "nodeType": "YulIf", | |
| "src": "2625:112:6" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nativeSrc": "2781:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2781:3:6" | |
| }, | |
| { | |
| "name": "dst", | |
| "nativeSrc": "2786:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2786:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2791:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2791:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "copy_memory_to_memory_with_cleanup", | |
| "nativeSrc": "2746:34:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2746:34:6" | |
| }, | |
| "nativeSrc": "2746:52:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2746:52:6" | |
| }, | |
| "nativeSrc": "2746:52:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2746:52:6" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", | |
| "nativeSrc": "2372:432:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "src", | |
| "nativeSrc": "2439:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2439:3:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "2444:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2444:6:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "2452:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2452:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "2460:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2460:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2372:432:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "2895:281:6", | |
| "nodeType": "YulBlock", | |
| "src": "2895:281:6", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "2944:83:6", | |
| "nodeType": "YulBlock", | |
| "src": "2944:83:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", | |
| "nativeSrc": "2946:77:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2946:77:6" | |
| }, | |
| "nativeSrc": "2946:79:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2946:79:6" | |
| }, | |
| "nativeSrc": "2946:79:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2946:79:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "2923:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2923:6:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "2931:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "2931:4:6", | |
| "type": "", | |
| "value": "0x1f" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "2919:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2919:3:6" | |
| }, | |
| "nativeSrc": "2919:17:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2919:17:6" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "2938:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2938:3:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nativeSrc": "2915:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2915:3:6" | |
| }, | |
| "nativeSrc": "2915:27:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2915:27:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nativeSrc": "2908:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "2908:6:6" | |
| }, | |
| "nativeSrc": "2908:35:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "2908:35:6" | |
| }, | |
| "nativeSrc": "2905:122:6", | |
| "nodeType": "YulIf", | |
| "src": "2905:122:6" | |
| }, | |
| { | |
| "nativeSrc": "3036:27:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3036:27:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3056:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3056:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "3050:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3050:5:6" | |
| }, | |
| "nativeSrc": "3050:13:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3050:13:6" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "3040:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3040:6:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "3072:98:6", | |
| "nodeType": "YulAssignment", | |
| "src": "3072:98:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3143:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3143:6:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "3151:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "3151:4:6", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "3139:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3139:3:6" | |
| }, | |
| "nativeSrc": "3139:17:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3139:17:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "3158:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3158:6:6" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "3166:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3166:3:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", | |
| "nativeSrc": "3081:57:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3081:57:6" | |
| }, | |
| "nativeSrc": "3081:89:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3081:89:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "3072:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3072:5:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_bytes_memory_ptr_fromMemory", | |
| "nativeSrc": "2823:353:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "2873:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2873:6:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nativeSrc": "2881:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2881:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "array", | |
| "nativeSrc": "2889:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "2889:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2823:353:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "3285:575:6", | |
| "nodeType": "YulBlock", | |
| "src": "3285:575:6", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "3331:83:6", | |
| "nodeType": "YulBlock", | |
| "src": "3331:83:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nativeSrc": "3333:77:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3333:77:6" | |
| }, | |
| "nativeSrc": "3333:79:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3333:79:6" | |
| }, | |
| "nativeSrc": "3333:79:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3333:79:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "3306:7:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3306:7:6" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "3315:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3315:9:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nativeSrc": "3302:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3302:3:6" | |
| }, | |
| "nativeSrc": "3302:23:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3302:23:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "3327:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "3327:2:6", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nativeSrc": "3298:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3298:3:6" | |
| }, | |
| "nativeSrc": "3298:32:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3298:32:6" | |
| }, | |
| "nativeSrc": "3295:119:6", | |
| "nodeType": "YulIf", | |
| "src": "3295:119:6" | |
| }, | |
| { | |
| "nativeSrc": "3424:128:6", | |
| "nodeType": "YulBlock", | |
| "src": "3424:128:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "3439:15:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3439:15:6", | |
| "value": { | |
| "kind": "number", | |
| "nativeSrc": "3453:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "3453:1:6", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3443:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3443:6:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "3468:74:6", | |
| "nodeType": "YulAssignment", | |
| "src": "3468:74:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "3514:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3514:9:6" | |
| }, | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3525:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3525:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "3510:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3510:3:6" | |
| }, | |
| "nativeSrc": "3510:22:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3510:22:6" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "3534:7:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3534:7:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_address_fromMemory", | |
| "nativeSrc": "3478:31:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3478:31:6" | |
| }, | |
| "nativeSrc": "3478:64:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3478:64:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "3468:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3468:6:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "3562:291:6", | |
| "nodeType": "YulBlock", | |
| "src": "3562:291:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "3577:39:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3577:39:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "3601:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3601:9:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "3612:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "3612:2:6", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "3597:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3597:3:6" | |
| }, | |
| "nativeSrc": "3597:18:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3597:18:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "3591:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3591:5:6" | |
| }, | |
| "nativeSrc": "3591:25:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3591:25:6" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3581:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3581:6:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "3663:83:6", | |
| "nodeType": "YulBlock", | |
| "src": "3663:83:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", | |
| "nativeSrc": "3665:77:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3665:77:6" | |
| }, | |
| "nativeSrc": "3665:79:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3665:79:6" | |
| }, | |
| "nativeSrc": "3665:79:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3665:79:6" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3635:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3635:6:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "3643:18:6", | |
| "nodeType": "YulLiteral", | |
| "src": "3643:18:6", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nativeSrc": "3632:2:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3632:2:6" | |
| }, | |
| "nativeSrc": "3632:30:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3632:30:6" | |
| }, | |
| "nativeSrc": "3629:117:6", | |
| "nodeType": "YulIf", | |
| "src": "3629:117:6" | |
| }, | |
| { | |
| "nativeSrc": "3760:83:6", | |
| "nodeType": "YulAssignment", | |
| "src": "3760:83:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "3815:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3815:9:6" | |
| }, | |
| { | |
| "name": "offset", | |
| "nativeSrc": "3826:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3826:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "3811:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3811:3:6" | |
| }, | |
| "nativeSrc": "3811:22:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3811:22:6" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "3835:7:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3835:7:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_bytes_memory_ptr_fromMemory", | |
| "nativeSrc": "3770:40:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3770:40:6" | |
| }, | |
| "nativeSrc": "3770:73:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3770:73:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value1", | |
| "nativeSrc": "3760:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3760:6:6" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory", | |
| "nativeSrc": "3182:678:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "3247:9:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3247:9:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "3258:7:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3258:7:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "3270:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3270:6:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value1", | |
| "nativeSrc": "3278:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3278:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3182:678:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "3931:53:6", | |
| "nodeType": "YulBlock", | |
| "src": "3931:53:6", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "3948:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3948:3:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "3971:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3971:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_address", | |
| "nativeSrc": "3953:17:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3953:17:6" | |
| }, | |
| "nativeSrc": "3953:24:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3953:24:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "3941:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "3941:6:6" | |
| }, | |
| "nativeSrc": "3941:37:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "3941:37:6" | |
| }, | |
| "nativeSrc": "3941:37:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3941:37:6" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_address_to_t_address_fromStack", | |
| "nativeSrc": "3866:118:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "3919:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3919:5:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nativeSrc": "3926:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "3926:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3866:118:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "4088:124:6", | |
| "nodeType": "YulBlock", | |
| "src": "4088:124:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "4098:26:6", | |
| "nodeType": "YulAssignment", | |
| "src": "4098:26:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "4110:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4110:9:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "4121:2:6", | |
| "nodeType": "YulLiteral", | |
| "src": "4121:2:6", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "4106:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4106:3:6" | |
| }, | |
| "nativeSrc": "4106:18:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4106:18:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nativeSrc": "4098:4:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4098:4:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "4178:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4178:6:6" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "4191:9:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4191:9:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "4202:1:6", | |
| "nodeType": "YulLiteral", | |
| "src": "4202:1:6", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "4187:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4187:3:6" | |
| }, | |
| "nativeSrc": "4187:17:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4187:17:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_address_to_t_address_fromStack", | |
| "nativeSrc": "4134:43:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4134:43:6" | |
| }, | |
| "nativeSrc": "4134:71:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4134:71:6" | |
| }, | |
| "nativeSrc": "4134:71:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4134:71:6" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", | |
| "nativeSrc": "3990:222:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "4060:9:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4060:9:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nativeSrc": "4072:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4072:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nativeSrc": "4083:4:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4083:4:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3990:222:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "4276:40:6", | |
| "nodeType": "YulBlock", | |
| "src": "4276:40:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "4287:22:6", | |
| "nodeType": "YulAssignment", | |
| "src": "4287:22:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "4303:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4303:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "4297:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4297:5:6" | |
| }, | |
| "nativeSrc": "4297:12:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4297:12:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "4287:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4287:6:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_length_t_bytes_memory_ptr", | |
| "nativeSrc": "4218:98:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "4259:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4259:5:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "4269:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4269:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4218:98:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "4435:34:6", | |
| "nodeType": "YulBlock", | |
| "src": "4435:34:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "4445:18:6", | |
| "nodeType": "YulAssignment", | |
| "src": "4445:18:6", | |
| "value": { | |
| "name": "pos", | |
| "nativeSrc": "4460:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4460:3:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updated_pos", | |
| "nativeSrc": "4445:11:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4445:11:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", | |
| "nativeSrc": "4322:147:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4407:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4407:3:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "4412:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4412:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updated_pos", | |
| "nativeSrc": "4423:11:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4423:11:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4322:147:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "4583:278:6", | |
| "nodeType": "YulBlock", | |
| "src": "4583:278:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "4593:52:6", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "4593:52:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "4639:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4639:5:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_length_t_bytes_memory_ptr", | |
| "nativeSrc": "4607:31:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4607:31:6" | |
| }, | |
| "nativeSrc": "4607:38:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4607:38:6" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nativeSrc": "4597:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4597:6:6", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "4654:95:6", | |
| "nodeType": "YulAssignment", | |
| "src": "4654:95:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4737:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4737:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "4742:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4742:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", | |
| "nativeSrc": "4661:75:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4661:75:6" | |
| }, | |
| "nativeSrc": "4661:88:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4661:88:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4654:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4654:3:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "4797:5:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4797:5:6" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "4804:4:6", | |
| "nodeType": "YulLiteral", | |
| "src": "4804:4:6", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "4793:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4793:3:6" | |
| }, | |
| "nativeSrc": "4793:16:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4793:16:6" | |
| }, | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4811:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4811:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "4816:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4816:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "copy_memory_to_memory_with_cleanup", | |
| "nativeSrc": "4758:34:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4758:34:6" | |
| }, | |
| "nativeSrc": "4758:65:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4758:65:6" | |
| }, | |
| "nativeSrc": "4758:65:6", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4758:65:6" | |
| }, | |
| { | |
| "nativeSrc": "4832:23:6", | |
| "nodeType": "YulAssignment", | |
| "src": "4832:23:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4843:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4843:3:6" | |
| }, | |
| { | |
| "name": "length", | |
| "nativeSrc": "4848:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4848:6:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "4839:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4839:3:6" | |
| }, | |
| "nativeSrc": "4839:16:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "4839:16:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nativeSrc": "4832:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "4832:3:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", | |
| "nativeSrc": "4475:386:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "4564:5:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4564:5:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4571:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4571:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nativeSrc": "4579:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4579:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4475:386:6" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "5001:137:6", | |
| "nodeType": "YulBlock", | |
| "src": "5001:137:6", | |
| "statements": [ | |
| { | |
| "nativeSrc": "5012:100:6", | |
| "nodeType": "YulAssignment", | |
| "src": "5012:100:6", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "5099:6:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5099:6:6" | |
| }, | |
| { | |
| "name": "pos", | |
| "nativeSrc": "5108:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5108:3:6" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", | |
| "nativeSrc": "5019:79:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5019:79:6" | |
| }, | |
| "nativeSrc": "5019:93:6", | |
| "nodeType": "YulFunctionCall", | |
| "src": "5019:93:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "5012:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5012:3:6" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "5122:10:6", | |
| "nodeType": "YulAssignment", | |
| "src": "5122:10:6", | |
| "value": { | |
| "name": "pos", | |
| "nativeSrc": "5129:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5129:3:6" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nativeSrc": "5122:3:6", | |
| "nodeType": "YulIdentifier", | |
| "src": "5122:3:6" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", | |
| "nativeSrc": "4867:271:6", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nativeSrc": "4980:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4980:3:6", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nativeSrc": "4986:6:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4986:6:6", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nativeSrc": "4997:3:6", | |
| "nodeType": "YulTypedName", | |
| "src": "4997:3:6", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4867:271:6" | |
| } | |
| ] | |
| }, | |
| "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 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 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": 6, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "linkReferences": {}, | |
| "object": "60806040526040516106ae3803806106ae833981810160405281019061002591906104f2565b610035828261003c60201b60201c565b50506105ce565b61004b826100c060201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156100ad576100a7828261018f60201b60201c565b506100bc565b6100bb61021560201b60201c565b5b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361011b57806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610112919061055b565b60405180910390fd5b8061014d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b61025160201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f808473ffffffffffffffffffffffffffffffffffffffff16846040516101b891906105b8565b5f60405180830381855af49150503d805f81146101f0576040519150601f19603f3d011682016040523d82523d5f602084013e6101f5565b606091505b509150915061020b85838361025a60201b60201c565b9250505092915050565b5f34111561024f576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f819050919050565b60608261027557610270826102ed60201b60201c565b6102e5565b5f825114801561029b57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b156102dd57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016102d4919061055b565b60405180910390fd5b8190506102e6565b5b9392505050565b5f815111156102ff5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61036b82610342565b9050919050565b61037b81610361565b8114610385575f80fd5b50565b5f8151905061039681610372565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103ea826103a4565b810181811067ffffffffffffffff82111715610409576104086103b4565b5b80604052505050565b5f61041b610331565b905061042782826103e1565b919050565b5f67ffffffffffffffff821115610446576104456103b4565b5b61044f826103a4565b9050602081019050919050565b5f5b8381101561047957808201518184015260208101905061045e565b5f8484015250505050565b5f6104966104918461042c565b610412565b9050828152602081018484840111156104b2576104b16103a0565b5b6104bd84828561045c565b509392505050565b5f82601f8301126104d9576104d861039c565b5b81516104e9848260208601610484565b91505092915050565b5f80604083850312156105085761050761033a565b5b5f61051585828601610388565b925050602083015167ffffffffffffffff8111156105365761053561033e565b5b610542858286016104c5565b9150509250929050565b61055581610361565b82525050565b5f60208201905061056e5f83018461054c565b92915050565b5f81519050919050565b5f81905092915050565b5f61059282610574565b61059c818561057e565b93506105ac81856020860161045c565b80840191505092915050565b5f6105c38284610588565b915081905092915050565b60d4806105da5f395ff3fe6080604052600a600c565b005b60186014601a565b6026565b565b5f60216044565b905090565b365f80375f80365f845af43d5f803e805f81146040573d5ff35b3d5ffd5b5f606e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6095565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81905091905056fea26469706673582212204445ca1d654fe96658df00412cf9c7bcb1fdfaf66f39f4eb3c6a802907e7966864736f6c63430008150033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x6AE CODESIZE SUB DUP1 PUSH2 0x6AE DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x35 DUP3 DUP3 PUSH2 0x3C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x5CE JUMP JUMPDEST PUSH2 0x4B DUP3 PUSH2 0xC0 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 PUSH0 DUP2 MLOAD GT ISZERO PUSH2 0xAD JUMPI PUSH2 0xA7 DUP3 DUP3 PUSH2 0x18F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0xBC JUMP JUMPDEST PUSH2 0xBB PUSH2 0x215 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x11B JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x112 SWAP2 SWAP1 PUSH2 0x55B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x14D PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH0 SHL PUSH2 0x251 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH0 ADD PUSH0 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 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1B8 SWAP2 SWAP1 PUSH2 0x5B8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1F0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x20B DUP6 DUP4 DUP4 PUSH2 0x25A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLVALUE GT ISZERO PUSH2 0x24F JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x275 JUMPI PUSH2 0x270 DUP3 PUSH2 0x2ED PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x29B JUMPI POP PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x2DD JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP2 SWAP1 PUSH2 0x55B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x2E6 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD GT ISZERO PUSH2 0x2FF JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1425EA4200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x36B DUP3 PUSH2 0x342 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x37B DUP2 PUSH2 0x361 JUMP JUMPDEST DUP2 EQ PUSH2 0x385 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x396 DUP2 PUSH2 0x372 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x3EA DUP3 PUSH2 0x3A4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x409 JUMPI PUSH2 0x408 PUSH2 0x3B4 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x41B PUSH2 0x331 JUMP JUMPDEST SWAP1 POP PUSH2 0x427 DUP3 DUP3 PUSH2 0x3E1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x446 JUMPI PUSH2 0x445 PUSH2 0x3B4 JUMP JUMPDEST JUMPDEST PUSH2 0x44F DUP3 PUSH2 0x3A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x479 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x45E JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x496 PUSH2 0x491 DUP5 PUSH2 0x42C JUMP JUMPDEST PUSH2 0x412 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4B2 JUMPI PUSH2 0x4B1 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST PUSH2 0x4BD DUP5 DUP3 DUP6 PUSH2 0x45C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x39C JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x4E9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x484 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x508 JUMPI PUSH2 0x507 PUSH2 0x33A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x515 DUP6 DUP3 DUP7 ADD PUSH2 0x388 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x536 JUMPI PUSH2 0x535 PUSH2 0x33E JUMP JUMPDEST JUMPDEST PUSH2 0x542 DUP6 DUP3 DUP7 ADD PUSH2 0x4C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x555 DUP2 PUSH2 0x361 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x56E PUSH0 DUP4 ADD DUP5 PUSH2 0x54C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x592 DUP3 PUSH2 0x574 JUMP JUMPDEST PUSH2 0x59C DUP2 DUP6 PUSH2 0x57E JUMP JUMPDEST SWAP4 POP PUSH2 0x5AC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x45C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5C3 DUP3 DUP5 PUSH2 0x588 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xD4 DUP1 PUSH2 0x5DA PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x26 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x21 PUSH1 0x44 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 PUSH0 DUP2 EQ PUSH1 0x40 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x6E PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH0 SHL PUSH1 0x95 JUMP JUMPDEST PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO GASLIMIT 0xCA SAR PUSH6 0x4FE96658DF00 COINBASE 0x2C 0xF9 0xC7 0xBC 0xB1 REVERT STATICCALL 0xF6 PUSH16 0x39F4EB3C6A802907E7966864736F6C63 NUMBER STOP ADDMOD ISZERO STOP CALLER ", | |
| "sourceMap": "599:1116:0:-:0;;;1080:133;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1154:52;1184:14;1200:5;1154:29;;;:52;;:::i;:::-;1080:133;;599:1116;;2779:335:1;2870:37;2889:17;2870:18;;;:37;;:::i;:::-;2931:17;2922:27;;;;;;;;;;;;2978:1;2964:4;:11;:15;2960:148;;;2995:53;3024:17;3043:4;2995:28;;;:53;;:::i;:::-;;2960:148;;;3079:18;:16;;;:18;;:::i;:::-;2960:148;2779:335;;:::o;2186:281::-;2296:1;2263:17;:29;;;:34;2259:119;;2349:17;2320:47;;;;;;;;;;;:::i;:::-;;;;;;;;2259:119;2443:17;2387:47;1327:66;2414:19;;2387:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;2186:281;:::o;4106:253:4:-;4189:12;4214;4228:23;4255:6;:19;;4275:4;4255:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4213:67;;;;4297:55;4324:6;4332:7;4341:10;4297:26;;;:55;;:::i;:::-;4290:62;;;;4106:253;;;;:::o;6598:122:1:-;6660:1;6648:9;:13;6644:70;;;6684:19;;;;;;;;;;;;;;6644:70;6598:122::o;1684:190:5:-;1745:21;1854:4;1844:14;;1684:190;;;:::o;4625:582:4:-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;;;:19;;:::i;:::-;4793:408;;;5066:1;5045:10;:17;:22;:49;;;;;5093:1;5071:6;:18;;;:23;5045:49;5041:119;;;5138:6;5121:24;;;;;;;;;;;:::i;:::-;;;;;;;;5041:119;5180:10;5173:17;;;;4793:408;4625:582;;;;;;:::o;5743:516::-;5894:1;5874:10;:17;:21;5870:383;;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;;;;;;;;;;;;;7:75:6;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:246::-;2201:1;2211:113;2225:6;2222:1;2219:13;2211:113;;;2310:1;2305:3;2301:11;2295:18;2291:1;2286:3;2282:11;2275:39;2247:2;2244:1;2240:10;2235:15;;2211:113;;;2358:1;2349:6;2344:3;2340:16;2333:27;2182:184;2120:246;;;:::o;2372:432::-;2460:5;2485:65;2501:48;2542:6;2501:48;:::i;:::-;2485:65;:::i;:::-;2476:74;;2573:6;2566:5;2559:21;2611:4;2604:5;2600:16;2649:3;2640:6;2635:3;2631:16;2628:25;2625:112;;;2656:79;;:::i;:::-;2625:112;2746:52;2791:6;2786:3;2781;2746:52;:::i;:::-;2466:338;2372:432;;;;;:::o;2823:353::-;2889:5;2938:3;2931:4;2923:6;2919:17;2915:27;2905:122;;2946:79;;:::i;:::-;2905:122;3056:6;3050:13;3081:89;3166:3;3158:6;3151:4;3143:6;3139:17;3081:89;:::i;:::-;3072:98;;2895:281;2823:353;;;;:::o;3182:678::-;3270:6;3278;3327:2;3315:9;3306:7;3302:23;3298:32;3295:119;;;3333:79;;:::i;:::-;3295:119;3453:1;3478:64;3534:7;3525:6;3514:9;3510:22;3478:64;:::i;:::-;3468:74;;3424:128;3612:2;3601:9;3597:18;3591:25;3643:18;3635:6;3632:30;3629:117;;;3665:79;;:::i;:::-;3629:117;3770:73;3835:7;3826:6;3815:9;3811:22;3770:73;:::i;:::-;3760:83;;3562:291;3182:678;;;;;:::o;3866:118::-;3953:24;3971:5;3953:24;:::i;:::-;3948:3;3941:37;3866:118;;:::o;3990:222::-;4083:4;4121:2;4110:9;4106:18;4098:26;;4134:71;4202:1;4191:9;4187:17;4178:6;4134:71;:::i;:::-;3990:222;;;;:::o;4218:98::-;4269:6;4303:5;4297:12;4287:22;;4218:98;;;:::o;4322:147::-;4423:11;4460:3;4445:18;;4322:147;;;;:::o;4475:386::-;4579:3;4607:38;4639:5;4607:38;:::i;:::-;4661:88;4742:6;4737:3;4661:88;:::i;:::-;4654:95;;4758:65;4816:6;4811:3;4804:4;4797:5;4793:16;4758:65;:::i;:::-;4848:6;4843:3;4839:16;4832:23;;4583:278;4475:386;;;;:::o;4867:271::-;4997:3;5019:93;5108:3;5099:6;5019:93;:::i;:::-;5012:100;;5129:3;5122:10;;4867:271;;;;:::o;599:1116:0:-;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": { | |
| "@_375": { | |
| "entryPoint": null, | |
| "id": 375, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@_delegate_351": { | |
| "entryPoint": 38, | |
| "id": 351, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@_fallback_367": { | |
| "entryPoint": 12, | |
| "id": 367, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@_implementation_36": { | |
| "entryPoint": 26, | |
| "id": 36, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "@getAddressSlot_671": { | |
| "entryPoint": 149, | |
| "id": 671, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "@getImplementation_98": { | |
| "entryPoint": 68, | |
| "id": 98, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| } | |
| }, | |
| "generatedSources": [], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "6080604052600a600c565b005b60186014601a565b6026565b565b5f60216044565b905090565b365f80375f80365f845af43d5f803e805f81146040573d5ff35b3d5ffd5b5f606e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6095565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81905091905056fea26469706673582212204445ca1d654fe96658df00412cf9c7bcb1fdfaf66f39f4eb3c6a802907e7966864736f6c63430008150033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x26 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x21 PUSH1 0x44 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 PUSH0 DUP2 EQ PUSH1 0x40 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x6E PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH0 SHL PUSH1 0x95 JUMP JUMPDEST PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO GASLIMIT 0xCA SAR PUSH6 0x4FE96658DF00 COINBASE 0x2C 0xF9 0xC7 0xBC 0xB1 REVERT STATICCALL 0xF6 PUSH16 0x39F4EB3C6A802907E7966864736F6C63 NUMBER STOP ADDMOD ISZERO STOP CALLER ", | |
| "sourceMap": "599:1116:0:-:0;;;2649:11:2;:9;:11::i;:::-;599:1116:0;2323:83:2;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;1581:132:0:-;1648:7;1674:32;:30;:32::i;:::-;1667:39;;1581:132;:::o;949:895:2:-;1287:14;1284:1;1281;1268:34;1501:1;1498;1482:14;1479:1;1463:14;1456:5;1443:60;1577:16;1574:1;1571;1556:38;1615:6;1687:1;1682:66;;;;1797:16;1794:1;1787:27;1682:66;1717:16;1714:1;1707:27;1957:138:1;2009:7;2035:47;1327:66;2062:19;;2035:26;:47::i;:::-;:53;;;;;;;;;;;;2028:60;;1957:138;:::o;1684:190:5:-;1745:21;1854:4;1844:14;;1684:190;;;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "42400", | |
| "executionCost": "infinite", | |
| "totalCost": "infinite" | |
| }, | |
| "external": { | |
| "": "infinite" | |
| }, | |
| "internal": { | |
| "_implementation()": "2243" | |
| } | |
| }, | |
| "methodIdentifiers": {} | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "bytes", | |
| "name": "_data", | |
| "type": "bytes" | |
| } | |
| ], | |
| "stateMutability": "payable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "target", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "AddressEmptyCode", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "ERC1967InvalidImplementation", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "ERC1967NonPayable", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "FailedInnerCall", | |
| "type": "error" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "Upgraded", | |
| "type": "event" | |
| }, | |
| { | |
| "stateMutability": "payable", | |
| "type": "fallback" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.21+commit.d9974bed" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "bytes", | |
| "name": "_data", | |
| "type": "bytes" | |
| } | |
| ], | |
| "stateMutability": "payable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "target", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "AddressEmptyCode", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "ERC1967InvalidImplementation", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "ERC1967NonPayable", | |
| "type": "error" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "FailedInnerCall", | |
| "type": "error" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "implementation", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "Upgraded", | |
| "type": "event" | |
| }, | |
| { | |
| "stateMutability": "payable", | |
| "type": "fallback" | |
| } | |
| ], | |
| "devdoc": { | |
| "details": "This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.", | |
| "errors": { | |
| "AddressEmptyCode(address)": [ | |
| { | |
| "details": "There's no code at `target` (it is not a contract)." | |
| } | |
| ], | |
| "ERC1967InvalidImplementation(address)": [ | |
| { | |
| "details": "The `implementation` of the proxy is invalid." | |
| } | |
| ], | |
| "ERC1967NonPayable()": [ | |
| { | |
| "details": "An upgrade function sees `msg.value > 0` that may be lost." | |
| } | |
| ], | |
| "FailedInnerCall()": [ | |
| { | |
| "details": "A call to an address target failed. The target may have reverted." | |
| } | |
| ] | |
| }, | |
| "events": { | |
| "Upgraded(address)": { | |
| "details": "Emitted when the implementation is upgraded." | |
| } | |
| }, | |
| "kind": "dev", | |
| "methods": { | |
| "constructor": { | |
| "details": "Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero." | |
| } | |
| }, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol": "ERC1967Proxy" | |
| }, | |
| "evmVersion": "shanghai", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol": { | |
| "keccak256": "0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c", | |
| "dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV" | |
| ] | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol": { | |
| "keccak256": "0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a", | |
| "dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE" | |
| ] | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/Proxy.sol": { | |
| "keccak256": "0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac", | |
| "dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e" | |
| ] | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol": { | |
| "keccak256": "0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa", | |
| "dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM" | |
| ] | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Address.sol": { | |
| "keccak256": "0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245", | |
| "dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y" | |
| ] | |
| }, | |
| "github/OpenZeppelin/openzeppelin-contracts/contracts/utils/StorageSlot.sol": { | |
| "keccak256": "0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418", | |
| "license": "MIT", | |
| "urls": [ | |
| "bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c", | |
| "dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| // OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Proxy.sol) | |
| pragma solidity ^0.8.20; | |
| import {Proxy} from "../Proxy.sol"; | |
| import {ERC1967Utils} from "./ERC1967Utils.sol"; | |
| /** | |
| * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an | |
| * implementation address that can be changed. This address is stored in storage in the location specified by | |
| * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the | |
| * implementation behind the proxy. | |
| */ | |
| contract ERC1967Proxy is Proxy { | |
| /** | |
| * @dev 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. | |
| */ | |
| constructor(address implementation, bytes memory _data) payable { | |
| ERC1967Utils.upgradeToAndCall(implementation, _data); | |
| } | |
| /** | |
| * @dev Returns the current implementation address. | |
| * | |
| * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using | |
| * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. | |
| * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc` | |
| */ | |
| function _implementation() internal view virtual override returns (address) { | |
| return ERC1967Utils.getImplementation(); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| // OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Utils.sol) | |
| pragma solidity ^0.8.20; | |
| import {IBeacon} from "../beacon/IBeacon.sol"; | |
| import {Address} from "../../utils/Address.sol"; | |
| import {StorageSlot} from "../../utils/StorageSlot.sol"; | |
| /** | |
| * @dev This abstract contract provides getters and event emitting update functions for | |
| * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. | |
| */ | |
| library ERC1967Utils { | |
| // We re-declare ERC-1967 events here because they can't be used directly from IERC1967. | |
| // This will be fixed in Solidity 0.8.21. At that point we should remove these events. | |
| /** | |
| * @dev Emitted when the implementation is upgraded. | |
| */ | |
| event Upgraded(address indexed implementation); | |
| /** | |
| * @dev Emitted when the admin account has changed. | |
| */ | |
| event AdminChanged(address previousAdmin, address newAdmin); | |
| /** | |
| * @dev Emitted when the beacon is changed. | |
| */ | |
| event BeaconUpgraded(address indexed beacon); | |
| /** | |
| * @dev Storage slot with the address of the current implementation. | |
| * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1. | |
| */ | |
| // solhint-disable-next-line private-vars-leading-underscore | |
| bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; | |
| /** | |
| * @dev The `implementation` of the proxy is invalid. | |
| */ | |
| error ERC1967InvalidImplementation(address implementation); | |
| /** | |
| * @dev The `admin` of the proxy is invalid. | |
| */ | |
| error ERC1967InvalidAdmin(address admin); | |
| /** | |
| * @dev The `beacon` of the proxy is invalid. | |
| */ | |
| error ERC1967InvalidBeacon(address beacon); | |
| /** | |
| * @dev An upgrade function sees `msg.value > 0` that may be lost. | |
| */ | |
| error ERC1967NonPayable(); | |
| /** | |
| * @dev Returns the current implementation address. | |
| */ | |
| function getImplementation() internal view returns (address) { | |
| return StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value; | |
| } | |
| /** | |
| * @dev Stores a new address in the EIP1967 implementation slot. | |
| */ | |
| function _setImplementation(address newImplementation) private { | |
| if (newImplementation.code.length == 0) { | |
| revert ERC1967InvalidImplementation(newImplementation); | |
| } | |
| StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value = newImplementation; | |
| } | |
| /** | |
| * @dev Performs implementation upgrade with additional setup call if data is nonempty. | |
| * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected | |
| * to avoid stuck value in the contract. | |
| * | |
| * Emits an {IERC1967-Upgraded} event. | |
| */ | |
| function upgradeToAndCall(address newImplementation, bytes memory data) internal { | |
| _setImplementation(newImplementation); | |
| emit Upgraded(newImplementation); | |
| if (data.length > 0) { | |
| Address.functionDelegateCall(newImplementation, data); | |
| } else { | |
| _checkNonPayable(); | |
| } | |
| } | |
| /** | |
| * @dev Storage slot with the admin of the contract. | |
| * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1. | |
| */ | |
| // solhint-disable-next-line private-vars-leading-underscore | |
| bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; | |
| /** | |
| * @dev Returns the current admin. | |
| * | |
| * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using | |
| * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. | |
| * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103` | |
| */ | |
| function getAdmin() internal view returns (address) { | |
| return StorageSlot.getAddressSlot(ADMIN_SLOT).value; | |
| } | |
| /** | |
| * @dev Stores a new address in the EIP1967 admin slot. | |
| */ | |
| function _setAdmin(address newAdmin) private { | |
| if (newAdmin == address(0)) { | |
| revert ERC1967InvalidAdmin(address(0)); | |
| } | |
| StorageSlot.getAddressSlot(ADMIN_SLOT).value = newAdmin; | |
| } | |
| /** | |
| * @dev Changes the admin of the proxy. | |
| * | |
| * Emits an {IERC1967-AdminChanged} event. | |
| */ | |
| function changeAdmin(address newAdmin) internal { | |
| emit AdminChanged(getAdmin(), newAdmin); | |
| _setAdmin(newAdmin); | |
| } | |
| /** | |
| * @dev 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. | |
| */ | |
| // solhint-disable-next-line private-vars-leading-underscore | |
| bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; | |
| /** | |
| * @dev Returns the current beacon. | |
| */ | |
| function getBeacon() internal view returns (address) { | |
| return StorageSlot.getAddressSlot(BEACON_SLOT).value; | |
| } | |
| /** | |
| * @dev Stores a new beacon in the EIP1967 beacon slot. | |
| */ | |
| function _setBeacon(address newBeacon) private { | |
| if (newBeacon.code.length == 0) { | |
| revert ERC1967InvalidBeacon(newBeacon); | |
| } | |
| StorageSlot.getAddressSlot(BEACON_SLOT).value = newBeacon; | |
| address beaconImplementation = IBeacon(newBeacon).implementation(); | |
| if (beaconImplementation.code.length == 0) { | |
| revert ERC1967InvalidImplementation(beaconImplementation); | |
| } | |
| } | |
| /** | |
| * @dev Change the beacon and trigger a setup call if data is nonempty. | |
| * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected | |
| * to avoid stuck value in the contract. | |
| * | |
| * Emits an {IERC1967-BeaconUpgraded} event. | |
| * | |
| * CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since | |
| * it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for | |
| * efficiency. | |
| */ | |
| function upgradeBeaconToAndCall(address newBeacon, bytes memory data) internal { | |
| _setBeacon(newBeacon); | |
| emit BeaconUpgraded(newBeacon); | |
| if (data.length > 0) { | |
| Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data); | |
| } else { | |
| _checkNonPayable(); | |
| } | |
| } | |
| /** | |
| * @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract | |
| * if an upgrade doesn't perform an initialization call. | |
| */ | |
| function _checkNonPayable() private { | |
| if (msg.value > 0) { | |
| revert ERC1967NonPayable(); | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| // OpenZeppelin Contracts (last updated v5.0.0) (proxy/Proxy.sol) | |
| pragma solidity ^0.8.20; | |
| /** | |
| * @dev 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. | |
| */ | |
| abstract contract Proxy { | |
| /** | |
| * @dev Delegates the current call to `implementation`. | |
| * | |
| * This function does not return to its internal call site, it will return directly to the external caller. | |
| */ | |
| function _delegate(address implementation) internal virtual { | |
| assembly { | |
| // Copy msg.data. We take full control of memory in this inline assembly | |
| // block because it will not return to Solidity code. We overwrite the | |
| // Solidity scratch pad at memory position 0. | |
| calldatacopy(0, 0, calldatasize()) | |
| // Call the implementation. | |
| // out and outsize are 0 because we don't know the size yet. | |
| let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) | |
| // Copy the returned data. | |
| returndatacopy(0, 0, returndatasize()) | |
| switch result | |
| // delegatecall returns 0 on error. | |
| case 0 { | |
| revert(0, returndatasize()) | |
| } | |
| default { | |
| return(0, returndatasize()) | |
| } | |
| } | |
| } | |
| /** | |
| * @dev This is a virtual function that should be overridden so it returns the address to which the fallback | |
| * function and {_fallback} should delegate. | |
| */ | |
| function _implementation() internal view virtual returns (address); | |
| /** | |
| * @dev Delegates the current call to the address returned by `_implementation()`. | |
| * | |
| * This function does not return to its internal call site, it will return directly to the external caller. | |
| */ | |
| function _fallback() internal virtual { | |
| _delegate(_implementation()); | |
| } | |
| /** | |
| * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other | |
| * function in the contract matches the call data. | |
| */ | |
| fallback() external payable virtual { | |
| _fallback(); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| // OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol) | |
| pragma solidity ^0.8.20; | |
| /** | |
| * @dev Collection of functions related to the address type | |
| */ | |
| library Address { | |
| /** | |
| * @dev The ETH balance of the account is not enough to perform the operation. | |
| */ | |
| error AddressInsufficientBalance(address account); | |
| /** | |
| * @dev There's no code at `target` (it is not a contract). | |
| */ | |
| error AddressEmptyCode(address target); | |
| /** | |
| * @dev A call to an address target failed. The target may have reverted. | |
| */ | |
| error FailedInnerCall(); | |
| /** | |
| * @dev Replacement for Solidity's `transfer`: sends `amount` wei to | |
| * `recipient`, forwarding all available gas and reverting on errors. | |
| * | |
| * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost | |
| * of certain opcodes, possibly making contracts go over the 2300 gas limit | |
| * imposed by `transfer`, making them unable to receive funds via | |
| * `transfer`. {sendValue} removes this limitation. | |
| * | |
| * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. | |
| * | |
| * IMPORTANT: because control is transferred to `recipient`, care must be | |
| * taken to not create reentrancy vulnerabilities. Consider using | |
| * {ReentrancyGuard} or the | |
| * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. | |
| */ | |
| function sendValue(address payable recipient, uint256 amount) internal { | |
| if (address(this).balance < amount) { | |
| revert AddressInsufficientBalance(address(this)); | |
| } | |
| (bool success, ) = recipient.call{value: amount}(""); | |
| if (!success) { | |
| revert FailedInnerCall(); | |
| } | |
| } | |
| /** | |
| * @dev Performs a Solidity function call using a low level `call`. A | |
| * plain `call` is an unsafe replacement for a function call: use this | |
| * function instead. | |
| * | |
| * If `target` reverts with a revert reason or custom error, it is bubbled | |
| * up by this function (like regular Solidity function calls). However, if | |
| * the call reverted with no returned reason, this function reverts with a | |
| * {FailedInnerCall} error. | |
| * | |
| * Returns the raw returned data. To convert to the expected return value, | |
| * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. | |
| * | |
| * Requirements: | |
| * | |
| * - `target` must be a contract. | |
| * - calling `target` with `data` must not revert. | |
| */ | |
| function functionCall(address target, bytes memory data) internal returns (bytes memory) { | |
| return functionCallWithValue(target, data, 0); | |
| } | |
| /** | |
| * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], | |
| * but also transferring `value` wei to `target`. | |
| * | |
| * Requirements: | |
| * | |
| * - the calling contract must have an ETH balance of at least `value`. | |
| * - the called Solidity function must be `payable`. | |
| */ | |
| function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { | |
| if (address(this).balance < value) { | |
| revert AddressInsufficientBalance(address(this)); | |
| } | |
| (bool success, bytes memory returndata) = target.call{value: value}(data); | |
| return verifyCallResultFromTarget(target, success, returndata); | |
| } | |
| /** | |
| * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], | |
| * but performing a static call. | |
| */ | |
| function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { | |
| (bool success, bytes memory returndata) = target.staticcall(data); | |
| return verifyCallResultFromTarget(target, success, returndata); | |
| } | |
| /** | |
| * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], | |
| * but performing a delegate call. | |
| */ | |
| function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { | |
| (bool success, bytes memory returndata) = target.delegatecall(data); | |
| return verifyCallResultFromTarget(target, success, returndata); | |
| } | |
| /** | |
| * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target | |
| * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an | |
| * unsuccessful call. | |
| */ | |
| function verifyCallResultFromTarget( | |
| address target, | |
| bool success, | |
| bytes memory returndata | |
| ) internal view returns (bytes memory) { | |
| if (!success) { | |
| _revert(returndata); | |
| } else { | |
| // only check if target is a contract if the call was successful and the return data is empty | |
| // otherwise we already know that it was a contract | |
| if (returndata.length == 0 && target.code.length == 0) { | |
| revert AddressEmptyCode(target); | |
| } | |
| return returndata; | |
| } | |
| } | |
| /** | |
| * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the | |
| * revert reason or with a default {FailedInnerCall} error. | |
| */ | |
| function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) { | |
| if (!success) { | |
| _revert(returndata); | |
| } else { | |
| return returndata; | |
| } | |
| } | |
| /** | |
| * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}. | |
| */ | |
| function _revert(bytes memory returndata) private pure { | |
| // Look for revert reason and bubble it up if present | |
| if (returndata.length > 0) { | |
| // The easiest way to bubble the revert reason is using memory via assembly | |
| /// @solidity memory-safe-assembly | |
| assembly { | |
| let returndata_size := mload(returndata) | |
| revert(add(32, returndata), returndata_size) | |
| } | |
| } else { | |
| revert FailedInnerCall(); | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| // OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) | |
| // This file was procedurally generated from scripts/generate/templates/StorageSlot.js. | |
| pragma solidity ^0.8.20; | |
| /** | |
| * @dev Library for reading and writing primitive types to specific storage slots. | |
| * | |
| * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. | |
| * This library helps with reading and writing to such slots without the need for inline assembly. | |
| * | |
| * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. | |
| * | |
| * Example usage to set ERC1967 implementation slot: | |
| * ```solidity | |
| * contract ERC1967 { | |
| * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; | |
| * | |
| * function _getImplementation() internal view returns (address) { | |
| * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; | |
| * } | |
| * | |
| * function _setImplementation(address newImplementation) internal { | |
| * require(newImplementation.code.length > 0); | |
| * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; | |
| * } | |
| * } | |
| * ``` | |
| */ | |
| library StorageSlot { | |
| struct AddressSlot { | |
| address value; | |
| } | |
| struct BooleanSlot { | |
| bool value; | |
| } | |
| struct Bytes32Slot { | |
| bytes32 value; | |
| } | |
| struct Uint256Slot { | |
| uint256 value; | |
| } | |
| struct StringSlot { | |
| string value; | |
| } | |
| struct BytesSlot { | |
| bytes value; | |
| } | |
| /** | |
| * @dev Returns an `AddressSlot` with member `value` located at `slot`. | |
| */ | |
| function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { | |
| /// @solidity memory-safe-assembly | |
| assembly { | |
| r.slot := slot | |
| } | |
| } | |
| /** | |
| * @dev Returns an `BooleanSlot` with member `value` located at `slot`. | |
| */ | |
| function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { | |
| /// @solidity memory-safe-assembly | |
| assembly { | |
| r.slot := slot | |
| } | |
| } | |
| /** | |
| * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. | |
| */ | |
| function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { | |
| /// @solidity memory-safe-assembly | |
| assembly { | |
| r.slot := slot | |
| } | |
| } | |
| /** | |
| * @dev Returns an `Uint256Slot` with member `value` located at `slot`. | |
| */ | |
| function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { | |
| /// @solidity memory-safe-assembly | |
| assembly { | |
| r.slot := slot | |
| } | |
| } | |
| /** | |
| * @dev Returns an `StringSlot` with member `value` located at `slot`. | |
| */ | |
| function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) { | |
| /// @solidity memory-safe-assembly | |
| assembly { | |
| r.slot := slot | |
| } | |
| } | |
| /** | |
| * @dev Returns an `StringSlot` representation of the string storage pointer `store`. | |
| */ | |
| function getStringSlot(string storage store) internal pure returns (StringSlot storage r) { | |
| /// @solidity memory-safe-assembly | |
| assembly { | |
| r.slot := store.slot | |
| } | |
| } | |
| /** | |
| * @dev Returns an `BytesSlot` with member `value` located at `slot`. | |
| */ | |
| function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) { | |
| /// @solidity memory-safe-assembly | |
| assembly { | |
| r.slot := slot | |
| } | |
| } | |
| /** | |
| * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`. | |
| */ | |
| function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) { | |
| /// @solidity memory-safe-assembly | |
| assembly { | |
| r.slot := store.slot | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment