{ "id": "88085cbaddc5fadfd530b22a9a0f57e7", "_format": "hh-sol-build-info-1", "solcVersion": "0.8.10", "solcLongVersion": "0.8.10+commit.fc410830", "input": { "language": "Solidity", "sources": { "contracts/OnChainMessengerV1.sol": { "content": "//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.10;\n\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\n\n// simple messenger app that stores all data on-chain\n// in practice, this is probably not ideal as it will \n// get expensive to do anything interesting and the \n// solidity data structures are not ideal for this \n// type of storage\n// but this kind of seems like the hello world of \n// encrypted messaging\n\ncontract OnChainMessengerV1 is Initializable {\n mapping(address => Message) public messages;\n\n struct Message {\n address sender;\n string content;\n }\n\n function sendMessage(address recipient, string memory message) public {\n messages[recipient] = Message(msg.sender, message);\n }\n}\n" }, "@openzeppelin/contracts/proxy/utils/Initializable.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/Address.sol\";\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the\n * initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() initializer {}\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Indicates that the contract has been initialized.\n */\n bool private _initialized;\n\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool private _initializing;\n\n /**\n * @dev Modifier to protect an initializer function from being invoked twice.\n */\n modifier initializer() {\n // If the contract is initializing we ignore whether _initialized is set in order to support multiple\n // inheritance patterns, but we only do this in the context of a constructor, because in other contexts the\n // contract may have been reentered.\n require(_initializing ? _isConstructor() : !_initialized, \"Initializable: contract is already initialized\");\n\n bool isTopLevelCall = !_initializing;\n if (isTopLevelCall) {\n _initializing = true;\n _initialized = true;\n }\n\n _;\n\n if (isTopLevelCall) {\n _initializing = false;\n }\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} modifier, directly or indirectly.\n */\n modifier onlyInitializing() {\n require(_initializing, \"Initializable: contract is not initializing\");\n _;\n }\n\n function _isConstructor() private view returns (bool) {\n return !Address.isContract(address(this));\n }\n}\n" }, "@openzeppelin/contracts/utils/Address.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Address.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n assembly {\n size := extcodesize(account)\n }\n return size > 0;\n }\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://diligence.consensys.net/posts/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.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\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, it is bubbled up by this\n * function (like regular Solidity function calls).\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 * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\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 * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n * revert reason using the provided one.\n *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\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\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n" }, "contracts/OnChainMessengerV2.sol": { "content": "//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.10;\n\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\n// simple messenger app that stores all data on-chain\n// in practice, this is probably not ideal as it will \n// get expensive to do anything interesting and the \n// solidity data structures are not ideal for this \n// type of storage\n// but this kind of seems like the hello world of \n// encrypted messaging\n\ncontract OnChainMessengerV2 is Pausable, Ownable {\n mapping(address => Message) public messages;\n\n event Error(address sender);\n\n struct Message {\n address sender;\n string content;\n }\n\n function sendMessage(address recipient, string memory message) public whenNotPaused {\n messages[recipient] = Message(msg.sender, message);\n }\n\n function throwError() public {\n emit Error(msg.sender);\n }\n\n function pause() public onlyOwner {\n _pause();\n }\n\n function unpause() public onlyOwner {\n _unpause();\n }\n}\n" }, "@openzeppelin/contracts/security/Pausable.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n /**\n * @dev Emitted when the pause is triggered by `account`.\n */\n event Paused(address account);\n\n /**\n * @dev Emitted when the pause is lifted by `account`.\n */\n event Unpaused(address account);\n\n bool private _paused;\n\n /**\n * @dev Initializes the contract in unpaused state.\n */\n constructor() {\n _paused = false;\n }\n\n /**\n * @dev Returns true if the contract is paused, and false otherwise.\n */\n function paused() public view virtual returns (bool) {\n return _paused;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is not paused.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n modifier whenNotPaused() {\n require(!paused(), \"Pausable: paused\");\n _;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is paused.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n modifier whenPaused() {\n require(paused(), \"Pausable: not paused\");\n _;\n }\n\n /**\n * @dev Triggers stopped state.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n function _pause() internal virtual whenNotPaused {\n _paused = true;\n emit Paused(_msgSender());\n }\n\n /**\n * @dev Returns to normal state.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n function _unpause() internal virtual whenPaused {\n _paused = false;\n emit Unpaused(_msgSender());\n }\n}\n" }, "@openzeppelin/contracts/access/Ownable.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" }, "@openzeppelin/contracts/utils/Context.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n" } }, "settings": { "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata" ], "": [ "ast" ] } } } }, "output": { "contracts": { "@openzeppelin/contracts/access/Ownable.sol": { "Ownable": { "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "evm": { "bytecode": { "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "deployedBytecode": { "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "methodIdentifiers": { "owner()": "8da5cb5b", "renounceOwnership()": "715018a6", "transferOwnership(address)": "f2fde38b" } }, "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}" } }, "@openzeppelin/contracts/proxy/utils/Initializable.sol": { "Initializable": { "abi": [], "evm": { "bytecode": { "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "deployedBytecode": { "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "methodIdentifiers": {} }, "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() initializer {} ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed: [.hljs-theme-light.nopadding] ```\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x94dd781aa290742d990ccb720b3cab52a3865d1ba004e35c1dc757aa3ee788e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d762e5eb6f74a6228a744b0261fb2dda4e2c8a214206ca67a443c06feb16ce2\",\"dweb:/ipfs/QmU85d56LUBCQ5j24hVf3WJ2uwjNoyLJr8ZYyDXWKmJGpU\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x51b758a8815ecc9596c66c37d56b1d33883a444631a3f916b9fe65cb863ef7c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://997ca03557985b3c6f9143a18b6c3a710b3bc1c7f189ee956d305a966ecfb922\",\"dweb:/ipfs/QmQaD3Wb62F88SHqmpLttvF6wKuPDQep2LLUcKPekeRzvz\"]}},\"version\":1}" } }, "@openzeppelin/contracts/security/Pausable.sol": { "Pausable": { "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ], "evm": { "bytecode": { "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "deployedBytecode": { "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "methodIdentifiers": { "paused()": "5c975abb" } }, "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0xe68ed7fb8766ed1e888291f881e36b616037f852b37d96877045319ad298ba87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d491a2ca79dbf44bc02e876e21a5847a2cbcc011188532ad8662cdc1c134a4e\",\"dweb:/ipfs/QmUQXhSV8ZvHLzfdG89ZNSh1nLrAYyjnNBLznJGwGcwVk8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/Address.sol": { "Address": { "abi": [], "evm": { "bytecode": { "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a6e7d3b39b556d3a30903a180b6f58e9b6aa24b1a72f7be29b478528dbcb882064736f6c634300080a0033", "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0xE7 0xD3 0xB3 SWAP12 SSTORE PUSH14 0x3A30903A180B6F58E9B6AA24B1A7 0x2F PUSH28 0xE29B478528DBCB882064736F6C634300080A00330000000000000000 ", "sourceMap": "179:7729:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a6e7d3b39b556d3a30903a180b6f58e9b6aa24b1a72f7be29b478528dbcb882064736f6c634300080a0033", "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0xE7 0xD3 0xB3 SWAP12 SSTORE PUSH14 0x3A30903A180B6F58E9B6AA24B1A7 0x2F PUSH28 0xE29B478528DBCB882064736F6C634300080A00330000000000000000 ", "sourceMap": "179:7729:3:-:0;;;;;;;;" }, "methodIdentifiers": {} }, "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x51b758a8815ecc9596c66c37d56b1d33883a444631a3f916b9fe65cb863ef7c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://997ca03557985b3c6f9143a18b6c3a710b3bc1c7f189ee956d305a966ecfb922\",\"dweb:/ipfs/QmQaD3Wb62F88SHqmpLttvF6wKuPDQep2LLUcKPekeRzvz\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/Context.sol": { "Context": { "abi": [], "evm": { "bytecode": { "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "deployedBytecode": { "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, "object": "", "opcodes": "", "sourceMap": "" }, "methodIdentifiers": {} }, "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}" } }, "contracts/OnChainMessengerV1.sol": { "OnChainMessengerV1": { "abi": [ { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "messages", "outputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "string", "name": "content", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "string", "name": "message", "type": "string" } ], "name": "sendMessage", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "evm": { "bytecode": { "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, "object": "608060405234801561001057600080fd5b5061066b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80635fdd59f81461003b578063de6f24bb1461006c575b600080fd5b6100556004803603810190610050919061033e565b610088565b604051610063929190610413565b60405180910390f35b61008660048036038101906100819190610578565b610154565b005b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010180546100d190610603565b80601f01602080910402602001604051908101604052809291908181526020018280546100fd90610603565b801561014a5780601f1061011f5761010080835404028352916020019161014a565b820191906000526020600020905b81548152906001019060200180831161012d57829003601f168201915b5050505050905082565b60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200182815250600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610221929190610229565b509050505050565b82805461023590610603565b90600052602060002090601f016020900481019282610257576000855561029e565b82601f1061027057805160ff191683800117855561029e565b8280016001018555821561029e579182015b8281111561029d578251825591602001919060010190610282565b5b5090506102ab91906102af565b5090565b5b808211156102c85760008160009055506001016102b0565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061030b826102e0565b9050919050565b61031b81610300565b811461032657600080fd5b50565b60008135905061033881610312565b92915050565b600060208284031215610354576103536102d6565b5b600061036284828501610329565b91505092915050565b61037481610300565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103b4578082015181840152602081019050610399565b838111156103c3576000848401525b50505050565b6000601f19601f8301169050919050565b60006103e58261037a565b6103ef8185610385565b93506103ff818560208601610396565b610408816103c9565b840191505092915050565b6000604082019050610428600083018561036b565b818103602083015261043a81846103da565b90509392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610485826103c9565b810181811067ffffffffffffffff821117156104a4576104a361044d565b5b80604052505050565b60006104b76102cc565b90506104c3828261047c565b919050565b600067ffffffffffffffff8211156104e3576104e261044d565b5b6104ec826103c9565b9050602081019050919050565b82818337600083830152505050565b600061051b610516846104c8565b6104ad565b90508281526020810184848401111561053757610536610448565b5b6105428482856104f9565b509392505050565b600082601f83011261055f5761055e610443565b5b813561056f848260208601610508565b91505092915050565b6000806040838503121561058f5761058e6102d6565b5b600061059d85828601610329565b925050602083013567ffffffffffffffff8111156105be576105bd6102db565b5b6105ca8582860161054a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061061b57607f821691505b6020821081141561062f5761062e6105d4565b5b5091905056fea264697066735822122064ccb087bb9ce2267d6ce6f329c242c66b988e56c54a9deaa28c81e47347742164736f6c634300080a0033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x66B DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5FDD59F8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xDE6F24BB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x33E JUMP JUMPDEST PUSH2 0x88 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x63 SWAP3 SWAP2 SWAP1 PUSH2 0x413 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x81 SWAP2 SWAP1 PUSH2 0x578 JUMP JUMPDEST PUSH2 0x154 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xD1 SWAP1 PUSH2 0x603 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xFD SWAP1 PUSH2 0x603 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x14A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x11F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x14A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x12D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x221 SWAP3 SWAP2 SWAP1 PUSH2 0x229 JUMP JUMPDEST POP SWAP1 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x235 SWAP1 PUSH2 0x603 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x257 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x29E JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x270 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x29E JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x29E JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x29D JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x282 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x2AF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2C8 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x2B0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30B DUP3 PUSH2 0x2E0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x31B DUP2 PUSH2 0x300 JUMP JUMPDEST DUP2 EQ PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x338 DUP2 PUSH2 0x312 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x354 JUMPI PUSH2 0x353 PUSH2 0x2D6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP5 DUP3 DUP6 ADD PUSH2 0x329 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x374 DUP2 PUSH2 0x300 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3B4 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x399 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP3 PUSH2 0x37A JUMP JUMPDEST PUSH2 0x3EF DUP2 DUP6 PUSH2 0x385 JUMP JUMPDEST SWAP4 POP PUSH2 0x3FF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x396 JUMP JUMPDEST PUSH2 0x408 DUP2 PUSH2 0x3C9 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x428 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x36B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x43A DUP2 DUP5 PUSH2 0x3DA JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x485 DUP3 PUSH2 0x3C9 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4A4 JUMPI PUSH2 0x4A3 PUSH2 0x44D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B7 PUSH2 0x2CC JUMP JUMPDEST SWAP1 POP PUSH2 0x4C3 DUP3 DUP3 PUSH2 0x47C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x4E3 JUMPI PUSH2 0x4E2 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x4EC DUP3 PUSH2 0x3C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51B PUSH2 0x516 DUP5 PUSH2 0x4C8 JUMP JUMPDEST PUSH2 0x4AD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x537 JUMPI PUSH2 0x536 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH2 0x542 DUP5 DUP3 DUP6 PUSH2 0x4F9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x55F JUMPI PUSH2 0x55E PUSH2 0x443 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x56F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x508 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x58F JUMPI PUSH2 0x58E PUSH2 0x2D6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x59D DUP6 DUP3 DUP7 ADD PUSH2 0x329 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5BE JUMPI PUSH2 0x5BD PUSH2 0x2DB JUMP JUMPDEST JUMPDEST PUSH2 0x5CA DUP6 DUP3 DUP7 ADD PUSH2 0x54A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x61B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x62F JUMPI PUSH2 0x62E PUSH2 0x5D4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH5 0xCCB087BB9C 0xE2 0x26 PUSH30 0x6CE6F329C242C66B988E56C54A9DEAA28C81E47347742164736F6C634300 ADDMOD EXP STOP CALLER ", "sourceMap": "436:294:5:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "functionDebugData": { "@messages_599": { "entryPoint": 136, "id": 599, "parameterSlots": 0, "returnSlots": 0 }, "@sendMessage_622": { "entryPoint": 340, "id": 622, "parameterSlots": 2, "returnSlots": 0 }, "abi_decode_available_length_t_string_memory_ptr": { "entryPoint": 1288, "id": null, "parameterSlots": 3, "returnSlots": 1 }, "abi_decode_t_address": { "entryPoint": 809, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_t_string_memory_ptr": { "entryPoint": 1354, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_address": { "entryPoint": 830, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_addresst_string_memory_ptr": { "entryPoint": 1400, "id": null, "parameterSlots": 2, "returnSlots": 2 }, "abi_encode_t_address_to_t_address_fromStack": { "entryPoint": 875, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { "entryPoint": 986, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed": { "entryPoint": 1043, "id": null, "parameterSlots": 3, "returnSlots": 1 }, "allocate_memory": { "entryPoint": 1197, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "allocate_unbounded": { "entryPoint": 716, "id": null, "parameterSlots": 0, "returnSlots": 1 }, "array_allocation_size_t_string_memory_ptr": { "entryPoint": 1224, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "array_length_t_string_memory_ptr": { "entryPoint": 890, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { "entryPoint": 901, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "cleanup_t_address": { "entryPoint": 768, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint160": { "entryPoint": 736, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "copy_calldata_to_memory": { "entryPoint": 1273, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "copy_memory_to_memory": { "entryPoint": 918, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "extract_byte_array_length": { "entryPoint": 1539, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "finalize_allocation": { "entryPoint": 1148, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "panic_error_0x22": { "entryPoint": 1492, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "panic_error_0x41": { "entryPoint": 1101, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { "entryPoint": 1091, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { "entryPoint": 1096, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { "entryPoint": 731, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { "entryPoint": 726, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "round_up_to_mul_of_32": { "entryPoint": 969, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "validator_revert_t_address": { "entryPoint": 786, "id": null, "parameterSlots": 1, "returnSlots": 0 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:6075:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "47:35:7", "statements": [ { "nodeType": "YulAssignment", "src": "57:19:7", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "73:2:7", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "67:5:7" }, "nodeType": "YulFunctionCall", "src": "67:9:7" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "57:6:7" } ] } ] }, "name": "allocate_unbounded", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "40:6:7", "type": "" } ], "src": "7:75:7" }, { "body": { "nodeType": "YulBlock", "src": "177:28:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "194:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "197:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "187:6:7" }, "nodeType": "YulFunctionCall", "src": "187:12:7" }, "nodeType": "YulExpressionStatement", "src": "187:12:7" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", "src": "88:117:7" }, { "body": { "nodeType": "YulBlock", "src": "300:28:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "317:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "320:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "310:6:7" }, "nodeType": "YulFunctionCall", "src": "310:12:7" }, "nodeType": "YulExpressionStatement", "src": "310:12:7" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", "src": "211:117:7" }, { "body": { "nodeType": "YulBlock", "src": "379:81:7", "statements": [ { "nodeType": "YulAssignment", "src": "389:65:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "404:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "411:42:7", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "400:3:7" }, "nodeType": "YulFunctionCall", "src": "400:54:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "389:7:7" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "361:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "371:7:7", "type": "" } ], "src": "334:126:7" }, { "body": { "nodeType": "YulBlock", "src": "511:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "521:35:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "550:5:7" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "532:17:7" }, "nodeType": "YulFunctionCall", "src": "532:24:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "521:7:7" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "493:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "503:7:7", "type": "" } ], "src": "466:96:7" }, { "body": { "nodeType": "YulBlock", "src": "611:79:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "668:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "677:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "680:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "670:6:7" }, "nodeType": "YulFunctionCall", "src": "670:12:7" }, "nodeType": "YulExpressionStatement", "src": "670:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "634:5:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "659:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "641:17:7" }, "nodeType": "YulFunctionCall", "src": "641:24:7" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "631:2:7" }, "nodeType": "YulFunctionCall", "src": "631:35:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "624:6:7" }, "nodeType": "YulFunctionCall", "src": "624:43:7" }, "nodeType": "YulIf", "src": "621:63:7" } ] }, "name": "validator_revert_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "604:5:7", "type": "" } ], "src": "568:122:7" }, { "body": { "nodeType": "YulBlock", "src": "748:87:7", "statements": [ { "nodeType": "YulAssignment", "src": "758:29:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "780:6:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "767:12:7" }, "nodeType": "YulFunctionCall", "src": "767:20:7" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "758:5:7" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "823:5:7" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "796:26:7" }, "nodeType": "YulFunctionCall", "src": "796:33:7" }, "nodeType": "YulExpressionStatement", "src": "796:33:7" } ] }, "name": "abi_decode_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "726:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "734:3:7", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "742:5:7", "type": "" } ], "src": "696:139:7" }, { "body": { "nodeType": "YulBlock", "src": "907:263:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "953:83:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "955:77:7" }, "nodeType": "YulFunctionCall", "src": "955:79:7" }, "nodeType": "YulExpressionStatement", "src": "955:79:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "928:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "937:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "924:3:7" }, "nodeType": "YulFunctionCall", "src": "924:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "949:2:7", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "920:3:7" }, "nodeType": "YulFunctionCall", "src": "920:32:7" }, "nodeType": "YulIf", "src": "917:119:7" }, { "nodeType": "YulBlock", "src": "1046:117:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1061:15:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "1075:1:7", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1065:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1090:63:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1125:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1136:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1121:3:7" }, "nodeType": "YulFunctionCall", "src": "1121:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1145:7:7" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", "src": "1100:20:7" }, "nodeType": "YulFunctionCall", "src": "1100:53:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1090:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "877:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "888:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "900:6:7", "type": "" } ], "src": "841:329:7" }, { "body": { "nodeType": "YulBlock", "src": "1241:53:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1258:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1281:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "1263:17:7" }, "nodeType": "YulFunctionCall", "src": "1263:24:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1251:6:7" }, "nodeType": "YulFunctionCall", "src": "1251:37:7" }, "nodeType": "YulExpressionStatement", "src": "1251:37:7" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1229:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1236:3:7", "type": "" } ], "src": "1176:118:7" }, { "body": { "nodeType": "YulBlock", "src": "1359:40:7", "statements": [ { "nodeType": "YulAssignment", "src": "1370:22:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1386:5:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "1380:5:7" }, "nodeType": "YulFunctionCall", "src": "1380:12:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "1370:6:7" } ] } ] }, "name": "array_length_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1342:5:7", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "1352:6:7", "type": "" } ], "src": "1300:99:7" }, { "body": { "nodeType": "YulBlock", "src": "1501:73:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1518:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1523:6:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1511:6:7" }, "nodeType": "YulFunctionCall", "src": "1511:19:7" }, "nodeType": "YulExpressionStatement", "src": "1511:19:7" }, { "nodeType": "YulAssignment", "src": "1539:29:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1558:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1563:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1554:3:7" }, "nodeType": "YulFunctionCall", "src": "1554:14:7" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "1539:11:7" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "1473:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "1478:6:7", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "1489:11:7", "type": "" } ], "src": "1405:169:7" }, { "body": { "nodeType": "YulBlock", "src": "1629:258:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1639:10:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "1648:1:7", "type": "", "value": "0" }, "variables": [ { "name": "i", "nodeType": "YulTypedName", "src": "1643:1:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "1708:63:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "1733:3:7" }, { "name": "i", "nodeType": "YulIdentifier", "src": "1738:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1729:3:7" }, "nodeType": "YulFunctionCall", "src": "1729:11:7" }, { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "1752:3:7" }, { "name": "i", "nodeType": "YulIdentifier", "src": "1757:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1748:3:7" }, "nodeType": "YulFunctionCall", "src": "1748:11:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "1742:5:7" }, "nodeType": "YulFunctionCall", "src": "1742:18:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1722:6:7" }, "nodeType": "YulFunctionCall", "src": "1722:39:7" }, "nodeType": "YulExpressionStatement", "src": "1722:39:7" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "1669:1:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1672:6:7" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "1666:2:7" }, "nodeType": "YulFunctionCall", "src": "1666:13:7" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", "src": "1680:19:7", "statements": [ { "nodeType": "YulAssignment", "src": "1682:15:7", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "1691:1:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1694:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1687:3:7" }, "nodeType": "YulFunctionCall", "src": "1687:10:7" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", "src": "1682:1:7" } ] } ] }, "pre": { "nodeType": "YulBlock", "src": "1662:3:7", "statements": [] }, "src": "1658:113:7" }, { "body": { "nodeType": "YulBlock", "src": "1805:76:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "1855:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1860:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1851:3:7" }, "nodeType": "YulFunctionCall", "src": "1851:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1869:1:7", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1844:6:7" }, "nodeType": "YulFunctionCall", "src": "1844:27:7" }, "nodeType": "YulExpressionStatement", "src": "1844:27:7" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "1786:1:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1789:6:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "1783:2:7" }, "nodeType": "YulFunctionCall", "src": "1783:13:7" }, "nodeType": "YulIf", "src": "1780:101:7" } ] }, "name": "copy_memory_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "1611:3:7", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "1616:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "1621:6:7", "type": "" } ], "src": "1580:307:7" }, { "body": { "nodeType": "YulBlock", "src": "1941:54:7", "statements": [ { "nodeType": "YulAssignment", "src": "1951:38:7", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1969:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1976:2:7", "type": "", "value": "31" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1965:3:7" }, "nodeType": "YulFunctionCall", "src": "1965:14:7" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1985:2:7", "type": "", "value": "31" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", "src": "1981:3:7" }, "nodeType": "YulFunctionCall", "src": "1981:7:7" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "1961:3:7" }, "nodeType": "YulFunctionCall", "src": "1961:28:7" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", "src": "1951:6:7" } ] } ] }, "name": "round_up_to_mul_of_32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1924:5:7", "type": "" } ], "returnVariables": [ { "name": "result", "nodeType": "YulTypedName", "src": "1934:6:7", "type": "" } ], "src": "1893:102:7" }, { "body": { "nodeType": "YulBlock", "src": "2093:272:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2103:53:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2150:5:7" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "2117:32:7" }, "nodeType": "YulFunctionCall", "src": "2117:39:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "2107:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "2165:78:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2231:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2236:6:7" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "2172:58:7" }, "nodeType": "YulFunctionCall", "src": "2172:71:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2165:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2278:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2285:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2274:3:7" }, "nodeType": "YulFunctionCall", "src": "2274:16:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "2292:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2297:6:7" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", "src": "2252:21:7" }, "nodeType": "YulFunctionCall", "src": "2252:52:7" }, "nodeType": "YulExpressionStatement", "src": "2252:52:7" }, { "nodeType": "YulAssignment", "src": "2313:46:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2324:3:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "2351:6:7" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "2329:21:7" }, "nodeType": "YulFunctionCall", "src": "2329:29:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2320:3:7" }, "nodeType": "YulFunctionCall", "src": "2320:39:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "2313:3:7" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2074:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2081:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2089:3:7", "type": "" } ], "src": "2001:364:7" }, { "body": { "nodeType": "YulBlock", "src": "2517:277:7", "statements": [ { "nodeType": "YulAssignment", "src": "2527:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2539:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2550:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2535:3:7" }, "nodeType": "YulFunctionCall", "src": "2535:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "2527:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "2607:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2620:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2631:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2616:3:7" }, "nodeType": "YulFunctionCall", "src": "2616:17:7" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "2563:43:7" }, "nodeType": "YulFunctionCall", "src": "2563:71:7" }, "nodeType": "YulExpressionStatement", "src": "2563:71:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2655:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2666:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2651:3:7" }, "nodeType": "YulFunctionCall", "src": "2651:18:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "2675:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "2681:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "2671:3:7" }, "nodeType": "YulFunctionCall", "src": "2671:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2644:6:7" }, "nodeType": "YulFunctionCall", "src": "2644:48:7" }, "nodeType": "YulExpressionStatement", "src": "2644:48:7" }, { "nodeType": "YulAssignment", "src": "2701:86:7", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "2773:6:7" }, { "name": "tail", "nodeType": "YulIdentifier", "src": "2782:4:7" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "2709:63:7" }, "nodeType": "YulFunctionCall", "src": "2709:78:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "2701:4:7" } ] } ] }, "name": "abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "2481:9:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "2493:6:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "2501:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "2512:4:7", "type": "" } ], "src": "2371:423:7" }, { "body": { "nodeType": "YulBlock", "src": "2889:28:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "2906:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2909:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "2899:6:7" }, "nodeType": "YulFunctionCall", "src": "2899:12:7" }, "nodeType": "YulExpressionStatement", "src": "2899:12:7" } ] }, "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nodeType": "YulFunctionDefinition", "src": "2800:117:7" }, { "body": { "nodeType": "YulBlock", "src": "3012:28:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3029:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3032:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "3022:6:7" }, "nodeType": "YulFunctionCall", "src": "3022:12:7" }, "nodeType": "YulExpressionStatement", "src": "3022:12:7" } ] }, "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", "nodeType": "YulFunctionDefinition", "src": "2923:117:7" }, { "body": { "nodeType": "YulBlock", "src": "3074:152:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3091:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3094:77:7", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3084:6:7" }, "nodeType": "YulFunctionCall", "src": "3084:88:7" }, "nodeType": "YulExpressionStatement", "src": "3084:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3188:1:7", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3191:4:7", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3181:6:7" }, "nodeType": "YulFunctionCall", "src": "3181:15:7" }, "nodeType": "YulExpressionStatement", "src": "3181:15:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3212:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3215:4:7", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "3205:6:7" }, "nodeType": "YulFunctionCall", "src": "3205:15:7" }, "nodeType": "YulExpressionStatement", "src": "3205:15:7" } ] }, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", "src": "3046:180:7" }, { "body": { "nodeType": "YulBlock", "src": "3275:238:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "3285:58:7", "value": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "3307:6:7" }, { "arguments": [ { "name": "size", "nodeType": "YulIdentifier", "src": "3337:4:7" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "3315:21:7" }, "nodeType": "YulFunctionCall", "src": "3315:27:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3303:3:7" }, "nodeType": "YulFunctionCall", "src": "3303:40:7" }, "variables": [ { "name": "newFreePtr", "nodeType": "YulTypedName", "src": "3289:10:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "3454:22:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "3456:16:7" }, "nodeType": "YulFunctionCall", "src": "3456:18:7" }, "nodeType": "YulExpressionStatement", "src": "3456:18:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "3397:10:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3409:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "3394:2:7" }, "nodeType": "YulFunctionCall", "src": "3394:34:7" }, { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "3433:10:7" }, { "name": "memPtr", "nodeType": "YulIdentifier", "src": "3445:6:7" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "3430:2:7" }, "nodeType": "YulFunctionCall", "src": "3430:22:7" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", "src": "3391:2:7" }, "nodeType": "YulFunctionCall", "src": "3391:62:7" }, "nodeType": "YulIf", "src": "3388:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3492:2:7", "type": "", "value": "64" }, { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "3496:10:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3485:6:7" }, "nodeType": "YulFunctionCall", "src": "3485:22:7" }, "nodeType": "YulExpressionStatement", "src": "3485:22:7" } ] }, "name": "finalize_allocation", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "3261:6:7", "type": "" }, { "name": "size", "nodeType": "YulTypedName", "src": "3269:4:7", "type": "" } ], "src": "3232:281:7" }, { "body": { "nodeType": "YulBlock", "src": "3560:88:7", "statements": [ { "nodeType": "YulAssignment", "src": "3570:30:7", "value": { "arguments": [], "functionName": { "name": "allocate_unbounded", "nodeType": "YulIdentifier", "src": "3580:18:7" }, "nodeType": "YulFunctionCall", "src": "3580:20:7" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "3570:6:7" } ] }, { "expression": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "3629:6:7" }, { "name": "size", "nodeType": "YulIdentifier", "src": "3637:4:7" } ], "functionName": { "name": "finalize_allocation", "nodeType": "YulIdentifier", "src": "3609:19:7" }, "nodeType": "YulFunctionCall", "src": "3609:33:7" }, "nodeType": "YulExpressionStatement", "src": "3609:33:7" } ] }, "name": "allocate_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "size", "nodeType": "YulTypedName", "src": "3544:4:7", "type": "" } ], "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "3553:6:7", "type": "" } ], "src": "3519:129:7" }, { "body": { "nodeType": "YulBlock", "src": "3721:241:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "3826:22:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "3828:16:7" }, "nodeType": "YulFunctionCall", "src": "3828:18:7" }, "nodeType": "YulExpressionStatement", "src": "3828:18:7" } ] }, "condition": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "3798:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3806:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "3795:2:7" }, "nodeType": "YulFunctionCall", "src": "3795:30:7" }, "nodeType": "YulIf", "src": "3792:56:7" }, { "nodeType": "YulAssignment", "src": "3858:37:7", "value": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "3888:6:7" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "3866:21:7" }, "nodeType": "YulFunctionCall", "src": "3866:29:7" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "3858:4:7" } ] }, { "nodeType": "YulAssignment", "src": "3932:23:7", "value": { "arguments": [ { "name": "size", "nodeType": "YulIdentifier", "src": "3944:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3950:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3940:3:7" }, "nodeType": "YulFunctionCall", "src": "3940:15:7" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "3932:4:7" } ] } ] }, "name": "array_allocation_size_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "length", "nodeType": "YulTypedName", "src": "3705:6:7", "type": "" } ], "returnVariables": [ { "name": "size", "nodeType": "YulTypedName", "src": "3716:4:7", "type": "" } ], "src": "3654:308:7" }, { "body": { "nodeType": "YulBlock", "src": "4019:103:7", "statements": [ { "expression": { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "4042:3:7" }, { "name": "src", "nodeType": "YulIdentifier", "src": "4047:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "4052:6:7" } ], "functionName": { "name": "calldatacopy", "nodeType": "YulIdentifier", "src": "4029:12:7" }, "nodeType": "YulFunctionCall", "src": "4029:30:7" }, "nodeType": "YulExpressionStatement", "src": "4029:30:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "4100:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "4105:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4096:3:7" }, "nodeType": "YulFunctionCall", "src": "4096:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4114:1:7", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4089:6:7" }, "nodeType": "YulFunctionCall", "src": "4089:27:7" }, "nodeType": "YulExpressionStatement", "src": "4089:27:7" } ] }, "name": "copy_calldata_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "4001:3:7", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "4006:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "4011:6:7", "type": "" } ], "src": "3968:154:7" }, { "body": { "nodeType": "YulBlock", "src": "4212:328:7", "statements": [ { "nodeType": "YulAssignment", "src": "4222:75:7", "value": { "arguments": [ { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "4289:6:7" } ], "functionName": { "name": "array_allocation_size_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "4247:41:7" }, "nodeType": "YulFunctionCall", "src": "4247:49:7" } ], "functionName": { "name": "allocate_memory", "nodeType": "YulIdentifier", "src": "4231:15:7" }, "nodeType": "YulFunctionCall", "src": "4231:66:7" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "4222:5:7" } ] }, { "expression": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "4313:5:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "4320:6:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4306:6:7" }, "nodeType": "YulFunctionCall", "src": "4306:21:7" }, "nodeType": "YulExpressionStatement", "src": "4306:21:7" }, { "nodeType": "YulVariableDeclaration", "src": "4336:27:7", "value": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "4351:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4358:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4347:3:7" }, "nodeType": "YulFunctionCall", "src": "4347:16:7" }, "variables": [ { "name": "dst", "nodeType": "YulTypedName", "src": "4340:3:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "4401:83:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", "nodeType": "YulIdentifier", "src": "4403:77:7" }, "nodeType": "YulFunctionCall", "src": "4403:79:7" }, "nodeType": "YulExpressionStatement", "src": "4403:79:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "4382:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "4387:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4378:3:7" }, "nodeType": "YulFunctionCall", "src": "4378:16:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "4396:3:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "4375:2:7" }, "nodeType": "YulFunctionCall", "src": "4375:25:7" }, "nodeType": "YulIf", "src": "4372:112:7" }, { "expression": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "4517:3:7" }, { "name": "dst", "nodeType": "YulIdentifier", "src": "4522:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "4527:6:7" } ], "functionName": { "name": "copy_calldata_to_memory", "nodeType": "YulIdentifier", "src": "4493:23:7" }, "nodeType": "YulFunctionCall", "src": "4493:41:7" }, "nodeType": "YulExpressionStatement", "src": "4493:41:7" } ] }, "name": "abi_decode_available_length_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "4185:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "4190:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "4198:3:7", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "4206:5:7", "type": "" } ], "src": "4128:412:7" }, { "body": { "nodeType": "YulBlock", "src": "4622:278:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "4671:83:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nodeType": "YulIdentifier", "src": "4673:77:7" }, "nodeType": "YulFunctionCall", "src": "4673:79:7" }, "nodeType": "YulExpressionStatement", "src": "4673:79:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "4650:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4658:4:7", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4646:3:7" }, "nodeType": "YulFunctionCall", "src": "4646:17:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "4665:3:7" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "4642:3:7" }, "nodeType": "YulFunctionCall", "src": "4642:27:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "4635:6:7" }, "nodeType": "YulFunctionCall", "src": "4635:35:7" }, "nodeType": "YulIf", "src": "4632:122:7" }, { "nodeType": "YulVariableDeclaration", "src": "4763:34:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "4790:6:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "4777:12:7" }, "nodeType": "YulFunctionCall", "src": "4777:20:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "4767:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "4806:88:7", "value": { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "4867:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4875:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4863:3:7" }, "nodeType": "YulFunctionCall", "src": "4863:17:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "4882:6:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "4890:3:7" } ], "functionName": { "name": "abi_decode_available_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "4815:47:7" }, "nodeType": "YulFunctionCall", "src": "4815:79:7" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "4806:5:7" } ] } ] }, "name": "abi_decode_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "4600:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "4608:3:7", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "4616:5:7", "type": "" } ], "src": "4560:340:7" }, { "body": { "nodeType": "YulBlock", "src": "4999:561:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "5045:83:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "5047:77:7" }, "nodeType": "YulFunctionCall", "src": "5047:79:7" }, "nodeType": "YulExpressionStatement", "src": "5047:79:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "5020:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "5029:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "5016:3:7" }, "nodeType": "YulFunctionCall", "src": "5016:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5041:2:7", "type": "", "value": "64" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "5012:3:7" }, "nodeType": "YulFunctionCall", "src": "5012:32:7" }, "nodeType": "YulIf", "src": "5009:119:7" }, { "nodeType": "YulBlock", "src": "5138:117:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "5153:15:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "5167:1:7", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "5157:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "5182:63:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "5217:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "5228:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5213:3:7" }, "nodeType": "YulFunctionCall", "src": "5213:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "5237:7:7" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", "src": "5192:20:7" }, "nodeType": "YulFunctionCall", "src": "5192:53:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "5182:6:7" } ] } ] }, { "nodeType": "YulBlock", "src": "5265:288:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "5280:46:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "5311:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5322:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5307:3:7" }, "nodeType": "YulFunctionCall", "src": "5307:18:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "5294:12:7" }, "nodeType": "YulFunctionCall", "src": "5294:32:7" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "5284:6:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "5373:83:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulIdentifier", "src": "5375:77:7" }, "nodeType": "YulFunctionCall", "src": "5375:79:7" }, "nodeType": "YulExpressionStatement", "src": "5375:79:7" } ] }, "condition": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "5345:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5353:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "5342:2:7" }, "nodeType": "YulFunctionCall", "src": "5342:30:7" }, "nodeType": "YulIf", "src": "5339:117:7" }, { "nodeType": "YulAssignment", "src": "5470:73:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "5515:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "5526:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5511:3:7" }, "nodeType": "YulFunctionCall", "src": "5511:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "5535:7:7" } ], "functionName": { "name": "abi_decode_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "5480:30:7" }, "nodeType": "YulFunctionCall", "src": "5480:63:7" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "5470:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_addresst_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "4961:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "4972:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "4984:6:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "4992:6:7", "type": "" } ], "src": "4906:654:7" }, { "body": { "nodeType": "YulBlock", "src": "5594:152:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "5611:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5614:77:7", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5604:6:7" }, "nodeType": "YulFunctionCall", "src": "5604:88:7" }, "nodeType": "YulExpressionStatement", "src": "5604:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "5708:1:7", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5711:4:7", "type": "", "value": "0x22" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5701:6:7" }, "nodeType": "YulFunctionCall", "src": "5701:15:7" }, "nodeType": "YulExpressionStatement", "src": "5701:15:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "5732:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5735:4:7", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "5725:6:7" }, "nodeType": "YulFunctionCall", "src": "5725:15:7" }, "nodeType": "YulExpressionStatement", "src": "5725:15:7" } ] }, "name": "panic_error_0x22", "nodeType": "YulFunctionDefinition", "src": "5566:180:7" }, { "body": { "nodeType": "YulBlock", "src": "5803:269:7", "statements": [ { "nodeType": "YulAssignment", "src": "5813:22:7", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", "src": "5827:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5833:1:7", "type": "", "value": "2" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", "src": "5823:3:7" }, "nodeType": "YulFunctionCall", "src": "5823:12:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "5813:6:7" } ] }, { "nodeType": "YulVariableDeclaration", "src": "5844:38:7", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", "src": "5874:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5880:1:7", "type": "", "value": "1" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "5870:3:7" }, "nodeType": "YulFunctionCall", "src": "5870:12:7" }, "variables": [ { "name": "outOfPlaceEncoding", "nodeType": "YulTypedName", "src": "5848:18:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "5921:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "5935:27:7", "value": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "5949:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5957:4:7", "type": "", "value": "0x7f" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "5945:3:7" }, "nodeType": "YulFunctionCall", "src": "5945:17:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "5935:6:7" } ] } ] }, "condition": { "arguments": [ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", "src": "5901:18:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "5894:6:7" }, "nodeType": "YulFunctionCall", "src": "5894:26:7" }, "nodeType": "YulIf", "src": "5891:81:7" }, { "body": { "nodeType": "YulBlock", "src": "6024:42:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x22", "nodeType": "YulIdentifier", "src": "6038:16:7" }, "nodeType": "YulFunctionCall", "src": "6038:18:7" }, "nodeType": "YulExpressionStatement", "src": "6038:18:7" } ] }, "condition": { "arguments": [ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", "src": "5988:18:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "6011:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6019:2:7", "type": "", "value": "32" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "6008:2:7" }, "nodeType": "YulFunctionCall", "src": "6008:14:7" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "5985:2:7" }, "nodeType": "YulFunctionCall", "src": "5985:38:7" }, "nodeType": "YulIf", "src": "5982:84:7" } ] }, "name": "extract_byte_array_length", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "data", "nodeType": "YulTypedName", "src": "5787:4:7", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "5796:6:7", "type": "" } ], "src": "5752:320:7" } ] }, "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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\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 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_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n", "id": 7, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80635fdd59f81461003b578063de6f24bb1461006c575b600080fd5b6100556004803603810190610050919061033e565b610088565b604051610063929190610413565b60405180910390f35b61008660048036038101906100819190610578565b610154565b005b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010180546100d190610603565b80601f01602080910402602001604051908101604052809291908181526020018280546100fd90610603565b801561014a5780601f1061011f5761010080835404028352916020019161014a565b820191906000526020600020905b81548152906001019060200180831161012d57829003601f168201915b5050505050905082565b60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200182815250600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610221929190610229565b509050505050565b82805461023590610603565b90600052602060002090601f016020900481019282610257576000855561029e565b82601f1061027057805160ff191683800117855561029e565b8280016001018555821561029e579182015b8281111561029d578251825591602001919060010190610282565b5b5090506102ab91906102af565b5090565b5b808211156102c85760008160009055506001016102b0565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061030b826102e0565b9050919050565b61031b81610300565b811461032657600080fd5b50565b60008135905061033881610312565b92915050565b600060208284031215610354576103536102d6565b5b600061036284828501610329565b91505092915050565b61037481610300565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103b4578082015181840152602081019050610399565b838111156103c3576000848401525b50505050565b6000601f19601f8301169050919050565b60006103e58261037a565b6103ef8185610385565b93506103ff818560208601610396565b610408816103c9565b840191505092915050565b6000604082019050610428600083018561036b565b818103602083015261043a81846103da565b90509392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610485826103c9565b810181811067ffffffffffffffff821117156104a4576104a361044d565b5b80604052505050565b60006104b76102cc565b90506104c3828261047c565b919050565b600067ffffffffffffffff8211156104e3576104e261044d565b5b6104ec826103c9565b9050602081019050919050565b82818337600083830152505050565b600061051b610516846104c8565b6104ad565b90508281526020810184848401111561053757610536610448565b5b6105428482856104f9565b509392505050565b600082601f83011261055f5761055e610443565b5b813561056f848260208601610508565b91505092915050565b6000806040838503121561058f5761058e6102d6565b5b600061059d85828601610329565b925050602083013567ffffffffffffffff8111156105be576105bd6102db565b5b6105ca8582860161054a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061061b57607f821691505b6020821081141561062f5761062e6105d4565b5b5091905056fea264697066735822122064ccb087bb9ce2267d6ce6f329c242c66b988e56c54a9deaa28c81e47347742164736f6c634300080a0033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5FDD59F8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xDE6F24BB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x33E JUMP JUMPDEST PUSH2 0x88 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x63 SWAP3 SWAP2 SWAP1 PUSH2 0x413 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x81 SWAP2 SWAP1 PUSH2 0x578 JUMP JUMPDEST PUSH2 0x154 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xD1 SWAP1 PUSH2 0x603 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xFD SWAP1 PUSH2 0x603 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x14A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x11F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x14A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x12D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x221 SWAP3 SWAP2 SWAP1 PUSH2 0x229 JUMP JUMPDEST POP SWAP1 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x235 SWAP1 PUSH2 0x603 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x257 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x29E JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x270 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x29E JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x29E JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x29D JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x282 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x2AF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2C8 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x2B0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30B DUP3 PUSH2 0x2E0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x31B DUP2 PUSH2 0x300 JUMP JUMPDEST DUP2 EQ PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x338 DUP2 PUSH2 0x312 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x354 JUMPI PUSH2 0x353 PUSH2 0x2D6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP5 DUP3 DUP6 ADD PUSH2 0x329 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x374 DUP2 PUSH2 0x300 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3B4 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x399 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP3 PUSH2 0x37A JUMP JUMPDEST PUSH2 0x3EF DUP2 DUP6 PUSH2 0x385 JUMP JUMPDEST SWAP4 POP PUSH2 0x3FF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x396 JUMP JUMPDEST PUSH2 0x408 DUP2 PUSH2 0x3C9 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x428 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x36B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x43A DUP2 DUP5 PUSH2 0x3DA JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x485 DUP3 PUSH2 0x3C9 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4A4 JUMPI PUSH2 0x4A3 PUSH2 0x44D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B7 PUSH2 0x2CC JUMP JUMPDEST SWAP1 POP PUSH2 0x4C3 DUP3 DUP3 PUSH2 0x47C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x4E3 JUMPI PUSH2 0x4E2 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x4EC DUP3 PUSH2 0x3C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51B PUSH2 0x516 DUP5 PUSH2 0x4C8 JUMP JUMPDEST PUSH2 0x4AD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x537 JUMPI PUSH2 0x536 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH2 0x542 DUP5 DUP3 DUP6 PUSH2 0x4F9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x55F JUMPI PUSH2 0x55E PUSH2 0x443 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x56F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x508 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x58F JUMPI PUSH2 0x58E PUSH2 0x2D6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x59D DUP6 DUP3 DUP7 ADD PUSH2 0x329 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5BE JUMPI PUSH2 0x5BD PUSH2 0x2DB JUMP JUMPDEST JUMPDEST PUSH2 0x5CA DUP6 DUP3 DUP7 ADD PUSH2 0x54A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x61B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x62F JUMPI PUSH2 0x62E PUSH2 0x5D4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH5 0xCCB087BB9C 0xE2 0x26 PUSH30 0x6CE6F329C242C66B988E56C54A9DEAA28C81E47347742164736F6C634300 ADDMOD EXP STOP CALLER ", "sourceMap": "436:294:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;485:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;597:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;485:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;597:131::-;695:28;;;;;;;;703:10;695:28;;;;;;715:7;695:28;;;673:8;:19;682:9;673:19;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;597:131;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:7:-;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:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:118::-;1263:24;1281:5;1263:24;:::i;:::-;1258:3;1251:37;1176:118;;:::o;1300:99::-;1352:6;1386:5;1380:12;1370:22;;1300:99;;;:::o;1405:169::-;1489:11;1523:6;1518:3;1511:19;1563:4;1558:3;1554:14;1539:29;;1405:169;;;;:::o;1580:307::-;1648:1;1658:113;1672:6;1669:1;1666:13;1658:113;;;1757:1;1752:3;1748:11;1742:18;1738:1;1733:3;1729:11;1722:39;1694:2;1691:1;1687:10;1682:15;;1658:113;;;1789:6;1786:1;1783:13;1780:101;;;1869:1;1860:6;1855:3;1851:16;1844:27;1780:101;1629:258;1580:307;;;:::o;1893:102::-;1934:6;1985:2;1981:7;1976:2;1969:5;1965:14;1961:28;1951:38;;1893:102;;;:::o;2001:364::-;2089:3;2117:39;2150:5;2117:39;:::i;:::-;2172:71;2236:6;2231:3;2172:71;:::i;:::-;2165:78;;2252:52;2297:6;2292:3;2285:4;2278:5;2274:16;2252:52;:::i;:::-;2329:29;2351:6;2329:29;:::i;:::-;2324:3;2320:39;2313:46;;2093:272;2001:364;;;;:::o;2371:423::-;2512:4;2550:2;2539:9;2535:18;2527:26;;2563:71;2631:1;2620:9;2616:17;2607:6;2563:71;:::i;:::-;2681:9;2675:4;2671:20;2666:2;2655:9;2651:18;2644:48;2709:78;2782:4;2773:6;2709:78;:::i;:::-;2701:86;;2371:423;;;;;:::o;2800:117::-;2909:1;2906;2899:12;2923:117;3032:1;3029;3022:12;3046:180;3094:77;3091:1;3084:88;3191:4;3188:1;3181:15;3215:4;3212:1;3205:15;3232:281;3315:27;3337:4;3315:27;:::i;:::-;3307:6;3303:40;3445:6;3433:10;3430:22;3409:18;3397:10;3394:34;3391:62;3388:88;;;3456:18;;:::i;:::-;3388:88;3496:10;3492:2;3485:22;3275:238;3232:281;;:::o;3519:129::-;3553:6;3580:20;;:::i;:::-;3570:30;;3609:33;3637:4;3629:6;3609:33;:::i;:::-;3519:129;;;:::o;3654:308::-;3716:4;3806:18;3798:6;3795:30;3792:56;;;3828:18;;:::i;:::-;3792:56;3866:29;3888:6;3866:29;:::i;:::-;3858:37;;3950:4;3944;3940:15;3932:23;;3654:308;;;:::o;3968:154::-;4052:6;4047:3;4042;4029:30;4114:1;4105:6;4100:3;4096:16;4089:27;3968:154;;;:::o;4128:412::-;4206:5;4231:66;4247:49;4289:6;4247:49;:::i;:::-;4231:66;:::i;:::-;4222:75;;4320:6;4313:5;4306:21;4358:4;4351:5;4347:16;4396:3;4387:6;4382:3;4378:16;4375:25;4372:112;;;4403:79;;:::i;:::-;4372:112;4493:41;4527:6;4522:3;4517;4493:41;:::i;:::-;4212:328;4128:412;;;;;:::o;4560:340::-;4616:5;4665:3;4658:4;4650:6;4646:17;4642:27;4632:122;;4673:79;;:::i;:::-;4632:122;4790:6;4777:20;4815:79;4890:3;4882:6;4875:4;4867:6;4863:17;4815:79;:::i;:::-;4806:88;;4622:278;4560:340;;;;:::o;4906:654::-;4984:6;4992;5041:2;5029:9;5020:7;5016:23;5012:32;5009:119;;;5047:79;;:::i;:::-;5009:119;5167:1;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5138:117;5322:2;5311:9;5307:18;5294:32;5353:18;5345:6;5342:30;5339:117;;;5375:79;;:::i;:::-;5339:117;5480:63;5535:7;5526:6;5515:9;5511:22;5480:63;:::i;:::-;5470:73;;5265:288;4906:654;;;;;:::o;5566:180::-;5614:77;5611:1;5604:88;5711:4;5708:1;5701:15;5735:4;5732:1;5725:15;5752:320;5796:6;5833:1;5827:4;5823:12;5813:22;;5880:1;5874:4;5870:12;5901:18;5891:81;;5957:4;5949:6;5945:17;5935:27;;5891:81;6019:2;6011:6;6008:14;5988:18;5985:38;5982:84;;;6038:18;;:::i;:::-;5982:84;5803:269;5752:320;;;:::o" }, "methodIdentifiers": { "messages(address)": "5fdd59f8", "sendMessage(address,string)": "de6f24bb" } }, "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"messages\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OnChainMessengerV1.sol\":\"OnChainMessengerV1\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x94dd781aa290742d990ccb720b3cab52a3865d1ba004e35c1dc757aa3ee788e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d762e5eb6f74a6228a744b0261fb2dda4e2c8a214206ca67a443c06feb16ce2\",\"dweb:/ipfs/QmU85d56LUBCQ5j24hVf3WJ2uwjNoyLJr8ZYyDXWKmJGpU\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x51b758a8815ecc9596c66c37d56b1d33883a444631a3f916b9fe65cb863ef7c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://997ca03557985b3c6f9143a18b6c3a710b3bc1c7f189ee956d305a966ecfb922\",\"dweb:/ipfs/QmQaD3Wb62F88SHqmpLttvF6wKuPDQep2LLUcKPekeRzvz\"]},\"contracts/OnChainMessengerV1.sol\":{\"keccak256\":\"0x296d8fa1b6875face2eac8e1d907dfa146ac98bf37bc5e9c853f4cd1d2f4e076\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://c39e20594cef08622700cca4fe2a489d137d79f1c38b4cbfadb2f4fe8e33ec16\",\"dweb:/ipfs/QmQHpRAnNDau6Z5o8icfm82UW85JbusVLF9125cLX5pfh9\"]}},\"version\":1}" } }, "contracts/OnChainMessengerV2.sol": { "OnChainMessengerV2": { "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sender", "type": "address" } ], "name": "Error", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "messages", "outputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "string", "name": "content", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "string", "name": "message", "type": "string" } ], "name": "sendMessage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "throwError", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "evm": { "bytecode": { "functionDebugData": { "@_205": { "entryPoint": null, "id": 205, "parameterSlots": 0, "returnSlots": 0 }, "@_23": { "entryPoint": null, "id": 23, "parameterSlots": 0, "returnSlots": 0 }, "@_msgSender_579": { "entryPoint": 76, "id": 579, "parameterSlots": 0, "returnSlots": 1 }, "@_transferOwnership_103": { "entryPoint": 84, "id": 103, "parameterSlots": 1, "returnSlots": 0 } }, "generatedSources": [], "linkReferences": {}, "object": "608060405234801561001057600080fd5b5060008060006101000a81548160ff02191690831515021790555061004761003c61004c60201b60201c565b61005460201b60201c565b610119565b600033905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b610ecb806101286000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146100fb5780638456cb59146101055780638da5cb5b1461010f578063de6f24bb1461012d578063f2fde38b1461014957610093565b80632f7643a8146100985780633f4ba83a146100a25780635c975abb146100ac5780635fdd59f8146100ca575b600080fd5b6100a0610165565b005b6100aa61019e565b005b6100b4610224565b6040516100c19190610920565b60405180910390f35b6100e460048036038101906100df91906109ad565b61023a565b6040516100f2929190610a82565b60405180910390f35b610103610306565b005b61010d61038e565b005b610117610414565b6040516101249190610ab2565b60405180910390f35b61014760048036038101906101429190610c02565b61043d565b005b610163600480360381019061015e91906109ad565b61055a565b005b7f7ab3ca8d9c315e41f56f37c7e1fb65062a6c0c242c3c28ed0bf47db6be2b10ea336040516101949190610ab2565b60405180910390a1565b6101a6610652565b73ffffffffffffffffffffffffffffffffffffffff166101c4610414565b73ffffffffffffffffffffffffffffffffffffffff161461021a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021190610caa565b60405180910390fd5b61022261065a565b565b60008060009054906101000a900460ff16905090565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101805461028390610cf9565b80601f01602080910402602001604051908101604052809291908181526020018280546102af90610cf9565b80156102fc5780601f106102d1576101008083540402835291602001916102fc565b820191906000526020600020905b8154815290600101906020018083116102df57829003601f168201915b5050505050905082565b61030e610652565b73ffffffffffffffffffffffffffffffffffffffff1661032c610414565b73ffffffffffffffffffffffffffffffffffffffff1614610382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037990610caa565b60405180910390fd5b61038c60006106fb565b565b610396610652565b73ffffffffffffffffffffffffffffffffffffffff166103b4610414565b73ffffffffffffffffffffffffffffffffffffffff161461040a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040190610caa565b60405180910390fd5b6104126107c0565b565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610445610224565b15610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047c90610d77565b60405180910390fd5b60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200182815250600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610552929190610862565b509050505050565b610562610652565b73ffffffffffffffffffffffffffffffffffffffff16610580610414565b73ffffffffffffffffffffffffffffffffffffffff16146105d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd90610caa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d90610e09565b60405180910390fd5b61064f816106fb565b50565b600033905090565b610662610224565b6106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069890610e75565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6106e4610652565b6040516106f19190610ab2565b60405180910390a1565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6107c8610224565b15610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff90610d77565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861084b610652565b6040516108589190610ab2565b60405180910390a1565b82805461086e90610cf9565b90600052602060002090601f01602090048101928261089057600085556108d7565b82601f106108a957805160ff19168380011785556108d7565b828001600101855582156108d7579182015b828111156108d65782518255916020019190600101906108bb565b5b5090506108e491906108e8565b5090565b5b808211156109015760008160009055506001016108e9565b5090565b60008115159050919050565b61091a81610905565b82525050565b60006020820190506109356000830184610911565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061097a8261094f565b9050919050565b61098a8161096f565b811461099557600080fd5b50565b6000813590506109a781610981565b92915050565b6000602082840312156109c3576109c2610945565b5b60006109d184828501610998565b91505092915050565b6109e38161096f565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610a23578082015181840152602081019050610a08565b83811115610a32576000848401525b50505050565b6000601f19601f8301169050919050565b6000610a54826109e9565b610a5e81856109f4565b9350610a6e818560208601610a05565b610a7781610a38565b840191505092915050565b6000604082019050610a9760008301856109da565b8181036020830152610aa98184610a49565b90509392505050565b6000602082019050610ac760008301846109da565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610b0f82610a38565b810181811067ffffffffffffffff82111715610b2e57610b2d610ad7565b5b80604052505050565b6000610b4161093b565b9050610b4d8282610b06565b919050565b600067ffffffffffffffff821115610b6d57610b6c610ad7565b5b610b7682610a38565b9050602081019050919050565b82818337600083830152505050565b6000610ba5610ba084610b52565b610b37565b905082815260208101848484011115610bc157610bc0610ad2565b5b610bcc848285610b83565b509392505050565b600082601f830112610be957610be8610acd565b5b8135610bf9848260208601610b92565b91505092915050565b60008060408385031215610c1957610c18610945565b5b6000610c2785828601610998565b925050602083013567ffffffffffffffff811115610c4857610c4761094a565b5b610c5485828601610bd4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610c946020836109f4565b9150610c9f82610c5e565b602082019050919050565b60006020820190508181036000830152610cc381610c87565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610d1157607f821691505b60208210811415610d2557610d24610cca565b5b50919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000610d616010836109f4565b9150610d6c82610d2b565b602082019050919050565b60006020820190508181036000830152610d9081610d54565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610df36026836109f4565b9150610dfe82610d97565b604082019050919050565b60006020820190508181036000830152610e2281610de6565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000610e5f6014836109f4565b9150610e6a82610e29565b602082019050919050565b60006020820190508181036000830152610e8e81610e52565b905091905056fea26469706673582212202a5ca62240ed4032a97145f2fa5331b87423fe4ef585be2ac6b013ca0d8609ba64736f6c634300080a0033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x47 PUSH2 0x3C PUSH2 0x4C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x54 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x119 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xECB DUP1 PUSH2 0x128 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xFB JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0xDE6F24BB EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x149 JUMPI PUSH2 0x93 JUMP JUMPDEST DUP1 PUSH4 0x2F7643A8 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x5FDD59F8 EQ PUSH2 0xCA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x165 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAA PUSH2 0x19E JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB4 PUSH2 0x224 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x920 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDF SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x23A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF2 SWAP3 SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x103 PUSH2 0x306 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10D PUSH2 0x38E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x117 PUSH2 0x414 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x142 SWAP2 SWAP1 PUSH2 0xC02 JUMP JUMPDEST PUSH2 0x43D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x163 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST STOP JUMPDEST PUSH32 0x7AB3CA8D9C315E41F56F37C7E1FB65062A6C0C242C3C28ED0BF47DB6BE2B10EA CALLER PUSH1 0x40 MLOAD PUSH2 0x194 SWAP2 SWAP1 PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x1A6 PUSH2 0x652 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C4 PUSH2 0x414 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x21A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x211 SWAP1 PUSH2 0xCAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x222 PUSH2 0x65A JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x283 SWAP1 PUSH2 0xCF9 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2AF SWAP1 PUSH2 0xCF9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x652 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x32C PUSH2 0x414 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x382 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0xCAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38C PUSH1 0x0 PUSH2 0x6FB JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x396 PUSH2 0x652 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x3B4 PUSH2 0x414 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x40A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xCAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x412 PUSH2 0x7C0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x445 PUSH2 0x224 JUMP JUMPDEST ISZERO PUSH2 0x485 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x47C SWAP1 PUSH2 0xD77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x552 SWAP3 SWAP2 SWAP1 PUSH2 0x862 JUMP JUMPDEST POP SWAP1 POP POP POP POP JUMP JUMPDEST PUSH2 0x562 PUSH2 0x652 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x580 PUSH2 0x414 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x5D6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CD SWAP1 PUSH2 0xCAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x646 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x63D SWAP1 PUSH2 0xE09 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64F DUP2 PUSH2 0x6FB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x662 PUSH2 0x224 JUMP JUMPDEST PUSH2 0x6A1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x698 SWAP1 PUSH2 0xE75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH2 0x6E4 PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F1 SWAP2 SWAP1 PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x7C8 PUSH2 0x224 JUMP JUMPDEST ISZERO PUSH2 0x808 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7FF SWAP1 PUSH2 0xD77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x84B PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x858 SWAP2 SWAP1 PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x86E SWAP1 PUSH2 0xCF9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x890 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x8D7 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x8A9 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x8D7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x8D7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x8D6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x8BB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x8E4 SWAP2 SWAP1 PUSH2 0x8E8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x901 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x8E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x91A DUP2 PUSH2 0x905 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x935 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x911 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97A DUP3 PUSH2 0x94F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98A DUP2 PUSH2 0x96F JUMP JUMPDEST DUP2 EQ PUSH2 0x995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9A7 DUP2 PUSH2 0x981 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9C3 JUMPI PUSH2 0x9C2 PUSH2 0x945 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x9D1 DUP5 DUP3 DUP6 ADD PUSH2 0x998 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E3 DUP2 PUSH2 0x96F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA23 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA08 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xA32 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA54 DUP3 PUSH2 0x9E9 JUMP JUMPDEST PUSH2 0xA5E DUP2 DUP6 PUSH2 0x9F4 JUMP JUMPDEST SWAP4 POP PUSH2 0xA6E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA05 JUMP JUMPDEST PUSH2 0xA77 DUP2 PUSH2 0xA38 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xA97 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x9DA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAA9 DUP2 DUP5 PUSH2 0xA49 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAC7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x9DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xB0F DUP3 PUSH2 0xA38 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xB2E JUMPI PUSH2 0xB2D PUSH2 0xAD7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB41 PUSH2 0x93B JUMP JUMPDEST SWAP1 POP PUSH2 0xB4D DUP3 DUP3 PUSH2 0xB06 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB6D JUMPI PUSH2 0xB6C PUSH2 0xAD7 JUMP JUMPDEST JUMPDEST PUSH2 0xB76 DUP3 PUSH2 0xA38 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBA5 PUSH2 0xBA0 DUP5 PUSH2 0xB52 JUMP JUMPDEST PUSH2 0xB37 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xBC1 JUMPI PUSH2 0xBC0 PUSH2 0xAD2 JUMP JUMPDEST JUMPDEST PUSH2 0xBCC DUP5 DUP3 DUP6 PUSH2 0xB83 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xBE9 JUMPI PUSH2 0xBE8 PUSH2 0xACD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xBF9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xB92 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC19 JUMPI PUSH2 0xC18 PUSH2 0x945 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC27 DUP6 DUP3 DUP7 ADD PUSH2 0x998 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC48 JUMPI PUSH2 0xC47 PUSH2 0x94A JUMP JUMPDEST JUMPDEST PUSH2 0xC54 DUP6 DUP3 DUP7 ADD PUSH2 0xBD4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC94 PUSH1 0x20 DUP4 PUSH2 0x9F4 JUMP JUMPDEST SWAP2 POP PUSH2 0xC9F DUP3 PUSH2 0xC5E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCC3 DUP2 PUSH2 0xC87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xD11 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xD25 JUMPI PUSH2 0xD24 PUSH2 0xCCA JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD61 PUSH1 0x10 DUP4 PUSH2 0x9F4 JUMP JUMPDEST SWAP2 POP PUSH2 0xD6C DUP3 PUSH2 0xD2B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD90 DUP2 PUSH2 0xD54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDF3 PUSH1 0x26 DUP4 PUSH2 0x9F4 JUMP JUMPDEST SWAP2 POP PUSH2 0xDFE DUP3 PUSH2 0xD97 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE22 DUP2 PUSH2 0xDE6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE5F PUSH1 0x14 DUP4 PUSH2 0x9F4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE6A DUP3 PUSH2 0xE29 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE8E DUP2 PUSH2 0xE52 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A 0x5C 0xA6 0x22 BLOCKHASH 0xED BLOCKHASH ORIGIN 0xA9 PUSH18 0x45F2FA5331B87423FE4EF585BE2AC6B013CA 0xD DUP7 MULMOD 0xBA PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ", "sourceMap": "481:528:6:-:0;;;;;;;;;;;;;991:5:2;981:7;;:15;;;;;;;;;;;;;;;;;;921:32:0;940:12;:10;;;:12;;:::i;:::-;921:18;;;:32;;:::i;:::-;481:528:6;;640:96:4;693:7;719:10;712:17;;640:96;:::o;2270:187:0:-;2343:16;2362:6;;;;;;;;;;;2343:25;;2387:8;2378:6;;:17;;;;;;;;;;;;;;;;;;2441:8;2410:40;;2431:8;2410:40;;;;;;;;;;;;2333:124;2270:187;:::o;481:528:6:-;;;;;;;" }, "deployedBytecode": { "functionDebugData": { "@_msgSender_579": { "entryPoint": 1618, "id": 579, "parameterSlots": 0, "returnSlots": 1 }, "@_pause_253": { "entryPoint": 1984, "id": 253, "parameterSlots": 0, "returnSlots": 0 }, "@_transferOwnership_103": { "entryPoint": 1787, "id": 103, "parameterSlots": 1, "returnSlots": 0 }, "@_unpause_269": { "entryPoint": 1626, "id": 269, "parameterSlots": 0, "returnSlots": 0 }, "@messages_636": { "entryPoint": 570, "id": 636, "parameterSlots": 0, "returnSlots": 0 }, "@owner_32": { "entryPoint": 1044, "id": 32, "parameterSlots": 0, "returnSlots": 1 }, "@pause_683": { "entryPoint": 910, "id": 683, "parameterSlots": 0, "returnSlots": 0 }, "@paused_214": { "entryPoint": 548, "id": 214, "parameterSlots": 0, "returnSlots": 1 }, "@renounceOwnership_60": { "entryPoint": 774, "id": 60, "parameterSlots": 0, "returnSlots": 0 }, "@sendMessage_665": { "entryPoint": 1085, "id": 665, "parameterSlots": 2, "returnSlots": 0 }, "@throwError_674": { "entryPoint": 357, "id": 674, "parameterSlots": 0, "returnSlots": 0 }, "@transferOwnership_83": { "entryPoint": 1370, "id": 83, "parameterSlots": 1, "returnSlots": 0 }, "@unpause_692": { "entryPoint": 414, "id": 692, "parameterSlots": 0, "returnSlots": 0 }, "abi_decode_available_length_t_string_memory_ptr": { "entryPoint": 2962, "id": null, "parameterSlots": 3, "returnSlots": 1 }, "abi_decode_t_address": { "entryPoint": 2456, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_t_string_memory_ptr": { "entryPoint": 3028, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_address": { "entryPoint": 2477, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_addresst_string_memory_ptr": { "entryPoint": 3074, "id": null, "parameterSlots": 2, "returnSlots": 2 }, "abi_encode_t_address_to_t_address_fromStack": { "entryPoint": 2522, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_t_bool_to_t_bool_fromStack": { "entryPoint": 2321, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { "entryPoint": 2633, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack": { "entryPoint": 3666, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack": { "entryPoint": 3558, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack": { "entryPoint": 3412, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack": { "entryPoint": 3207, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { "entryPoint": 2738, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed": { "entryPoint": 2690, "id": null, "parameterSlots": 3, "returnSlots": 1 }, "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { "entryPoint": 2336, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": 3701, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": 3593, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": 3447, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": 3242, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "allocate_memory": { "entryPoint": 2871, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "allocate_unbounded": { "entryPoint": 2363, "id": null, "parameterSlots": 0, "returnSlots": 1 }, "array_allocation_size_t_string_memory_ptr": { "entryPoint": 2898, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "array_length_t_string_memory_ptr": { "entryPoint": 2537, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { "entryPoint": 2548, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "cleanup_t_address": { "entryPoint": 2415, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_bool": { "entryPoint": 2309, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint160": { "entryPoint": 2383, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "copy_calldata_to_memory": { "entryPoint": 2947, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "copy_memory_to_memory": { "entryPoint": 2565, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "extract_byte_array_length": { "entryPoint": 3321, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "finalize_allocation": { "entryPoint": 2822, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "panic_error_0x22": { "entryPoint": 3274, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "panic_error_0x41": { "entryPoint": 2775, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { "entryPoint": 2765, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { "entryPoint": 2770, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { "entryPoint": 2378, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { "entryPoint": 2373, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "round_up_to_mul_of_32": { "entryPoint": 2616, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a": { "entryPoint": 3625, "id": null, "parameterSlots": 1, "returnSlots": 0 }, "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe": { "entryPoint": 3479, "id": null, "parameterSlots": 1, "returnSlots": 0 }, "store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a": { "entryPoint": 3371, "id": null, "parameterSlots": 1, "returnSlots": 0 }, "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe": { "entryPoint": 3166, "id": null, "parameterSlots": 1, "returnSlots": 0 }, "validator_revert_t_address": { "entryPoint": 2433, "id": null, "parameterSlots": 1, "returnSlots": 0 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:10685:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "49:48:7", "statements": [ { "nodeType": "YulAssignment", "src": "59:32:7", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "84:5:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "77:6:7" }, "nodeType": "YulFunctionCall", "src": "77:13:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "70:6:7" }, "nodeType": "YulFunctionCall", "src": "70:21:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "59:7:7" } ] } ] }, "name": "cleanup_t_bool", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "31:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "41:7:7", "type": "" } ], "src": "7:90:7" }, { "body": { "nodeType": "YulBlock", "src": "162:50:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "179:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "199:5:7" } ], "functionName": { "name": "cleanup_t_bool", "nodeType": "YulIdentifier", "src": "184:14:7" }, "nodeType": "YulFunctionCall", "src": "184:21:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "172:6:7" }, "nodeType": "YulFunctionCall", "src": "172:34:7" }, "nodeType": "YulExpressionStatement", "src": "172:34:7" } ] }, "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "150:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "157:3:7", "type": "" } ], "src": "103:109:7" }, { "body": { "nodeType": "YulBlock", "src": "310:118:7", "statements": [ { "nodeType": "YulAssignment", "src": "320:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "332:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "343:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "328:3:7" }, "nodeType": "YulFunctionCall", "src": "328:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "320:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "394:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "407:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "418:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "403:3:7" }, "nodeType": "YulFunctionCall", "src": "403:17:7" } ], "functionName": { "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulIdentifier", "src": "356:37:7" }, "nodeType": "YulFunctionCall", "src": "356:65:7" }, "nodeType": "YulExpressionStatement", "src": "356:65:7" } ] }, "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "282:9:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "294:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "305:4:7", "type": "" } ], "src": "218:210:7" }, { "body": { "nodeType": "YulBlock", "src": "474:35:7", "statements": [ { "nodeType": "YulAssignment", "src": "484:19:7", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "500:2:7", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "494:5:7" }, "nodeType": "YulFunctionCall", "src": "494:9:7" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "484:6:7" } ] } ] }, "name": "allocate_unbounded", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "467:6:7", "type": "" } ], "src": "434:75:7" }, { "body": { "nodeType": "YulBlock", "src": "604:28:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "621:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "624:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "614:6:7" }, "nodeType": "YulFunctionCall", "src": "614:12:7" }, "nodeType": "YulExpressionStatement", "src": "614:12:7" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", "src": "515:117:7" }, { "body": { "nodeType": "YulBlock", "src": "727:28:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "744:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "747:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "737:6:7" }, "nodeType": "YulFunctionCall", "src": "737:12:7" }, "nodeType": "YulExpressionStatement", "src": "737:12:7" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", "src": "638:117:7" }, { "body": { "nodeType": "YulBlock", "src": "806:81:7", "statements": [ { "nodeType": "YulAssignment", "src": "816:65:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "831:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "838:42:7", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "827:3:7" }, "nodeType": "YulFunctionCall", "src": "827:54:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "816:7:7" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "788:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "798:7:7", "type": "" } ], "src": "761:126:7" }, { "body": { "nodeType": "YulBlock", "src": "938:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "948:35:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "977:5:7" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "959:17:7" }, "nodeType": "YulFunctionCall", "src": "959:24:7" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "948:7:7" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "920:5:7", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "930:7:7", "type": "" } ], "src": "893:96:7" }, { "body": { "nodeType": "YulBlock", "src": "1038:79:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "1095:16:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1104:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1107:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1097:6:7" }, "nodeType": "YulFunctionCall", "src": "1097:12:7" }, "nodeType": "YulExpressionStatement", "src": "1097:12:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1061:5:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1086:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "1068:17:7" }, "nodeType": "YulFunctionCall", "src": "1068:24:7" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "1058:2:7" }, "nodeType": "YulFunctionCall", "src": "1058:35:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "1051:6:7" }, "nodeType": "YulFunctionCall", "src": "1051:43:7" }, "nodeType": "YulIf", "src": "1048:63:7" } ] }, "name": "validator_revert_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1031:5:7", "type": "" } ], "src": "995:122:7" }, { "body": { "nodeType": "YulBlock", "src": "1175:87:7", "statements": [ { "nodeType": "YulAssignment", "src": "1185:29:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "1207:6:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "1194:12:7" }, "nodeType": "YulFunctionCall", "src": "1194:20:7" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1185:5:7" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1250:5:7" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "1223:26:7" }, "nodeType": "YulFunctionCall", "src": "1223:33:7" }, "nodeType": "YulExpressionStatement", "src": "1223:33:7" } ] }, "name": "abi_decode_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1153:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "1161:3:7", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "1169:5:7", "type": "" } ], "src": "1123:139:7" }, { "body": { "nodeType": "YulBlock", "src": "1334:263:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "1380:83:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "1382:77:7" }, "nodeType": "YulFunctionCall", "src": "1382:79:7" }, "nodeType": "YulExpressionStatement", "src": "1382:79:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1355:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "1364:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "1351:3:7" }, "nodeType": "YulFunctionCall", "src": "1351:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1376:2:7", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "1347:3:7" }, "nodeType": "YulFunctionCall", "src": "1347:32:7" }, "nodeType": "YulIf", "src": "1344:119:7" }, { "nodeType": "YulBlock", "src": "1473:117:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1488:15:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "1502:1:7", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1492:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1517:63:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1552:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1563:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1548:3:7" }, "nodeType": "YulFunctionCall", "src": "1548:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1572:7:7" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", "src": "1527:20:7" }, "nodeType": "YulFunctionCall", "src": "1527:53:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1517:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "1304:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "1315:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "1327:6:7", "type": "" } ], "src": "1268:329:7" }, { "body": { "nodeType": "YulBlock", "src": "1668:53:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1685:3:7" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1708:5:7" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "1690:17:7" }, "nodeType": "YulFunctionCall", "src": "1690:24:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1678:6:7" }, "nodeType": "YulFunctionCall", "src": "1678:37:7" }, "nodeType": "YulExpressionStatement", "src": "1678:37:7" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1656:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1663:3:7", "type": "" } ], "src": "1603:118:7" }, { "body": { "nodeType": "YulBlock", "src": "1786:40:7", "statements": [ { "nodeType": "YulAssignment", "src": "1797:22:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1813:5:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "1807:5:7" }, "nodeType": "YulFunctionCall", "src": "1807:12:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "1797:6:7" } ] } ] }, "name": "array_length_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1769:5:7", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "1779:6:7", "type": "" } ], "src": "1727:99:7" }, { "body": { "nodeType": "YulBlock", "src": "1928:73:7", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1945:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1950:6:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1938:6:7" }, "nodeType": "YulFunctionCall", "src": "1938:19:7" }, "nodeType": "YulExpressionStatement", "src": "1938:19:7" }, { "nodeType": "YulAssignment", "src": "1966:29:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1985:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1990:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1981:3:7" }, "nodeType": "YulFunctionCall", "src": "1981:14:7" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "1966:11:7" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "1900:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "1905:6:7", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "1916:11:7", "type": "" } ], "src": "1832:169:7" }, { "body": { "nodeType": "YulBlock", "src": "2056:258:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2066:10:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "2075:1:7", "type": "", "value": "0" }, "variables": [ { "name": "i", "nodeType": "YulTypedName", "src": "2070:1:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "2135:63:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "2160:3:7" }, { "name": "i", "nodeType": "YulIdentifier", "src": "2165:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2156:3:7" }, "nodeType": "YulFunctionCall", "src": "2156:11:7" }, { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "2179:3:7" }, { "name": "i", "nodeType": "YulIdentifier", "src": "2184:1:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2175:3:7" }, "nodeType": "YulFunctionCall", "src": "2175:11:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "2169:5:7" }, "nodeType": "YulFunctionCall", "src": "2169:18:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2149:6:7" }, "nodeType": "YulFunctionCall", "src": "2149:39:7" }, "nodeType": "YulExpressionStatement", "src": "2149:39:7" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "2096:1:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2099:6:7" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "2093:2:7" }, "nodeType": "YulFunctionCall", "src": "2093:13:7" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", "src": "2107:19:7", "statements": [ { "nodeType": "YulAssignment", "src": "2109:15:7", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "2118:1:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2121:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2114:3:7" }, "nodeType": "YulFunctionCall", "src": "2114:10:7" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", "src": "2109:1:7" } ] } ] }, "pre": { "nodeType": "YulBlock", "src": "2089:3:7", "statements": [] }, "src": "2085:113:7" }, { "body": { "nodeType": "YulBlock", "src": "2232:76:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "2282:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2287:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2278:3:7" }, "nodeType": "YulFunctionCall", "src": "2278:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2296:1:7", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2271:6:7" }, "nodeType": "YulFunctionCall", "src": "2271:27:7" }, "nodeType": "YulExpressionStatement", "src": "2271:27:7" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "2213:1:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2216:6:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "2210:2:7" }, "nodeType": "YulFunctionCall", "src": "2210:13:7" }, "nodeType": "YulIf", "src": "2207:101:7" } ] }, "name": "copy_memory_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "2038:3:7", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "2043:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "2048:6:7", "type": "" } ], "src": "2007:307:7" }, { "body": { "nodeType": "YulBlock", "src": "2368:54:7", "statements": [ { "nodeType": "YulAssignment", "src": "2378:38:7", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2396:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2403:2:7", "type": "", "value": "31" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2392:3:7" }, "nodeType": "YulFunctionCall", "src": "2392:14:7" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "2412:2:7", "type": "", "value": "31" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", "src": "2408:3:7" }, "nodeType": "YulFunctionCall", "src": "2408:7:7" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "2388:3:7" }, "nodeType": "YulFunctionCall", "src": "2388:28:7" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", "src": "2378:6:7" } ] } ] }, "name": "round_up_to_mul_of_32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2351:5:7", "type": "" } ], "returnVariables": [ { "name": "result", "nodeType": "YulTypedName", "src": "2361:6:7", "type": "" } ], "src": "2320:102:7" }, { "body": { "nodeType": "YulBlock", "src": "2520:272:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2530:53:7", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2577:5:7" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "2544:32:7" }, "nodeType": "YulFunctionCall", "src": "2544:39:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "2534:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "2592:78:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2658:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2663:6:7" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "2599:58:7" }, "nodeType": "YulFunctionCall", "src": "2599:71:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2592:3:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2705:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2712:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2701:3:7" }, "nodeType": "YulFunctionCall", "src": "2701:16:7" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "2719:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2724:6:7" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", "src": "2679:21:7" }, "nodeType": "YulFunctionCall", "src": "2679:52:7" }, "nodeType": "YulExpressionStatement", "src": "2679:52:7" }, { "nodeType": "YulAssignment", "src": "2740:46:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2751:3:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "2778:6:7" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "2756:21:7" }, "nodeType": "YulFunctionCall", "src": "2756:29:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2747:3:7" }, "nodeType": "YulFunctionCall", "src": "2747:39:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "2740:3:7" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2501:5:7", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2508:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2516:3:7", "type": "" } ], "src": "2428:364:7" }, { "body": { "nodeType": "YulBlock", "src": "2944:277:7", "statements": [ { "nodeType": "YulAssignment", "src": "2954:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2966:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2977:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2962:3:7" }, "nodeType": "YulFunctionCall", "src": "2962:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "2954:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3034:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3047:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3058:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3043:3:7" }, "nodeType": "YulFunctionCall", "src": "3043:17:7" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "2990:43:7" }, "nodeType": "YulFunctionCall", "src": "2990:71:7" }, "nodeType": "YulExpressionStatement", "src": "2990:71:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3082:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3093:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3078:3:7" }, "nodeType": "YulFunctionCall", "src": "3078:18:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3102:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "3108:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "3098:3:7" }, "nodeType": "YulFunctionCall", "src": "3098:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3071:6:7" }, "nodeType": "YulFunctionCall", "src": "3071:48:7" }, "nodeType": "YulExpressionStatement", "src": "3071:48:7" }, { "nodeType": "YulAssignment", "src": "3128:86:7", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "3200:6:7" }, { "name": "tail", "nodeType": "YulIdentifier", "src": "3209:4:7" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "3136:63:7" }, "nodeType": "YulFunctionCall", "src": "3136:78:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3128:4:7" } ] } ] }, "name": "abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "2908:9:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "2920:6:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "2928:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "2939:4:7", "type": "" } ], "src": "2798:423:7" }, { "body": { "nodeType": "YulBlock", "src": "3325:124:7", "statements": [ { "nodeType": "YulAssignment", "src": "3335:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3347:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3358:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3343:3:7" }, "nodeType": "YulFunctionCall", "src": "3343:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3335:4:7" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3415:6:7" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3428:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3439:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3424:3:7" }, "nodeType": "YulFunctionCall", "src": "3424:17:7" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "3371:43:7" }, "nodeType": "YulFunctionCall", "src": "3371:71:7" }, "nodeType": "YulExpressionStatement", "src": "3371:71:7" } ] }, "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3297:9:7", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "3309:6:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3320:4:7", "type": "" } ], "src": "3227:222:7" }, { "body": { "nodeType": "YulBlock", "src": "3544:28:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3561:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3564:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "3554:6:7" }, "nodeType": "YulFunctionCall", "src": "3554:12:7" }, "nodeType": "YulExpressionStatement", "src": "3554:12:7" } ] }, "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nodeType": "YulFunctionDefinition", "src": "3455:117:7" }, { "body": { "nodeType": "YulBlock", "src": "3667:28:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3684:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3687:1:7", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "3677:6:7" }, "nodeType": "YulFunctionCall", "src": "3677:12:7" }, "nodeType": "YulExpressionStatement", "src": "3677:12:7" } ] }, "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", "nodeType": "YulFunctionDefinition", "src": "3578:117:7" }, { "body": { "nodeType": "YulBlock", "src": "3729:152:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3746:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3749:77:7", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3739:6:7" }, "nodeType": "YulFunctionCall", "src": "3739:88:7" }, "nodeType": "YulExpressionStatement", "src": "3739:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3843:1:7", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3846:4:7", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3836:6:7" }, "nodeType": "YulFunctionCall", "src": "3836:15:7" }, "nodeType": "YulExpressionStatement", "src": "3836:15:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3867:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3870:4:7", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "3860:6:7" }, "nodeType": "YulFunctionCall", "src": "3860:15:7" }, "nodeType": "YulExpressionStatement", "src": "3860:15:7" } ] }, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", "src": "3701:180:7" }, { "body": { "nodeType": "YulBlock", "src": "3930:238:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "3940:58:7", "value": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "3962:6:7" }, { "arguments": [ { "name": "size", "nodeType": "YulIdentifier", "src": "3992:4:7" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "3970:21:7" }, "nodeType": "YulFunctionCall", "src": "3970:27:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3958:3:7" }, "nodeType": "YulFunctionCall", "src": "3958:40:7" }, "variables": [ { "name": "newFreePtr", "nodeType": "YulTypedName", "src": "3944:10:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "4109:22:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "4111:16:7" }, "nodeType": "YulFunctionCall", "src": "4111:18:7" }, "nodeType": "YulExpressionStatement", "src": "4111:18:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "4052:10:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4064:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "4049:2:7" }, "nodeType": "YulFunctionCall", "src": "4049:34:7" }, { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "4088:10:7" }, { "name": "memPtr", "nodeType": "YulIdentifier", "src": "4100:6:7" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "4085:2:7" }, "nodeType": "YulFunctionCall", "src": "4085:22:7" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", "src": "4046:2:7" }, "nodeType": "YulFunctionCall", "src": "4046:62:7" }, "nodeType": "YulIf", "src": "4043:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4147:2:7", "type": "", "value": "64" }, { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "4151:10:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4140:6:7" }, "nodeType": "YulFunctionCall", "src": "4140:22:7" }, "nodeType": "YulExpressionStatement", "src": "4140:22:7" } ] }, "name": "finalize_allocation", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "3916:6:7", "type": "" }, { "name": "size", "nodeType": "YulTypedName", "src": "3924:4:7", "type": "" } ], "src": "3887:281:7" }, { "body": { "nodeType": "YulBlock", "src": "4215:88:7", "statements": [ { "nodeType": "YulAssignment", "src": "4225:30:7", "value": { "arguments": [], "functionName": { "name": "allocate_unbounded", "nodeType": "YulIdentifier", "src": "4235:18:7" }, "nodeType": "YulFunctionCall", "src": "4235:20:7" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "4225:6:7" } ] }, { "expression": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "4284:6:7" }, { "name": "size", "nodeType": "YulIdentifier", "src": "4292:4:7" } ], "functionName": { "name": "finalize_allocation", "nodeType": "YulIdentifier", "src": "4264:19:7" }, "nodeType": "YulFunctionCall", "src": "4264:33:7" }, "nodeType": "YulExpressionStatement", "src": "4264:33:7" } ] }, "name": "allocate_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "size", "nodeType": "YulTypedName", "src": "4199:4:7", "type": "" } ], "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "4208:6:7", "type": "" } ], "src": "4174:129:7" }, { "body": { "nodeType": "YulBlock", "src": "4376:241:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "4481:22:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "4483:16:7" }, "nodeType": "YulFunctionCall", "src": "4483:18:7" }, "nodeType": "YulExpressionStatement", "src": "4483:18:7" } ] }, "condition": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "4453:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4461:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "4450:2:7" }, "nodeType": "YulFunctionCall", "src": "4450:30:7" }, "nodeType": "YulIf", "src": "4447:56:7" }, { "nodeType": "YulAssignment", "src": "4513:37:7", "value": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "4543:6:7" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "4521:21:7" }, "nodeType": "YulFunctionCall", "src": "4521:29:7" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "4513:4:7" } ] }, { "nodeType": "YulAssignment", "src": "4587:23:7", "value": { "arguments": [ { "name": "size", "nodeType": "YulIdentifier", "src": "4599:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4605:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4595:3:7" }, "nodeType": "YulFunctionCall", "src": "4595:15:7" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "4587:4:7" } ] } ] }, "name": "array_allocation_size_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "length", "nodeType": "YulTypedName", "src": "4360:6:7", "type": "" } ], "returnVariables": [ { "name": "size", "nodeType": "YulTypedName", "src": "4371:4:7", "type": "" } ], "src": "4309:308:7" }, { "body": { "nodeType": "YulBlock", "src": "4674:103:7", "statements": [ { "expression": { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "4697:3:7" }, { "name": "src", "nodeType": "YulIdentifier", "src": "4702:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "4707:6:7" } ], "functionName": { "name": "calldatacopy", "nodeType": "YulIdentifier", "src": "4684:12:7" }, "nodeType": "YulFunctionCall", "src": "4684:30:7" }, "nodeType": "YulExpressionStatement", "src": "4684:30:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "4755:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "4760:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4751:3:7" }, "nodeType": "YulFunctionCall", "src": "4751:16:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4769:1:7", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4744:6:7" }, "nodeType": "YulFunctionCall", "src": "4744:27:7" }, "nodeType": "YulExpressionStatement", "src": "4744:27:7" } ] }, "name": "copy_calldata_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "4656:3:7", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "4661:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "4666:6:7", "type": "" } ], "src": "4623:154:7" }, { "body": { "nodeType": "YulBlock", "src": "4867:328:7", "statements": [ { "nodeType": "YulAssignment", "src": "4877:75:7", "value": { "arguments": [ { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "4944:6:7" } ], "functionName": { "name": "array_allocation_size_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "4902:41:7" }, "nodeType": "YulFunctionCall", "src": "4902:49:7" } ], "functionName": { "name": "allocate_memory", "nodeType": "YulIdentifier", "src": "4886:15:7" }, "nodeType": "YulFunctionCall", "src": "4886:66:7" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "4877:5:7" } ] }, { "expression": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "4968:5:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "4975:6:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4961:6:7" }, "nodeType": "YulFunctionCall", "src": "4961:21:7" }, "nodeType": "YulExpressionStatement", "src": "4961:21:7" }, { "nodeType": "YulVariableDeclaration", "src": "4991:27:7", "value": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "5006:5:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5013:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5002:3:7" }, "nodeType": "YulFunctionCall", "src": "5002:16:7" }, "variables": [ { "name": "dst", "nodeType": "YulTypedName", "src": "4995:3:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "5056:83:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", "nodeType": "YulIdentifier", "src": "5058:77:7" }, "nodeType": "YulFunctionCall", "src": "5058:79:7" }, "nodeType": "YulExpressionStatement", "src": "5058:79:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "5037:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5042:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5033:3:7" }, "nodeType": "YulFunctionCall", "src": "5033:16:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "5051:3:7" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "5030:2:7" }, "nodeType": "YulFunctionCall", "src": "5030:25:7" }, "nodeType": "YulIf", "src": "5027:112:7" }, { "expression": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "5172:3:7" }, { "name": "dst", "nodeType": "YulIdentifier", "src": "5177:3:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5182:6:7" } ], "functionName": { "name": "copy_calldata_to_memory", "nodeType": "YulIdentifier", "src": "5148:23:7" }, "nodeType": "YulFunctionCall", "src": "5148:41:7" }, "nodeType": "YulExpressionStatement", "src": "5148:41:7" } ] }, "name": "abi_decode_available_length_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "4840:3:7", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "4845:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "4853:3:7", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "4861:5:7", "type": "" } ], "src": "4783:412:7" }, { "body": { "nodeType": "YulBlock", "src": "5277:278:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "5326:83:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nodeType": "YulIdentifier", "src": "5328:77:7" }, "nodeType": "YulFunctionCall", "src": "5328:79:7" }, "nodeType": "YulExpressionStatement", "src": "5328:79:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "5305:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5313:4:7", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5301:3:7" }, "nodeType": "YulFunctionCall", "src": "5301:17:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "5320:3:7" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "5297:3:7" }, "nodeType": "YulFunctionCall", "src": "5297:27:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "5290:6:7" }, "nodeType": "YulFunctionCall", "src": "5290:35:7" }, "nodeType": "YulIf", "src": "5287:122:7" }, { "nodeType": "YulVariableDeclaration", "src": "5418:34:7", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "5445:6:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "5432:12:7" }, "nodeType": "YulFunctionCall", "src": "5432:20:7" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "5422:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "5461:88:7", "value": { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "5522:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5530:4:7", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5518:3:7" }, "nodeType": "YulFunctionCall", "src": "5518:17:7" }, { "name": "length", "nodeType": "YulIdentifier", "src": "5537:6:7" }, { "name": "end", "nodeType": "YulIdentifier", "src": "5545:3:7" } ], "functionName": { "name": "abi_decode_available_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "5470:47:7" }, "nodeType": "YulFunctionCall", "src": "5470:79:7" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "5461:5:7" } ] } ] }, "name": "abi_decode_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "5255:6:7", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "5263:3:7", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "5271:5:7", "type": "" } ], "src": "5215:340:7" }, { "body": { "nodeType": "YulBlock", "src": "5654:561:7", "statements": [ { "body": { "nodeType": "YulBlock", "src": "5700:83:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "5702:77:7" }, "nodeType": "YulFunctionCall", "src": "5702:79:7" }, "nodeType": "YulExpressionStatement", "src": "5702:79:7" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "5675:7:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "5684:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "5671:3:7" }, "nodeType": "YulFunctionCall", "src": "5671:23:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5696:2:7", "type": "", "value": "64" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "5667:3:7" }, "nodeType": "YulFunctionCall", "src": "5667:32:7" }, "nodeType": "YulIf", "src": "5664:119:7" }, { "nodeType": "YulBlock", "src": "5793:117:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "5808:15:7", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "5822:1:7", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "5812:6:7", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "5837:63:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "5872:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "5883:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5868:3:7" }, "nodeType": "YulFunctionCall", "src": "5868:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "5892:7:7" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", "src": "5847:20:7" }, "nodeType": "YulFunctionCall", "src": "5847:53:7" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "5837:6:7" } ] } ] }, { "nodeType": "YulBlock", "src": "5920:288:7", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "5935:46:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "5966:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5977:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5962:3:7" }, "nodeType": "YulFunctionCall", "src": "5962:18:7" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "5949:12:7" }, "nodeType": "YulFunctionCall", "src": "5949:32:7" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "5939:6:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "6028:83:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulIdentifier", "src": "6030:77:7" }, "nodeType": "YulFunctionCall", "src": "6030:79:7" }, "nodeType": "YulExpressionStatement", "src": "6030:79:7" } ] }, "condition": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "6000:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6008:18:7", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "5997:2:7" }, "nodeType": "YulFunctionCall", "src": "5997:30:7" }, "nodeType": "YulIf", "src": "5994:117:7" }, { "nodeType": "YulAssignment", "src": "6125:73:7", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "6170:9:7" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "6181:6:7" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "6166:3:7" }, "nodeType": "YulFunctionCall", "src": "6166:22:7" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "6190:7:7" } ], "functionName": { "name": "abi_decode_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "6135:30:7" }, "nodeType": "YulFunctionCall", "src": "6135:63:7" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "6125:6:7" } ] } ] } ] }, "name": "abi_decode_tuple_t_addresst_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "5616:9:7", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "5627:7:7", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "5639:6:7", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "5647:6:7", "type": "" } ], "src": "5561:654:7" }, { "body": { "nodeType": "YulBlock", "src": "6327:76:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "6349:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6357:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "6345:3:7" }, "nodeType": "YulFunctionCall", "src": "6345:14:7" }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", "kind": "string", "nodeType": "YulLiteral", "src": "6361:34:7", "type": "", "value": "Ownable: caller is not the owner" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6338:6:7" }, "nodeType": "YulFunctionCall", "src": "6338:58:7" }, "nodeType": "YulExpressionStatement", "src": "6338:58:7" } ] }, "name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "6319:6:7", "type": "" } ], "src": "6221:182:7" }, { "body": { "nodeType": "YulBlock", "src": "6555:220:7", "statements": [ { "nodeType": "YulAssignment", "src": "6565:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "6631:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6636:2:7", "type": "", "value": "32" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "6572:58:7" }, "nodeType": "YulFunctionCall", "src": "6572:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "6565:3:7" } ] }, { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "6737:3:7" } ], "functionName": { "name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "nodeType": "YulIdentifier", "src": "6648:88:7" }, "nodeType": "YulFunctionCall", "src": "6648:93:7" }, "nodeType": "YulExpressionStatement", "src": "6648:93:7" }, { "nodeType": "YulAssignment", "src": "6750:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "6761:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6766:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "6757:3:7" }, "nodeType": "YulFunctionCall", "src": "6757:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "6750:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "6543:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "6551:3:7", "type": "" } ], "src": "6409:366:7" }, { "body": { "nodeType": "YulBlock", "src": "6952:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "6962:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "6974:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "6985:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "6970:3:7" }, "nodeType": "YulFunctionCall", "src": "6970:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "6962:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "7009:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7020:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "7005:3:7" }, "nodeType": "YulFunctionCall", "src": "7005:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "7028:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "7034:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "7024:3:7" }, "nodeType": "YulFunctionCall", "src": "7024:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "6998:6:7" }, "nodeType": "YulFunctionCall", "src": "6998:47:7" }, "nodeType": "YulExpressionStatement", "src": "6998:47:7" }, { "nodeType": "YulAssignment", "src": "7054:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "7188:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "7062:124:7" }, "nodeType": "YulFunctionCall", "src": "7062:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "7054:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "6932:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "6947:4:7", "type": "" } ], "src": "6781:419:7" }, { "body": { "nodeType": "YulBlock", "src": "7234:152:7", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "7251:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7254:77:7", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "7244:6:7" }, "nodeType": "YulFunctionCall", "src": "7244:88:7" }, "nodeType": "YulExpressionStatement", "src": "7244:88:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "7348:1:7", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7351:4:7", "type": "", "value": "0x22" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "7341:6:7" }, "nodeType": "YulFunctionCall", "src": "7341:15:7" }, "nodeType": "YulExpressionStatement", "src": "7341:15:7" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "7372:1:7", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7375:4:7", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "7365:6:7" }, "nodeType": "YulFunctionCall", "src": "7365:15:7" }, "nodeType": "YulExpressionStatement", "src": "7365:15:7" } ] }, "name": "panic_error_0x22", "nodeType": "YulFunctionDefinition", "src": "7206:180:7" }, { "body": { "nodeType": "YulBlock", "src": "7443:269:7", "statements": [ { "nodeType": "YulAssignment", "src": "7453:22:7", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", "src": "7467:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7473:1:7", "type": "", "value": "2" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", "src": "7463:3:7" }, "nodeType": "YulFunctionCall", "src": "7463:12:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "7453:6:7" } ] }, { "nodeType": "YulVariableDeclaration", "src": "7484:38:7", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", "src": "7514:4:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7520:1:7", "type": "", "value": "1" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "7510:3:7" }, "nodeType": "YulFunctionCall", "src": "7510:12:7" }, "variables": [ { "name": "outOfPlaceEncoding", "nodeType": "YulTypedName", "src": "7488:18:7", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "7561:51:7", "statements": [ { "nodeType": "YulAssignment", "src": "7575:27:7", "value": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "7589:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7597:4:7", "type": "", "value": "0x7f" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "7585:3:7" }, "nodeType": "YulFunctionCall", "src": "7585:17:7" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "7575:6:7" } ] } ] }, "condition": { "arguments": [ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", "src": "7541:18:7" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "7534:6:7" }, "nodeType": "YulFunctionCall", "src": "7534:26:7" }, "nodeType": "YulIf", "src": "7531:81:7" }, { "body": { "nodeType": "YulBlock", "src": "7664:42:7", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x22", "nodeType": "YulIdentifier", "src": "7678:16:7" }, "nodeType": "YulFunctionCall", "src": "7678:18:7" }, "nodeType": "YulExpressionStatement", "src": "7678:18:7" } ] }, "condition": { "arguments": [ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", "src": "7628:18:7" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "7651:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7659:2:7", "type": "", "value": "32" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "7648:2:7" }, "nodeType": "YulFunctionCall", "src": "7648:14:7" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "7625:2:7" }, "nodeType": "YulFunctionCall", "src": "7625:38:7" }, "nodeType": "YulIf", "src": "7622:84:7" } ] }, "name": "extract_byte_array_length", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "data", "nodeType": "YulTypedName", "src": "7427:4:7", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "7436:6:7", "type": "" } ], "src": "7392:320:7" }, { "body": { "nodeType": "YulBlock", "src": "7824:60:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "7846:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7854:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "7842:3:7" }, "nodeType": "YulFunctionCall", "src": "7842:14:7" }, { "hexValue": "5061757361626c653a20706175736564", "kind": "string", "nodeType": "YulLiteral", "src": "7858:18:7", "type": "", "value": "Pausable: paused" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "7835:6:7" }, "nodeType": "YulFunctionCall", "src": "7835:42:7" }, "nodeType": "YulExpressionStatement", "src": "7835:42:7" } ] }, "name": "store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "7816:6:7", "type": "" } ], "src": "7718:166:7" }, { "body": { "nodeType": "YulBlock", "src": "8036:220:7", "statements": [ { "nodeType": "YulAssignment", "src": "8046:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "8112:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8117:2:7", "type": "", "value": "16" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "8053:58:7" }, "nodeType": "YulFunctionCall", "src": "8053:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "8046:3:7" } ] }, { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "8218:3:7" } ], "functionName": { "name": "store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", "nodeType": "YulIdentifier", "src": "8129:88:7" }, "nodeType": "YulFunctionCall", "src": "8129:93:7" }, "nodeType": "YulExpressionStatement", "src": "8129:93:7" }, { "nodeType": "YulAssignment", "src": "8231:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "8242:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8247:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8238:3:7" }, "nodeType": "YulFunctionCall", "src": "8238:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "8231:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "8024:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "8032:3:7", "type": "" } ], "src": "7890:366:7" }, { "body": { "nodeType": "YulBlock", "src": "8433:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "8443:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "8455:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8466:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8451:3:7" }, "nodeType": "YulFunctionCall", "src": "8451:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "8443:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "8490:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8501:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8486:3:7" }, "nodeType": "YulFunctionCall", "src": "8486:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "8509:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "8515:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "8505:3:7" }, "nodeType": "YulFunctionCall", "src": "8505:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "8479:6:7" }, "nodeType": "YulFunctionCall", "src": "8479:47:7" }, "nodeType": "YulExpressionStatement", "src": "8479:47:7" }, { "nodeType": "YulAssignment", "src": "8535:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "8669:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "8543:124:7" }, "nodeType": "YulFunctionCall", "src": "8543:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "8535:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "8413:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "8428:4:7", "type": "" } ], "src": "8262:419:7" }, { "body": { "nodeType": "YulBlock", "src": "8793:119:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "8815:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8823:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8811:3:7" }, "nodeType": "YulFunctionCall", "src": "8811:14:7" }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061", "kind": "string", "nodeType": "YulLiteral", "src": "8827:34:7", "type": "", "value": "Ownable: new owner is the zero a" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "8804:6:7" }, "nodeType": "YulFunctionCall", "src": "8804:58:7" }, "nodeType": "YulExpressionStatement", "src": "8804:58:7" }, { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "8883:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8891:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "8879:3:7" }, "nodeType": "YulFunctionCall", "src": "8879:15:7" }, { "hexValue": "646472657373", "kind": "string", "nodeType": "YulLiteral", "src": "8896:8:7", "type": "", "value": "ddress" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "8872:6:7" }, "nodeType": "YulFunctionCall", "src": "8872:33:7" }, "nodeType": "YulExpressionStatement", "src": "8872:33:7" } ] }, "name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "8785:6:7", "type": "" } ], "src": "8687:225:7" }, { "body": { "nodeType": "YulBlock", "src": "9064:220:7", "statements": [ { "nodeType": "YulAssignment", "src": "9074:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "9140:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9145:2:7", "type": "", "value": "38" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "9081:58:7" }, "nodeType": "YulFunctionCall", "src": "9081:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "9074:3:7" } ] }, { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "9246:3:7" } ], "functionName": { "name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "nodeType": "YulIdentifier", "src": "9157:88:7" }, "nodeType": "YulFunctionCall", "src": "9157:93:7" }, "nodeType": "YulExpressionStatement", "src": "9157:93:7" }, { "nodeType": "YulAssignment", "src": "9259:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "9270:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9275:2:7", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9266:3:7" }, "nodeType": "YulFunctionCall", "src": "9266:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "9259:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "9052:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "9060:3:7", "type": "" } ], "src": "8918:366:7" }, { "body": { "nodeType": "YulBlock", "src": "9461:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "9471:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "9483:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9494:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9479:3:7" }, "nodeType": "YulFunctionCall", "src": "9479:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "9471:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "9518:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9529:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9514:3:7" }, "nodeType": "YulFunctionCall", "src": "9514:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "9537:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "9543:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "9533:3:7" }, "nodeType": "YulFunctionCall", "src": "9533:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "9507:6:7" }, "nodeType": "YulFunctionCall", "src": "9507:47:7" }, "nodeType": "YulExpressionStatement", "src": "9507:47:7" }, { "nodeType": "YulAssignment", "src": "9563:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "9697:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "9571:124:7" }, "nodeType": "YulFunctionCall", "src": "9571:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "9563:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "9441:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "9456:4:7", "type": "" } ], "src": "9290:419:7" }, { "body": { "nodeType": "YulBlock", "src": "9821:64:7", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "9843:6:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "9851:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "9839:3:7" }, "nodeType": "YulFunctionCall", "src": "9839:14:7" }, { "hexValue": "5061757361626c653a206e6f7420706175736564", "kind": "string", "nodeType": "YulLiteral", "src": "9855:22:7", "type": "", "value": "Pausable: not paused" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "9832:6:7" }, "nodeType": "YulFunctionCall", "src": "9832:46:7" }, "nodeType": "YulExpressionStatement", "src": "9832:46:7" } ] }, "name": "store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "9813:6:7", "type": "" } ], "src": "9715:170:7" }, { "body": { "nodeType": "YulBlock", "src": "10037:220:7", "statements": [ { "nodeType": "YulAssignment", "src": "10047:74:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "10113:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10118:2:7", "type": "", "value": "20" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "10054:58:7" }, "nodeType": "YulFunctionCall", "src": "10054:67:7" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "10047:3:7" } ] }, { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "10219:3:7" } ], "functionName": { "name": "store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", "nodeType": "YulIdentifier", "src": "10130:88:7" }, "nodeType": "YulFunctionCall", "src": "10130:93:7" }, "nodeType": "YulExpressionStatement", "src": "10130:93:7" }, { "nodeType": "YulAssignment", "src": "10232:19:7", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "10243:3:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10248:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "10239:3:7" }, "nodeType": "YulFunctionCall", "src": "10239:12:7" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "10232:3:7" } ] } ] }, "name": "abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "10025:3:7", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "10033:3:7", "type": "" } ], "src": "9891:366:7" }, { "body": { "nodeType": "YulBlock", "src": "10434:248:7", "statements": [ { "nodeType": "YulAssignment", "src": "10444:26:7", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "10456:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10467:2:7", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "10452:3:7" }, "nodeType": "YulFunctionCall", "src": "10452:18:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "10444:4:7" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "10491:9:7" }, { "kind": "number", "nodeType": "YulLiteral", "src": "10502:1:7", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "10487:3:7" }, "nodeType": "YulFunctionCall", "src": "10487:17:7" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "10510:4:7" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "10516:9:7" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "10506:3:7" }, "nodeType": "YulFunctionCall", "src": "10506:20:7" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "10480:6:7" }, "nodeType": "YulFunctionCall", "src": "10480:47:7" }, "nodeType": "YulExpressionStatement", "src": "10480:47:7" }, { "nodeType": "YulAssignment", "src": "10536:139:7", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "10670:4:7" } ], "functionName": { "name": "abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "10544:124:7" }, "nodeType": "YulFunctionCall", "src": "10544:131:7" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "10536:4:7" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "10414:9:7", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "10429:4:7", "type": "" } ], "src": "10263:419:7" } ] }, "contents": "{\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function 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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\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_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(memPtr) {\n\n mstore(add(memPtr, 0), \"Pausable: paused\")\n\n }\n\n function abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(memPtr) {\n\n mstore(add(memPtr, 0), \"Pausable: not paused\")\n\n }\n\n function abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 7, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146100fb5780638456cb59146101055780638da5cb5b1461010f578063de6f24bb1461012d578063f2fde38b1461014957610093565b80632f7643a8146100985780633f4ba83a146100a25780635c975abb146100ac5780635fdd59f8146100ca575b600080fd5b6100a0610165565b005b6100aa61019e565b005b6100b4610224565b6040516100c19190610920565b60405180910390f35b6100e460048036038101906100df91906109ad565b61023a565b6040516100f2929190610a82565b60405180910390f35b610103610306565b005b61010d61038e565b005b610117610414565b6040516101249190610ab2565b60405180910390f35b61014760048036038101906101429190610c02565b61043d565b005b610163600480360381019061015e91906109ad565b61055a565b005b7f7ab3ca8d9c315e41f56f37c7e1fb65062a6c0c242c3c28ed0bf47db6be2b10ea336040516101949190610ab2565b60405180910390a1565b6101a6610652565b73ffffffffffffffffffffffffffffffffffffffff166101c4610414565b73ffffffffffffffffffffffffffffffffffffffff161461021a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021190610caa565b60405180910390fd5b61022261065a565b565b60008060009054906101000a900460ff16905090565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101805461028390610cf9565b80601f01602080910402602001604051908101604052809291908181526020018280546102af90610cf9565b80156102fc5780601f106102d1576101008083540402835291602001916102fc565b820191906000526020600020905b8154815290600101906020018083116102df57829003601f168201915b5050505050905082565b61030e610652565b73ffffffffffffffffffffffffffffffffffffffff1661032c610414565b73ffffffffffffffffffffffffffffffffffffffff1614610382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037990610caa565b60405180910390fd5b61038c60006106fb565b565b610396610652565b73ffffffffffffffffffffffffffffffffffffffff166103b4610414565b73ffffffffffffffffffffffffffffffffffffffff161461040a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040190610caa565b60405180910390fd5b6104126107c0565b565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610445610224565b15610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047c90610d77565b60405180910390fd5b60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200182815250600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610552929190610862565b509050505050565b610562610652565b73ffffffffffffffffffffffffffffffffffffffff16610580610414565b73ffffffffffffffffffffffffffffffffffffffff16146105d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd90610caa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d90610e09565b60405180910390fd5b61064f816106fb565b50565b600033905090565b610662610224565b6106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069890610e75565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6106e4610652565b6040516106f19190610ab2565b60405180910390a1565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6107c8610224565b15610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff90610d77565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861084b610652565b6040516108589190610ab2565b60405180910390a1565b82805461086e90610cf9565b90600052602060002090601f01602090048101928261089057600085556108d7565b82601f106108a957805160ff19168380011785556108d7565b828001600101855582156108d7579182015b828111156108d65782518255916020019190600101906108bb565b5b5090506108e491906108e8565b5090565b5b808211156109015760008160009055506001016108e9565b5090565b60008115159050919050565b61091a81610905565b82525050565b60006020820190506109356000830184610911565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061097a8261094f565b9050919050565b61098a8161096f565b811461099557600080fd5b50565b6000813590506109a781610981565b92915050565b6000602082840312156109c3576109c2610945565b5b60006109d184828501610998565b91505092915050565b6109e38161096f565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610a23578082015181840152602081019050610a08565b83811115610a32576000848401525b50505050565b6000601f19601f8301169050919050565b6000610a54826109e9565b610a5e81856109f4565b9350610a6e818560208601610a05565b610a7781610a38565b840191505092915050565b6000604082019050610a9760008301856109da565b8181036020830152610aa98184610a49565b90509392505050565b6000602082019050610ac760008301846109da565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610b0f82610a38565b810181811067ffffffffffffffff82111715610b2e57610b2d610ad7565b5b80604052505050565b6000610b4161093b565b9050610b4d8282610b06565b919050565b600067ffffffffffffffff821115610b6d57610b6c610ad7565b5b610b7682610a38565b9050602081019050919050565b82818337600083830152505050565b6000610ba5610ba084610b52565b610b37565b905082815260208101848484011115610bc157610bc0610ad2565b5b610bcc848285610b83565b509392505050565b600082601f830112610be957610be8610acd565b5b8135610bf9848260208601610b92565b91505092915050565b60008060408385031215610c1957610c18610945565b5b6000610c2785828601610998565b925050602083013567ffffffffffffffff811115610c4857610c4761094a565b5b610c5485828601610bd4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610c946020836109f4565b9150610c9f82610c5e565b602082019050919050565b60006020820190508181036000830152610cc381610c87565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610d1157607f821691505b60208210811415610d2557610d24610cca565b5b50919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000610d616010836109f4565b9150610d6c82610d2b565b602082019050919050565b60006020820190508181036000830152610d9081610d54565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610df36026836109f4565b9150610dfe82610d97565b604082019050919050565b60006020820190508181036000830152610e2281610de6565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000610e5f6014836109f4565b9150610e6a82610e29565b602082019050919050565b60006020820190508181036000830152610e8e81610e52565b905091905056fea26469706673582212202a5ca62240ed4032a97145f2fa5331b87423fe4ef585be2ac6b013ca0d8609ba64736f6c634300080a0033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xFB JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0xDE6F24BB EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x149 JUMPI PUSH2 0x93 JUMP JUMPDEST DUP1 PUSH4 0x2F7643A8 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x5FDD59F8 EQ PUSH2 0xCA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x165 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAA PUSH2 0x19E JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB4 PUSH2 0x224 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x920 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDF SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x23A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF2 SWAP3 SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x103 PUSH2 0x306 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10D PUSH2 0x38E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x117 PUSH2 0x414 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x142 SWAP2 SWAP1 PUSH2 0xC02 JUMP JUMPDEST PUSH2 0x43D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x163 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST STOP JUMPDEST PUSH32 0x7AB3CA8D9C315E41F56F37C7E1FB65062A6C0C242C3C28ED0BF47DB6BE2B10EA CALLER PUSH1 0x40 MLOAD PUSH2 0x194 SWAP2 SWAP1 PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x1A6 PUSH2 0x652 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C4 PUSH2 0x414 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x21A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x211 SWAP1 PUSH2 0xCAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x222 PUSH2 0x65A JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x283 SWAP1 PUSH2 0xCF9 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2AF SWAP1 PUSH2 0xCF9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x652 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x32C PUSH2 0x414 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x382 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0xCAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38C PUSH1 0x0 PUSH2 0x6FB JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x396 PUSH2 0x652 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x3B4 PUSH2 0x414 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x40A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xCAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x412 PUSH2 0x7C0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x445 PUSH2 0x224 JUMP JUMPDEST ISZERO PUSH2 0x485 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x47C SWAP1 PUSH2 0xD77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x552 SWAP3 SWAP2 SWAP1 PUSH2 0x862 JUMP JUMPDEST POP SWAP1 POP POP POP POP JUMP JUMPDEST PUSH2 0x562 PUSH2 0x652 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x580 PUSH2 0x414 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x5D6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CD SWAP1 PUSH2 0xCAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x646 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x63D SWAP1 PUSH2 0xE09 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64F DUP2 PUSH2 0x6FB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x662 PUSH2 0x224 JUMP JUMPDEST PUSH2 0x6A1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x698 SWAP1 PUSH2 0xE75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH2 0x6E4 PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F1 SWAP2 SWAP1 PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x7C8 PUSH2 0x224 JUMP JUMPDEST ISZERO PUSH2 0x808 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7FF SWAP1 PUSH2 0xD77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x84B PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x858 SWAP2 SWAP1 PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x86E SWAP1 PUSH2 0xCF9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x890 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x8D7 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x8A9 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x8D7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x8D7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x8D6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x8BB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x8E4 SWAP2 SWAP1 PUSH2 0x8E8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x901 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x8E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x91A DUP2 PUSH2 0x905 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x935 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x911 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97A DUP3 PUSH2 0x94F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98A DUP2 PUSH2 0x96F JUMP JUMPDEST DUP2 EQ PUSH2 0x995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9A7 DUP2 PUSH2 0x981 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9C3 JUMPI PUSH2 0x9C2 PUSH2 0x945 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x9D1 DUP5 DUP3 DUP6 ADD PUSH2 0x998 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E3 DUP2 PUSH2 0x96F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA23 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA08 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xA32 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA54 DUP3 PUSH2 0x9E9 JUMP JUMPDEST PUSH2 0xA5E DUP2 DUP6 PUSH2 0x9F4 JUMP JUMPDEST SWAP4 POP PUSH2 0xA6E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA05 JUMP JUMPDEST PUSH2 0xA77 DUP2 PUSH2 0xA38 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xA97 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x9DA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAA9 DUP2 DUP5 PUSH2 0xA49 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAC7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x9DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xB0F DUP3 PUSH2 0xA38 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xB2E JUMPI PUSH2 0xB2D PUSH2 0xAD7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB41 PUSH2 0x93B JUMP JUMPDEST SWAP1 POP PUSH2 0xB4D DUP3 DUP3 PUSH2 0xB06 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB6D JUMPI PUSH2 0xB6C PUSH2 0xAD7 JUMP JUMPDEST JUMPDEST PUSH2 0xB76 DUP3 PUSH2 0xA38 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBA5 PUSH2 0xBA0 DUP5 PUSH2 0xB52 JUMP JUMPDEST PUSH2 0xB37 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xBC1 JUMPI PUSH2 0xBC0 PUSH2 0xAD2 JUMP JUMPDEST JUMPDEST PUSH2 0xBCC DUP5 DUP3 DUP6 PUSH2 0xB83 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xBE9 JUMPI PUSH2 0xBE8 PUSH2 0xACD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xBF9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xB92 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC19 JUMPI PUSH2 0xC18 PUSH2 0x945 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC27 DUP6 DUP3 DUP7 ADD PUSH2 0x998 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC48 JUMPI PUSH2 0xC47 PUSH2 0x94A JUMP JUMPDEST JUMPDEST PUSH2 0xC54 DUP6 DUP3 DUP7 ADD PUSH2 0xBD4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC94 PUSH1 0x20 DUP4 PUSH2 0x9F4 JUMP JUMPDEST SWAP2 POP PUSH2 0xC9F DUP3 PUSH2 0xC5E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCC3 DUP2 PUSH2 0xC87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xD11 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xD25 JUMPI PUSH2 0xD24 PUSH2 0xCCA JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD61 PUSH1 0x10 DUP4 PUSH2 0x9F4 JUMP JUMPDEST SWAP2 POP PUSH2 0xD6C DUP3 PUSH2 0xD2B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD90 DUP2 PUSH2 0xD54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDF3 PUSH1 0x26 DUP4 PUSH2 0x9F4 JUMP JUMPDEST SWAP2 POP PUSH2 0xDFE DUP3 PUSH2 0xD97 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE22 DUP2 PUSH2 0xDE6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE5F PUSH1 0x14 DUP4 PUSH2 0x9F4 JUMP JUMPDEST SWAP2 POP PUSH2 0xE6A DUP3 PUSH2 0xE29 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE8E DUP2 PUSH2 0xE52 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A 0x5C 0xA6 0x22 BLOCKHASH 0xED BLOCKHASH ORIGIN 0xA9 PUSH18 0x45F2FA5331B87423FE4EF585BE2AC6B013CA 0xD DUP7 MULMOD 0xBA PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ", "sourceMap": "481:528:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:62;;;:::i;:::-;;950:57;;;:::i;:::-;;1098:84:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;534:43:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1668:101:0;;;:::i;:::-;;893:53:6;;;:::i;:::-;;1036:85:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;678:145:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1918:198:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;827:62:6;867:17;873:10;867:17;;;;;;:::i;:::-;;;;;;;;827:62::o;950:57::-;1259:12:0;:10;:12::i;:::-;1248:23;;:7;:5;:7::i;:::-;:23;;;1240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;992:10:6::1;:8;:10::i;:::-;950:57::o:0;1098:84:2:-;1145:4;1168:7;;;;;;;;;;;1161:14;;1098:84;:::o;534:43:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1668:101:0:-;1259:12;:10;:12::i;:::-;1248:23;;:7;:5;:7::i;:::-;:23;;;1240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1732:30:::1;1759:1;1732:18;:30::i;:::-;1668:101::o:0;893:53:6:-;1259:12:0;:10;:12::i;:::-;1248:23;;:7;:5;:7::i;:::-;:23;;;1240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;933:8:6::1;:6;:8::i;:::-;893:53::o:0;1036:85:0:-;1082:7;1108:6;;;;;;;;;;;1101:13;;1036:85;:::o;678:145:6:-;1412:8:2;:6;:8::i;:::-;1411:9;1403:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;790:28:6::1;;;;;;;;798:10;790:28;;;;;;810:7;790:28;;::::0;768:8:::1;:19;777:9;768:19;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;678:145:::0;;:::o;1918:198:0:-;1259:12;:10;:12::i;:::-;1248:23;;:7;:5;:7::i;:::-;:23;;;1240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2026:1:::1;2006:22;;:8;:22;;;;1998:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2081:28;2100:8;2081:18;:28::i;:::-;1918:198:::0;:::o;640:96:4:-;693:7;719:10;712:17;;640:96;:::o;2110:117:2:-;1677:8;:6;:8::i;:::-;1669:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2178:5:::1;2168:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;2198:22;2207:12;:10;:12::i;:::-;2198:22;;;;;;:::i;:::-;;;;;;;;2110:117::o:0;2270:187:0:-;2343:16;2362:6;;;;;;;;;;;2343:25;;2387:8;2378:6;;:17;;;;;;;;;;;;;;;;;;2441:8;2410:40;;2431:8;2410:40;;;;;;;;;;;;2333:124;2270:187;:::o;1863:115:2:-;1412:8;:6;:8::i;:::-;1411:9;1403:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1932:4:::1;1922:7;::::0;:14:::1;;;;;;;;;;;;;;;;;;1951:20;1958:12;:10;:12::i;:::-;1951:20;;;;;;:::i;:::-;;;;;;;;1863:115::o:0;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:90:7:-;41:7;84:5;77:13;70:21;59:32;;7:90;;;:::o;103:109::-;184:21;199:5;184:21;:::i;:::-;179:3;172:34;103:109;;:::o;218:210::-;305:4;343:2;332:9;328:18;320:26;;356:65;418:1;407:9;403:17;394:6;356:65;:::i;:::-;218:210;;;;:::o;434:75::-;467:6;500:2;494:9;484:19;;434:75;:::o;515:117::-;624:1;621;614:12;638:117;747:1;744;737:12;761:126;798:7;838:42;831:5;827:54;816:65;;761:126;;;:::o;893:96::-;930:7;959:24;977:5;959:24;:::i;:::-;948:35;;893:96;;;:::o;995:122::-;1068:24;1086:5;1068:24;:::i;:::-;1061:5;1058:35;1048:63;;1107:1;1104;1097:12;1048:63;995:122;:::o;1123:139::-;1169:5;1207:6;1194:20;1185:29;;1223:33;1250:5;1223:33;:::i;:::-;1123:139;;;;:::o;1268:329::-;1327:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:119;;;1382:79;;:::i;:::-;1344:119;1502:1;1527:53;1572:7;1563:6;1552:9;1548:22;1527:53;:::i;:::-;1517:63;;1473:117;1268:329;;;;:::o;1603:118::-;1690:24;1708:5;1690:24;:::i;:::-;1685:3;1678:37;1603:118;;:::o;1727:99::-;1779:6;1813:5;1807:12;1797:22;;1727:99;;;:::o;1832:169::-;1916:11;1950:6;1945:3;1938:19;1990:4;1985:3;1981:14;1966:29;;1832:169;;;;:::o;2007:307::-;2075:1;2085:113;2099:6;2096:1;2093:13;2085:113;;;2184:1;2179:3;2175:11;2169:18;2165:1;2160:3;2156:11;2149:39;2121:2;2118:1;2114:10;2109:15;;2085:113;;;2216:6;2213:1;2210:13;2207:101;;;2296:1;2287:6;2282:3;2278:16;2271:27;2207:101;2056:258;2007:307;;;:::o;2320:102::-;2361:6;2412:2;2408:7;2403:2;2396:5;2392:14;2388:28;2378:38;;2320:102;;;:::o;2428:364::-;2516:3;2544:39;2577:5;2544:39;:::i;:::-;2599:71;2663:6;2658:3;2599:71;:::i;:::-;2592:78;;2679:52;2724:6;2719:3;2712:4;2705:5;2701:16;2679:52;:::i;:::-;2756:29;2778:6;2756:29;:::i;:::-;2751:3;2747:39;2740:46;;2520:272;2428:364;;;;:::o;2798:423::-;2939:4;2977:2;2966:9;2962:18;2954:26;;2990:71;3058:1;3047:9;3043:17;3034:6;2990:71;:::i;:::-;3108:9;3102:4;3098:20;3093:2;3082:9;3078:18;3071:48;3136:78;3209:4;3200:6;3136:78;:::i;:::-;3128:86;;2798:423;;;;;:::o;3227:222::-;3320:4;3358:2;3347:9;3343:18;3335:26;;3371:71;3439:1;3428:9;3424:17;3415:6;3371:71;:::i;:::-;3227:222;;;;:::o;3455:117::-;3564:1;3561;3554:12;3578:117;3687:1;3684;3677:12;3701:180;3749:77;3746:1;3739:88;3846:4;3843:1;3836:15;3870:4;3867:1;3860:15;3887:281;3970:27;3992:4;3970:27;:::i;:::-;3962:6;3958:40;4100:6;4088:10;4085:22;4064:18;4052:10;4049:34;4046:62;4043:88;;;4111:18;;:::i;:::-;4043:88;4151:10;4147:2;4140:22;3930:238;3887:281;;:::o;4174:129::-;4208:6;4235:20;;:::i;:::-;4225:30;;4264:33;4292:4;4284:6;4264:33;:::i;:::-;4174:129;;;:::o;4309:308::-;4371:4;4461:18;4453:6;4450:30;4447:56;;;4483:18;;:::i;:::-;4447:56;4521:29;4543:6;4521:29;:::i;:::-;4513:37;;4605:4;4599;4595:15;4587:23;;4309:308;;;:::o;4623:154::-;4707:6;4702:3;4697;4684:30;4769:1;4760:6;4755:3;4751:16;4744:27;4623:154;;;:::o;4783:412::-;4861:5;4886:66;4902:49;4944:6;4902:49;:::i;:::-;4886:66;:::i;:::-;4877:75;;4975:6;4968:5;4961:21;5013:4;5006:5;5002:16;5051:3;5042:6;5037:3;5033:16;5030:25;5027:112;;;5058:79;;:::i;:::-;5027:112;5148:41;5182:6;5177:3;5172;5148:41;:::i;:::-;4867:328;4783:412;;;;;:::o;5215:340::-;5271:5;5320:3;5313:4;5305:6;5301:17;5297:27;5287:122;;5328:79;;:::i;:::-;5287:122;5445:6;5432:20;5470:79;5545:3;5537:6;5530:4;5522:6;5518:17;5470:79;:::i;:::-;5461:88;;5277:278;5215:340;;;;:::o;5561:654::-;5639:6;5647;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5977:2;5966:9;5962:18;5949:32;6008:18;6000:6;5997:30;5994:117;;;6030:79;;:::i;:::-;5994:117;6135:63;6190:7;6181:6;6170:9;6166:22;6135:63;:::i;:::-;6125:73;;5920:288;5561:654;;;;;:::o;6221:182::-;6361:34;6357:1;6349:6;6345:14;6338:58;6221:182;:::o;6409:366::-;6551:3;6572:67;6636:2;6631:3;6572:67;:::i;:::-;6565:74;;6648:93;6737:3;6648:93;:::i;:::-;6766:2;6761:3;6757:12;6750:19;;6409:366;;;:::o;6781:419::-;6947:4;6985:2;6974:9;6970:18;6962:26;;7034:9;7028:4;7024:20;7020:1;7009:9;7005:17;6998:47;7062:131;7188:4;7062:131;:::i;:::-;7054:139;;6781:419;;;:::o;7206:180::-;7254:77;7251:1;7244:88;7351:4;7348:1;7341:15;7375:4;7372:1;7365:15;7392:320;7436:6;7473:1;7467:4;7463:12;7453:22;;7520:1;7514:4;7510:12;7541:18;7531:81;;7597:4;7589:6;7585:17;7575:27;;7531:81;7659:2;7651:6;7648:14;7628:18;7625:38;7622:84;;;7678:18;;:::i;:::-;7622:84;7443:269;7392:320;;;:::o;7718:166::-;7858:18;7854:1;7846:6;7842:14;7835:42;7718:166;:::o;7890:366::-;8032:3;8053:67;8117:2;8112:3;8053:67;:::i;:::-;8046:74;;8129:93;8218:3;8129:93;:::i;:::-;8247:2;8242:3;8238:12;8231:19;;7890:366;;;:::o;8262:419::-;8428:4;8466:2;8455:9;8451:18;8443:26;;8515:9;8509:4;8505:20;8501:1;8490:9;8486:17;8479:47;8543:131;8669:4;8543:131;:::i;:::-;8535:139;;8262:419;;;:::o;8687:225::-;8827:34;8823:1;8815:6;8811:14;8804:58;8896:8;8891:2;8883:6;8879:15;8872:33;8687:225;:::o;8918:366::-;9060:3;9081:67;9145:2;9140:3;9081:67;:::i;:::-;9074:74;;9157:93;9246:3;9157:93;:::i;:::-;9275:2;9270:3;9266:12;9259:19;;8918:366;;;:::o;9290:419::-;9456:4;9494:2;9483:9;9479:18;9471:26;;9543:9;9537:4;9533:20;9529:1;9518:9;9514:17;9507:47;9571:131;9697:4;9571:131;:::i;:::-;9563:139;;9290:419;;;:::o;9715:170::-;9855:22;9851:1;9843:6;9839:14;9832:46;9715:170;:::o;9891:366::-;10033:3;10054:67;10118:2;10113:3;10054:67;:::i;:::-;10047:74;;10130:93;10219:3;10130:93;:::i;:::-;10248:2;10243:3;10239:12;10232:19;;9891:366;;;:::o;10263:419::-;10429:4;10467:2;10456:9;10452:18;10444:26;;10516:9;10510:4;10506:20;10502:1;10491:9;10487:17;10480:47;10544:131;10670:4;10544:131;:::i;:::-;10536:139;;10263:419;;;:::o" }, "methodIdentifiers": { "messages(address)": "5fdd59f8", "owner()": "8da5cb5b", "pause()": "8456cb59", "paused()": "5c975abb", "renounceOwnership()": "715018a6", "sendMessage(address,string)": "de6f24bb", "throwError()": "2f7643a8", "transferOwnership(address)": "f2fde38b", "unpause()": "3f4ba83a" } }, "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Error\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"messages\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"throwError\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OnChainMessengerV2.sol\":\"OnChainMessengerV2\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0xe68ed7fb8766ed1e888291f881e36b616037f852b37d96877045319ad298ba87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d491a2ca79dbf44bc02e876e21a5847a2cbcc011188532ad8662cdc1c134a4e\",\"dweb:/ipfs/QmUQXhSV8ZvHLzfdG89ZNSh1nLrAYyjnNBLznJGwGcwVk8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/OnChainMessengerV2.sol\":{\"keccak256\":\"0x9d1a81b5cfb978cf9daa4cd2b811dfa8fe114dab30d5235c69b28b6dab2b8e87\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://81121308d7df88f9f4c47df7bbcfbc595b3ebbfd6fb9e028a15992024d72f3e2\",\"dweb:/ipfs/QmRJXWvZK5oM6vMQLqi481kDJXnSJZHWkpZNbUNHD4FiLw\"]}},\"version\":1}" } } }, "sources": { "@openzeppelin/contracts/access/Ownable.sol": { "ast": { "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", "exportedSymbols": { "Context": [ 589 ], "Ownable": [ 104 ] }, "id": 105, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "87:23:0" }, { "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "file": "../utils/Context.sol", "id": 2, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 105, "sourceUnit": 590, "src": "112:30:0", "symbolAliases": [], "unitAlias": "" }, { "abstract": true, "baseContracts": [ { "baseName": { "id": 4, "name": "Context", "nodeType": "IdentifierPath", "referencedDeclaration": 589, "src": "668:7:0" }, "id": 5, "nodeType": "InheritanceSpecifier", "src": "668:7:0" } ], "canonicalName": "Ownable", "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 3, "nodeType": "StructuredDocumentation", "src": "144:494:0", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." }, "fullyImplemented": true, "id": 104, "linearizedBaseContracts": [ 104, 589 ], "name": "Ownable", "nameLocation": "657:7:0", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 7, "mutability": "mutable", "name": "_owner", "nameLocation": "698:6:0", "nodeType": "VariableDeclaration", "scope": 104, "src": "682:22:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 6, "name": "address", "nodeType": "ElementaryTypeName", "src": "682:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "private" }, { "anonymous": false, "id": 13, "name": "OwnershipTransferred", "nameLocation": "717:20:0", "nodeType": "EventDefinition", "parameters": { "id": 12, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 9, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "754:13:0", "nodeType": "VariableDeclaration", "scope": 13, "src": "738:29:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 8, "name": "address", "nodeType": "ElementaryTypeName", "src": "738:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 11, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "785:8:0", "nodeType": "VariableDeclaration", "scope": 13, "src": "769:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 10, "name": "address", "nodeType": "ElementaryTypeName", "src": "769:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "737:57:0" }, "src": "711:84:0" }, { "body": { "id": 22, "nodeType": "Block", "src": "911:49:0", "statements": [ { "expression": { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 18, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "940:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "940:12:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 17, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, "src": "921:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 20, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "921:32:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21, "nodeType": "ExpressionStatement", "src": "921:32:0" } ] }, "documentation": { "id": 14, "nodeType": "StructuredDocumentation", "src": "801:91:0", "text": " @dev Initializes the contract setting the deployer as the initial owner." }, "id": 23, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 15, "nodeType": "ParameterList", "parameters": [], "src": "908:2:0" }, "returnParameters": { "id": 16, "nodeType": "ParameterList", "parameters": [], "src": "911:0:0" }, "scope": 104, "src": "897:63:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 31, "nodeType": "Block", "src": "1091:30:0", "statements": [ { "expression": { "id": 29, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7, "src": "1108:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 28, "id": 30, "nodeType": "Return", "src": "1101:13:0" } ] }, "documentation": { "id": 24, "nodeType": "StructuredDocumentation", "src": "966:65:0", "text": " @dev Returns the address of the current owner." }, "functionSelector": "8da5cb5b", "id": 32, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", "nameLocation": "1045:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 25, "nodeType": "ParameterList", "parameters": [], "src": "1050:2:0" }, "returnParameters": { "id": 28, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 27, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 32, "src": "1082:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26, "name": "address", "nodeType": "ElementaryTypeName", "src": "1082:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "1081:9:0" }, "scope": 104, "src": "1036:85:0", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { "id": 45, "nodeType": "Block", "src": "1230:96:0", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 40, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 36, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 32, "src": "1248:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 37, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1248:7:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 38, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "1259:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 39, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1259:12:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1248:23:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", "id": 41, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1273:34:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\"" }, "value": "Ownable: caller is not the owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], "id": 35, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1240:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 42, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1240:68:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 43, "nodeType": "ExpressionStatement", "src": "1240:68:0" }, { "id": 44, "nodeType": "PlaceholderStatement", "src": "1318:1:0" } ] }, "documentation": { "id": 33, "nodeType": "StructuredDocumentation", "src": "1127:77:0", "text": " @dev Throws if called by any account other than the owner." }, "id": 46, "name": "onlyOwner", "nameLocation": "1218:9:0", "nodeType": "ModifierDefinition", "parameters": { "id": 34, "nodeType": "ParameterList", "parameters": [], "src": "1227:2:0" }, "src": "1209:117:0", "virtual": false, "visibility": "internal" }, { "body": { "id": 59, "nodeType": "Block", "src": "1722:47:0", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "hexValue": "30", "id": 55, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1759:1:0", "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": 54, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1751:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 53, "name": "address", "nodeType": "ElementaryTypeName", "src": "1751:7:0", "typeDescriptions": {} } }, "id": 56, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1751:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 52, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, "src": "1732:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 57, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1732:30:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 58, "nodeType": "ExpressionStatement", "src": "1732:30:0" } ] }, "documentation": { "id": 47, "nodeType": "StructuredDocumentation", "src": "1332:331:0", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." }, "functionSelector": "715018a6", "id": 60, "implemented": true, "kind": "function", "modifiers": [ { "id": 50, "kind": "modifierInvocation", "modifierName": { "id": 49, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 46, "src": "1712:9:0" }, "nodeType": "ModifierInvocation", "src": "1712:9:0" } ], "name": "renounceOwnership", "nameLocation": "1677:17:0", "nodeType": "FunctionDefinition", "parameters": { "id": 48, "nodeType": "ParameterList", "parameters": [], "src": "1694:2:0" }, "returnParameters": { "id": 51, "nodeType": "ParameterList", "parameters": [], "src": "1722:0:0" }, "scope": 104, "src": "1668:101:0", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "body": { "id": 82, "nodeType": "Block", "src": "1988:128:0", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 74, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 69, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 63, "src": "2006:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 72, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2026:1:0", "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": 71, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2018:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 70, "name": "address", "nodeType": "ElementaryTypeName", "src": "2018:7:0", "typeDescriptions": {} } }, "id": 73, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2018:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2006:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", "id": 75, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2030:40:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\"" }, "value": "Ownable: new owner is the zero address" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], "id": 68, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1998:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 76, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1998:73:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 77, "nodeType": "ExpressionStatement", "src": "1998:73:0" }, { "expression": { "arguments": [ { "id": 79, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 63, "src": "2100:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 78, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103, "src": "2081:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 80, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2081:28:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 81, "nodeType": "ExpressionStatement", "src": "2081:28:0" } ] }, "documentation": { "id": 61, "nodeType": "StructuredDocumentation", "src": "1775:138:0", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", "id": 83, "implemented": true, "kind": "function", "modifiers": [ { "id": 66, "kind": "modifierInvocation", "modifierName": { "id": 65, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 46, "src": "1978:9:0" }, "nodeType": "ModifierInvocation", "src": "1978:9:0" } ], "name": "transferOwnership", "nameLocation": "1927:17:0", "nodeType": "FunctionDefinition", "parameters": { "id": 64, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 63, "mutability": "mutable", "name": "newOwner", "nameLocation": "1953:8:0", "nodeType": "VariableDeclaration", "scope": 83, "src": "1945:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 62, "name": "address", "nodeType": "ElementaryTypeName", "src": "1945:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "1944:18:0" }, "returnParameters": { "id": 67, "nodeType": "ParameterList", "parameters": [], "src": "1988:0:0" }, "scope": 104, "src": "1918:198:0", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "body": { "id": 102, "nodeType": "Block", "src": "2333:124:0", "statements": [ { "assignments": [ 90 ], "declarations": [ { "constant": false, "id": 90, "mutability": "mutable", "name": "oldOwner", "nameLocation": "2351:8:0", "nodeType": "VariableDeclaration", "scope": 102, "src": "2343:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 89, "name": "address", "nodeType": "ElementaryTypeName", "src": "2343:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 92, "initialValue": { "id": 91, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7, "src": "2362:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "2343:25:0" }, { "expression": { "id": 95, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 93, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7, "src": "2378:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 94, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 86, "src": "2387:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2378:17:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 96, "nodeType": "ExpressionStatement", "src": "2378:17:0" }, { "eventCall": { "arguments": [ { "id": 98, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90, "src": "2431:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 99, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 86, "src": "2441:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 97, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13, "src": "2410:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 100, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2410:40:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 101, "nodeType": "EmitStatement", "src": "2405:45:0" } ] }, "documentation": { "id": 84, "nodeType": "StructuredDocumentation", "src": "2122:143:0", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." }, "id": 103, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", "nameLocation": "2279:18:0", "nodeType": "FunctionDefinition", "parameters": { "id": 87, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 86, "mutability": "mutable", "name": "newOwner", "nameLocation": "2306:8:0", "nodeType": "VariableDeclaration", "scope": 103, "src": "2298:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 85, "name": "address", "nodeType": "ElementaryTypeName", "src": "2298:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "2297:18:0" }, "returnParameters": { "id": 88, "nodeType": "ParameterList", "parameters": [], "src": "2333:0:0" }, "scope": 104, "src": "2270:187:0", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], "scope": 105, "src": "639:1820:0", "usedErrors": [] } ], "src": "87:2373:0" }, "id": 0 }, "@openzeppelin/contracts/proxy/utils/Initializable.sol": { "ast": { "absolutePath": "@openzeppelin/contracts/proxy/utils/Initializable.sol", "exportedSymbols": { "Address": [ 567 ], "Initializable": [ 178 ] }, "id": 179, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 106, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "98:23:1" }, { "absolutePath": "@openzeppelin/contracts/utils/Address.sol", "file": "../../utils/Address.sol", "id": 107, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 179, "sourceUnit": 568, "src": "123:33:1", "symbolAliases": [], "unitAlias": "" }, { "abstract": true, "baseContracts": [], "canonicalName": "Initializable", "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 108, "nodeType": "StructuredDocumentation", "src": "158:1490:1", "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To initialize the implementation contract, you can either invoke the\n initializer manually, or you can include a constructor to automatically mark it as initialized when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() initializer {}\n ```\n ====" }, "fullyImplemented": true, "id": 178, "linearizedBaseContracts": [ 178 ], "name": "Initializable", "nameLocation": "1667:13:1", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "documentation": { "id": 109, "nodeType": "StructuredDocumentation", "src": "1687:73:1", "text": " @dev Indicates that the contract has been initialized." }, "id": 111, "mutability": "mutable", "name": "_initialized", "nameLocation": "1778:12:1", "nodeType": "VariableDeclaration", "scope": 178, "src": "1765:25:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 110, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1765:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "private" }, { "constant": false, "documentation": { "id": 112, "nodeType": "StructuredDocumentation", "src": "1797:91:1", "text": " @dev Indicates that the contract is in the process of being initialized." }, "id": 114, "mutability": "mutable", "name": "_initializing", "nameLocation": "1906:13:1", "nodeType": "VariableDeclaration", "scope": 178, "src": "1893:26:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 113, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1893:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "private" }, { "body": { "id": 151, "nodeType": "Block", "src": "2047:637:1", "statements": [ { "expression": { "arguments": [ { "condition": { "id": 118, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 114, "src": "2336:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "id": 122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "2371:13:1", "subExpression": { "id": 121, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 111, "src": "2372:12:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "2336:48:1", "trueExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 119, "name": "_isConstructor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "2352:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, "id": 120, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2352:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", "id": 124, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2386:48:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", "typeString": "literal_string \"Initializable: contract is already initialized\"" }, "value": "Initializable: contract is already initialized" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", "typeString": "literal_string \"Initializable: contract is already initialized\"" } ], "id": 117, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2328:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 125, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2328:107:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 126, "nodeType": "ExpressionStatement", "src": "2328:107:1" }, { "assignments": [ 128 ], "declarations": [ { "constant": false, "id": 128, "mutability": "mutable", "name": "isTopLevelCall", "nameLocation": "2451:14:1", "nodeType": "VariableDeclaration", "scope": 151, "src": "2446:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 127, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2446:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "id": 131, "initialValue": { "id": 130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "2468:14:1", "subExpression": { "id": 129, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 114, "src": "2469:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "2446:36:1" }, { "condition": { "id": 132, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 128, "src": "2496:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 142, "nodeType": "IfStatement", "src": "2492:98:1", "trueBody": { "id": 141, "nodeType": "Block", "src": "2512:78:1", "statements": [ { "expression": { "id": 135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 133, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 114, "src": "2526:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 134, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2542:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "2526:20:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 136, "nodeType": "ExpressionStatement", "src": "2526:20:1" }, { "expression": { "id": 139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 137, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 111, "src": "2560:12:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2575:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "2560:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 140, "nodeType": "ExpressionStatement", "src": "2560:19:1" } ] } }, { "id": 143, "nodeType": "PlaceholderStatement", "src": "2600:1:1" }, { "condition": { "id": 144, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 128, "src": "2616:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 150, "nodeType": "IfStatement", "src": "2612:66:1", "trueBody": { "id": 149, "nodeType": "Block", "src": "2632:46:1", "statements": [ { "expression": { "id": 147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 145, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 114, "src": "2646:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "66616c7365", "id": 146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2662:5:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "2646:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 148, "nodeType": "ExpressionStatement", "src": "2646:21:1" } ] } } ] }, "documentation": { "id": 115, "nodeType": "StructuredDocumentation", "src": "1926:93:1", "text": " @dev Modifier to protect an initializer function from being invoked twice." }, "id": 152, "name": "initializer", "nameLocation": "2033:11:1", "nodeType": "ModifierDefinition", "parameters": { "id": 116, "nodeType": "ParameterList", "parameters": [], "src": "2044:2:1" }, "src": "2024:660:1", "virtual": false, "visibility": "internal" }, { "body": { "id": 161, "nodeType": "Block", "src": "2901:97:1", "statements": [ { "expression": { "arguments": [ { "id": 156, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 114, "src": "2919:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67", "id": 157, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2934:45:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", "typeString": "literal_string \"Initializable: contract is not initializing\"" }, "value": "Initializable: contract is not initializing" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", "typeString": "literal_string \"Initializable: contract is not initializing\"" } ], "id": 155, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2911:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 158, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2911:69:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 159, "nodeType": "ExpressionStatement", "src": "2911:69:1" }, { "id": 160, "nodeType": "PlaceholderStatement", "src": "2990:1:1" } ] }, "documentation": { "id": 153, "nodeType": "StructuredDocumentation", "src": "2690:178:1", "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} modifier, directly or indirectly." }, "id": 162, "name": "onlyInitializing", "nameLocation": "2882:16:1", "nodeType": "ModifierDefinition", "parameters": { "id": 154, "nodeType": "ParameterList", "parameters": [], "src": "2898:2:1" }, "src": "2873:125:1", "virtual": false, "visibility": "internal" }, { "body": { "id": 176, "nodeType": "Block", "src": "3058:58:1", "statements": [ { "expression": { "id": 174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "3075:34:1", "subExpression": { "arguments": [ { "arguments": [ { "id": 171, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "3103:4:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Initializable_$178", "typeString": "contract Initializable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Initializable_$178", "typeString": "contract Initializable" } ], "id": 170, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3095:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 169, "name": "address", "nodeType": "ElementaryTypeName", "src": "3095:7:1", "typeDescriptions": {} } }, "id": 172, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3095:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 167, "name": "Address", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "3076:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Address_$567_$", "typeString": "type(library Address)" } }, "id": 168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isContract", "nodeType": "MemberAccess", "referencedDeclaration": 290, "src": "3076:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 173, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3076:33:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 166, "id": 175, "nodeType": "Return", "src": "3068:41:1" } ] }, "id": 177, "implemented": true, "kind": "function", "modifiers": [], "name": "_isConstructor", "nameLocation": "3013:14:1", "nodeType": "FunctionDefinition", "parameters": { "id": 163, "nodeType": "ParameterList", "parameters": [], "src": "3027:2:1" }, "returnParameters": { "id": 166, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 165, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 177, "src": "3052:4:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 164, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3052:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "3051:6:1" }, "scope": 178, "src": "3004:112:1", "stateMutability": "view", "virtual": false, "visibility": "private" } ], "scope": 179, "src": "1649:1469:1", "usedErrors": [] } ], "src": "98:3021:1" }, "id": 1 }, "@openzeppelin/contracts/security/Pausable.sol": { "ast": { "absolutePath": "@openzeppelin/contracts/security/Pausable.sol", "exportedSymbols": { "Context": [ 589 ], "Pausable": [ 270 ] }, "id": 271, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 180, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "90:23:2" }, { "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "file": "../utils/Context.sol", "id": 181, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 271, "sourceUnit": 590, "src": "115:30:2", "symbolAliases": [], "unitAlias": "" }, { "abstract": true, "baseContracts": [ { "baseName": { "id": 183, "name": "Context", "nodeType": "IdentifierPath", "referencedDeclaration": 589, "src": "617:7:2" }, "id": 184, "nodeType": "InheritanceSpecifier", "src": "617:7:2" } ], "canonicalName": "Pausable", "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 182, "nodeType": "StructuredDocumentation", "src": "147:439:2", "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." }, "fullyImplemented": true, "id": 270, "linearizedBaseContracts": [ 270, 589 ], "name": "Pausable", "nameLocation": "605:8:2", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": { "id": 185, "nodeType": "StructuredDocumentation", "src": "631:73:2", "text": " @dev Emitted when the pause is triggered by `account`." }, "id": 189, "name": "Paused", "nameLocation": "715:6:2", "nodeType": "EventDefinition", "parameters": { "id": 188, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 187, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "730:7:2", "nodeType": "VariableDeclaration", "scope": 189, "src": "722:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 186, "name": "address", "nodeType": "ElementaryTypeName", "src": "722:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "721:17:2" }, "src": "709:30:2" }, { "anonymous": false, "documentation": { "id": 190, "nodeType": "StructuredDocumentation", "src": "745:70:2", "text": " @dev Emitted when the pause is lifted by `account`." }, "id": 194, "name": "Unpaused", "nameLocation": "826:8:2", "nodeType": "EventDefinition", "parameters": { "id": 193, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 192, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "843:7:2", "nodeType": "VariableDeclaration", "scope": 194, "src": "835:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 191, "name": "address", "nodeType": "ElementaryTypeName", "src": "835:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "834:17:2" }, "src": "820:32:2" }, { "constant": false, "id": 196, "mutability": "mutable", "name": "_paused", "nameLocation": "871:7:2", "nodeType": "VariableDeclaration", "scope": 270, "src": "858:20:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 195, "name": "bool", "nodeType": "ElementaryTypeName", "src": "858:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "private" }, { "body": { "id": 204, "nodeType": "Block", "src": "971:32:2", "statements": [ { "expression": { "id": 202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 200, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 196, "src": "981:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "66616c7365", "id": 201, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "991:5:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "981:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 203, "nodeType": "ExpressionStatement", "src": "981:15:2" } ] }, "documentation": { "id": 197, "nodeType": "StructuredDocumentation", "src": "885:67:2", "text": " @dev Initializes the contract in unpaused state." }, "id": 205, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 198, "nodeType": "ParameterList", "parameters": [], "src": "968:2:2" }, "returnParameters": { "id": 199, "nodeType": "ParameterList", "parameters": [], "src": "971:0:2" }, "scope": 270, "src": "957:46:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 213, "nodeType": "Block", "src": "1151:31:2", "statements": [ { "expression": { "id": 211, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 196, "src": "1168:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 210, "id": 212, "nodeType": "Return", "src": "1161:14:2" } ] }, "documentation": { "id": 206, "nodeType": "StructuredDocumentation", "src": "1009:84:2", "text": " @dev Returns true if the contract is paused, and false otherwise." }, "functionSelector": "5c975abb", "id": 214, "implemented": true, "kind": "function", "modifiers": [], "name": "paused", "nameLocation": "1107:6:2", "nodeType": "FunctionDefinition", "parameters": { "id": 207, "nodeType": "ParameterList", "parameters": [], "src": "1113:2:2" }, "returnParameters": { "id": 210, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 209, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 214, "src": "1145:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 208, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1145:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "1144:6:2" }, "scope": 270, "src": "1098:84:2", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { "id": 225, "nodeType": "Block", "src": "1393:66:2", "statements": [ { "expression": { "arguments": [ { "id": 220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1411:9:2", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 218, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 214, "src": "1412:6:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, "id": 219, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1412:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "5061757361626c653a20706175736564", "id": 221, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1422:18:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", "typeString": "literal_string \"Pausable: paused\"" }, "value": "Pausable: paused" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", "typeString": "literal_string \"Pausable: paused\"" } ], "id": 217, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1403:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1403:38:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 223, "nodeType": "ExpressionStatement", "src": "1403:38:2" }, { "id": 224, "nodeType": "PlaceholderStatement", "src": "1451:1:2" } ] }, "documentation": { "id": 215, "nodeType": "StructuredDocumentation", "src": "1188:175:2", "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." }, "id": 226, "name": "whenNotPaused", "nameLocation": "1377:13:2", "nodeType": "ModifierDefinition", "parameters": { "id": 216, "nodeType": "ParameterList", "parameters": [], "src": "1390:2:2" }, "src": "1368:91:2", "virtual": false, "visibility": "internal" }, { "body": { "id": 236, "nodeType": "Block", "src": "1659:69:2", "statements": [ { "expression": { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 230, "name": "paused", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 214, "src": "1677:6:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, "id": 231, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1677:8:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "5061757361626c653a206e6f7420706175736564", "id": 232, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1687:22:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", "typeString": "literal_string \"Pausable: not paused\"" }, "value": "Pausable: not paused" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", "typeString": "literal_string \"Pausable: not paused\"" } ], "id": 229, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1669:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 233, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1669:41:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 234, "nodeType": "ExpressionStatement", "src": "1669:41:2" }, { "id": 235, "nodeType": "PlaceholderStatement", "src": "1720:1:2" } ] }, "documentation": { "id": 227, "nodeType": "StructuredDocumentation", "src": "1465:167:2", "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." }, "id": 237, "name": "whenPaused", "nameLocation": "1646:10:2", "nodeType": "ModifierDefinition", "parameters": { "id": 228, "nodeType": "ParameterList", "parameters": [], "src": "1656:2:2" }, "src": "1637:91:2", "virtual": false, "visibility": "internal" }, { "body": { "id": 252, "nodeType": "Block", "src": "1912:66:2", "statements": [ { "expression": { "id": 245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 243, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 196, "src": "1922:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 244, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1932:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "1922:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 246, "nodeType": "ExpressionStatement", "src": "1922:14:2" }, { "eventCall": { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 248, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "1958:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 249, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1958:12:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 247, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 189, "src": "1951:6:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 250, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1951:20:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 251, "nodeType": "EmitStatement", "src": "1946:25:2" } ] }, "documentation": { "id": 238, "nodeType": "StructuredDocumentation", "src": "1734:124:2", "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." }, "id": 253, "implemented": true, "kind": "function", "modifiers": [ { "id": 241, "kind": "modifierInvocation", "modifierName": { "id": 240, "name": "whenNotPaused", "nodeType": "IdentifierPath", "referencedDeclaration": 226, "src": "1898:13:2" }, "nodeType": "ModifierInvocation", "src": "1898:13:2" } ], "name": "_pause", "nameLocation": "1872:6:2", "nodeType": "FunctionDefinition", "parameters": { "id": 239, "nodeType": "ParameterList", "parameters": [], "src": "1878:2:2" }, "returnParameters": { "id": 242, "nodeType": "ParameterList", "parameters": [], "src": "1912:0:2" }, "scope": 270, "src": "1863:115:2", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "body": { "id": 268, "nodeType": "Block", "src": "2158:69:2", "statements": [ { "expression": { "id": 261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 259, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 196, "src": "2168:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "66616c7365", "id": 260, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2178:5:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "2168:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 262, "nodeType": "ExpressionStatement", "src": "2168:15:2" }, { "eventCall": { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 264, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "2207:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 265, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2207:12:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 263, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 194, "src": "2198:8:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 266, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2198:22:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 267, "nodeType": "EmitStatement", "src": "2193:27:2" } ] }, "documentation": { "id": 254, "nodeType": "StructuredDocumentation", "src": "1984:121:2", "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." }, "id": 269, "implemented": true, "kind": "function", "modifiers": [ { "id": 257, "kind": "modifierInvocation", "modifierName": { "id": 256, "name": "whenPaused", "nodeType": "IdentifierPath", "referencedDeclaration": 237, "src": "2147:10:2" }, "nodeType": "ModifierInvocation", "src": "2147:10:2" } ], "name": "_unpause", "nameLocation": "2119:8:2", "nodeType": "FunctionDefinition", "parameters": { "id": 255, "nodeType": "ParameterList", "parameters": [], "src": "2127:2:2" }, "returnParameters": { "id": 258, "nodeType": "ParameterList", "parameters": [], "src": "2158:0:2" }, "scope": 270, "src": "2110:117:2", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], "scope": 271, "src": "587:1642:2", "usedErrors": [] } ], "src": "90:2140:2" }, "id": 2 }, "@openzeppelin/contracts/utils/Address.sol": { "ast": { "absolutePath": "@openzeppelin/contracts/utils/Address.sol", "exportedSymbols": { "Address": [ 567 ] }, "id": 568, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 272, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "86:23:3" }, { "abstract": false, "baseContracts": [], "canonicalName": "Address", "contractDependencies": [], "contractKind": "library", "documentation": { "id": 273, "nodeType": "StructuredDocumentation", "src": "111:67:3", "text": " @dev Collection of functions related to the address type" }, "fullyImplemented": true, "id": 567, "linearizedBaseContracts": [ 567 ], "name": "Address", "nameLocation": "187:7:3", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 289, "nodeType": "Block", "src": "837:311:3", "statements": [ { "assignments": [ 282 ], "declarations": [ { "constant": false, "id": 282, "mutability": "mutable", "name": "size", "nameLocation": "1042:4:3", "nodeType": "VariableDeclaration", "scope": 289, "src": "1034:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 281, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1034:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 283, "nodeType": "VariableDeclarationStatement", "src": "1034:12:3" }, { "AST": { "nodeType": "YulBlock", "src": "1065:52:3", "statements": [ { "nodeType": "YulAssignment", "src": "1079:28:3", "value": { "arguments": [ { "name": "account", "nodeType": "YulIdentifier", "src": "1099:7:3" } ], "functionName": { "name": "extcodesize", "nodeType": "YulIdentifier", "src": "1087:11:3" }, "nodeType": "YulFunctionCall", "src": "1087:20:3" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "1079:4:3" } ] } ] }, "evmVersion": "london", "externalReferences": [ { "declaration": 276, "isOffset": false, "isSlot": false, "src": "1099:7:3", "valueSize": 1 }, { "declaration": 282, "isOffset": false, "isSlot": false, "src": "1079:4:3", "valueSize": 1 } ], "id": 284, "nodeType": "InlineAssembly", "src": "1056:61:3" }, { "expression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 287, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 285, "name": "size", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 282, "src": "1133:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 286, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1140:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1133:8:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 280, "id": 288, "nodeType": "Return", "src": "1126:15:3" } ] }, "documentation": { "id": 274, "nodeType": "StructuredDocumentation", "src": "201:565:3", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" }, "id": 290, "implemented": true, "kind": "function", "modifiers": [], "name": "isContract", "nameLocation": "780:10:3", "nodeType": "FunctionDefinition", "parameters": { "id": 277, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 276, "mutability": "mutable", "name": "account", "nameLocation": "799:7:3", "nodeType": "VariableDeclaration", "scope": 290, "src": "791:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 275, "name": "address", "nodeType": "ElementaryTypeName", "src": "791:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "790:17:3" }, "returnParameters": { "id": 280, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 279, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 290, "src": "831:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 278, "name": "bool", "nodeType": "ElementaryTypeName", "src": "831:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "830:6:3" }, "scope": 567, "src": "771:377:3", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { "id": 323, "nodeType": "Block", "src": "2136:241:3", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "arguments": [ { "id": 301, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "2162:4:3", "typeDescriptions": { "typeIdentifier": "t_contract$_Address_$567", "typeString": "library Address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Address_$567", "typeString": "library Address" } ], "id": 300, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2154:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 299, "name": "address", "nodeType": "ElementaryTypeName", "src": "2154:7:3", "typeDescriptions": {} } }, "id": 302, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2154:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", "src": "2154:21:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "id": 304, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 295, "src": "2179:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2154:31:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", "id": 306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2187:31:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", "typeString": "literal_string \"Address: insufficient balance\"" }, "value": "Address: insufficient balance" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", "typeString": "literal_string \"Address: insufficient balance\"" } ], "id": 298, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2146:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 307, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2146:73:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 308, "nodeType": "ExpressionStatement", "src": "2146:73:3" }, { "assignments": [ 310, null ], "declarations": [ { "constant": false, "id": 310, "mutability": "mutable", "name": "success", "nameLocation": "2236:7:3", "nodeType": "VariableDeclaration", "scope": 323, "src": "2231:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 309, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2231:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, null ], "id": 317, "initialValue": { "arguments": [ { "hexValue": "", "id": 315, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2279:2:3", "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": 311, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 293, "src": "2249:9:3", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", "src": "2249:14:3", "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": 314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": [ "value" ], "nodeType": "FunctionCallOptions", "options": [ { "id": 313, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 295, "src": "2271:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "src": "2249:29:3", "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": 316, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2249:33:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "2230:52:3" }, { "expression": { "arguments": [ { "id": 319, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 310, "src": "2300:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", "id": 320, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2309:60:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" }, "value": "Address: unable to send value, recipient may have reverted" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" } ], "id": 318, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2292:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 321, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2292:78:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 322, "nodeType": "ExpressionStatement", "src": "2292:78:3" } ] }, "documentation": { "id": 291, "nodeType": "StructuredDocumentation", "src": "1154:906:3", "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://diligence.consensys.net/posts/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.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." }, "id": 324, "implemented": true, "kind": "function", "modifiers": [], "name": "sendValue", "nameLocation": "2074:9:3", "nodeType": "FunctionDefinition", "parameters": { "id": 296, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 293, "mutability": "mutable", "name": "recipient", "nameLocation": "2100:9:3", "nodeType": "VariableDeclaration", "scope": 324, "src": "2084:25:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 292, "name": "address", "nodeType": "ElementaryTypeName", "src": "2084:15:3", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "visibility": "internal" }, { "constant": false, "id": 295, "mutability": "mutable", "name": "amount", "nameLocation": "2119:6:3", "nodeType": "VariableDeclaration", "scope": 324, "src": "2111:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 294, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2111:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2083:43:3" }, "returnParameters": { "id": 297, "nodeType": "ParameterList", "parameters": [], "src": "2136:0:3" }, "scope": 567, "src": "2065:312:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 340, "nodeType": "Block", "src": "3208:84:3", "statements": [ { "expression": { "arguments": [ { "id": 335, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 327, "src": "3238:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 336, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 329, "src": "3246:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", "id": 337, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3252:32:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", "typeString": "literal_string \"Address: low-level call failed\"" }, "value": "Address: low-level call failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", "typeString": "literal_string \"Address: low-level call failed\"" } ], "id": 334, "name": "functionCall", "nodeType": "Identifier", "overloadedDeclarations": [ 341, 361 ], "referencedDeclaration": 361, "src": "3225:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, "id": 338, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3225:60:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "functionReturnParameters": 333, "id": 339, "nodeType": "Return", "src": "3218:67:3" } ] }, "documentation": { "id": 325, "nodeType": "StructuredDocumentation", "src": "2383:731:3", "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, it is bubbled up by this\n function (like regular Solidity function calls).\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.\n _Available since v3.1._" }, "id": 341, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCall", "nameLocation": "3128:12:3", "nodeType": "FunctionDefinition", "parameters": { "id": 330, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 327, "mutability": "mutable", "name": "target", "nameLocation": "3149:6:3", "nodeType": "VariableDeclaration", "scope": 341, "src": "3141:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 326, "name": "address", "nodeType": "ElementaryTypeName", "src": "3141:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 329, "mutability": "mutable", "name": "data", "nameLocation": "3170:4:3", "nodeType": "VariableDeclaration", "scope": 341, "src": "3157:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 328, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3157:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "3140:35:3" }, "returnParameters": { "id": 333, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 332, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 341, "src": "3194:12:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 331, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3194:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "3193:14:3" }, "scope": 567, "src": "3119:173:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 360, "nodeType": "Block", "src": "3661:76:3", "statements": [ { "expression": { "arguments": [ { "id": 354, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 344, "src": "3700:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 355, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 346, "src": "3708:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "hexValue": "30", "id": 356, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3714:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "id": 357, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 348, "src": "3717:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "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" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 353, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ 381, 431 ], "referencedDeclaration": 431, "src": "3678:21:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, "id": 358, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3678:52:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "functionReturnParameters": 352, "id": 359, "nodeType": "Return", "src": "3671:59:3" } ] }, "documentation": { "id": 342, "nodeType": "StructuredDocumentation", "src": "3298:211:3", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, "id": 361, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCall", "nameLocation": "3523:12:3", "nodeType": "FunctionDefinition", "parameters": { "id": 349, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 344, "mutability": "mutable", "name": "target", "nameLocation": "3553:6:3", "nodeType": "VariableDeclaration", "scope": 361, "src": "3545:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 343, "name": "address", "nodeType": "ElementaryTypeName", "src": "3545:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 346, "mutability": "mutable", "name": "data", "nameLocation": "3582:4:3", "nodeType": "VariableDeclaration", "scope": 361, "src": "3569:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 345, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3569:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 348, "mutability": "mutable", "name": "errorMessage", "nameLocation": "3610:12:3", "nodeType": "VariableDeclaration", "scope": 361, "src": "3596:26:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 347, "name": "string", "nodeType": "ElementaryTypeName", "src": "3596:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "3535:93:3" }, "returnParameters": { "id": 352, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 351, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 361, "src": "3647:12:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 350, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3647:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "3646:14:3" }, "scope": 567, "src": "3514:223:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 380, "nodeType": "Block", "src": "4242:111:3", "statements": [ { "expression": { "arguments": [ { "id": 374, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 364, "src": "4281:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 375, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 366, "src": "4289:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 376, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 368, "src": "4295:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", "id": 377, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4302:43:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", "typeString": "literal_string \"Address: low-level call with value failed\"" }, "value": "Address: low-level call with value failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", "typeString": "literal_string \"Address: low-level call with value failed\"" } ], "id": 373, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [ 381, 431 ], "referencedDeclaration": 431, "src": "4259:21:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" } }, "id": 378, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4259:87:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "functionReturnParameters": 372, "id": 379, "nodeType": "Return", "src": "4252:94:3" } ] }, "documentation": { "id": 362, "nodeType": "StructuredDocumentation", "src": "3743:351:3", "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`.\n _Available since v3.1._" }, "id": 381, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCallWithValue", "nameLocation": "4108:21:3", "nodeType": "FunctionDefinition", "parameters": { "id": 369, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 364, "mutability": "mutable", "name": "target", "nameLocation": "4147:6:3", "nodeType": "VariableDeclaration", "scope": 381, "src": "4139:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 363, "name": "address", "nodeType": "ElementaryTypeName", "src": "4139:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 366, "mutability": "mutable", "name": "data", "nameLocation": "4176:4:3", "nodeType": "VariableDeclaration", "scope": 381, "src": "4163:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 365, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4163:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 368, "mutability": "mutable", "name": "value", "nameLocation": "4198:5:3", "nodeType": "VariableDeclaration", "scope": 381, "src": "4190:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 367, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4190:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "4129:80:3" }, "returnParameters": { "id": 372, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 371, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 381, "src": "4228:12:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 370, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4228:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "4227:14:3" }, "scope": 567, "src": "4099:254:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 430, "nodeType": "Block", "src": "4780:320:3", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "arguments": [ { "id": 398, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "4806:4:3", "typeDescriptions": { "typeIdentifier": "t_contract$_Address_$567", "typeString": "library Address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Address_$567", "typeString": "library Address" } ], "id": 397, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4798:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 396, "name": "address", "nodeType": "ElementaryTypeName", "src": "4798:7:3", "typeDescriptions": {} } }, "id": 399, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4798:13:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 400, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", "src": "4798:21:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "id": 401, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 388, "src": "4823:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4798:30:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", "id": 403, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4830:40:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", "typeString": "literal_string \"Address: insufficient balance for call\"" }, "value": "Address: insufficient balance for call" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", "typeString": "literal_string \"Address: insufficient balance for call\"" } ], "id": 395, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "4790:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 404, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4790:81:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 405, "nodeType": "ExpressionStatement", "src": "4790:81:3" }, { "expression": { "arguments": [ { "arguments": [ { "id": 408, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 384, "src": "4900:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 407, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 290, "src": "4889:10:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 409, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4889:18:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", "id": 410, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4909:31:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", "typeString": "literal_string \"Address: call to non-contract\"" }, "value": "Address: call to non-contract" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", "typeString": "literal_string \"Address: call to non-contract\"" } ], "id": 406, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "4881:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 411, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4881:60:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 412, "nodeType": "ExpressionStatement", "src": "4881:60:3" }, { "assignments": [ 414, 416 ], "declarations": [ { "constant": false, "id": 414, "mutability": "mutable", "name": "success", "nameLocation": "4958:7:3", "nodeType": "VariableDeclaration", "scope": 430, "src": "4953:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 413, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4953:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 416, "mutability": "mutable", "name": "returndata", "nameLocation": "4980:10:3", "nodeType": "VariableDeclaration", "scope": 430, "src": "4967:23:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 415, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4967:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 423, "initialValue": { "arguments": [ { "id": 421, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 386, "src": "5020:4:3", "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": 417, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 384, "src": "4994:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 418, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", "src": "4994:11:3", "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": 420, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": [ "value" ], "nodeType": "FunctionCallOptions", "options": [ { "id": 419, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 388, "src": "5013:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "src": "4994:25:3", "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": 422, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4994:31:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "4952:73:3" }, { "expression": { "arguments": [ { "id": 425, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 414, "src": "5059:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 426, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 416, "src": "5068:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 427, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 390, "src": "5080:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 424, "name": "verifyCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "5042:16:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" } }, "id": 428, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5042:51:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "functionReturnParameters": 394, "id": 429, "nodeType": "Return", "src": "5035:58:3" } ] }, "documentation": { "id": 382, "nodeType": "StructuredDocumentation", "src": "4359:237:3", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" }, "id": 431, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCallWithValue", "nameLocation": "4610:21:3", "nodeType": "FunctionDefinition", "parameters": { "id": 391, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 384, "mutability": "mutable", "name": "target", "nameLocation": "4649:6:3", "nodeType": "VariableDeclaration", "scope": 431, "src": "4641:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 383, "name": "address", "nodeType": "ElementaryTypeName", "src": "4641:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 386, "mutability": "mutable", "name": "data", "nameLocation": "4678:4:3", "nodeType": "VariableDeclaration", "scope": 431, "src": "4665:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 385, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4665:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 388, "mutability": "mutable", "name": "value", "nameLocation": "4700:5:3", "nodeType": "VariableDeclaration", "scope": 431, "src": "4692:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 387, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4692:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 390, "mutability": "mutable", "name": "errorMessage", "nameLocation": "4729:12:3", "nodeType": "VariableDeclaration", "scope": 431, "src": "4715:26:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 389, "name": "string", "nodeType": "ElementaryTypeName", "src": "4715:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "4631:116:3" }, "returnParameters": { "id": 394, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 393, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 431, "src": "4766:12:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 392, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4766:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "4765:14:3" }, "scope": 567, "src": "4601:499:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 447, "nodeType": "Block", "src": "5377:97:3", "statements": [ { "expression": { "arguments": [ { "id": 442, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 434, "src": "5413:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 443, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 436, "src": "5421:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", "id": 444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5427:39:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", "typeString": "literal_string \"Address: low-level static call failed\"" }, "value": "Address: low-level static call failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", "typeString": "literal_string \"Address: low-level static call failed\"" } ], "id": 441, "name": "functionStaticCall", "nodeType": "Identifier", "overloadedDeclarations": [ 448, 483 ], "referencedDeclaration": 483, "src": "5394:18:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" } }, "id": 445, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5394:73:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "functionReturnParameters": 440, "id": 446, "nodeType": "Return", "src": "5387:80:3" } ] }, "documentation": { "id": 432, "nodeType": "StructuredDocumentation", "src": "5106:166:3", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, "id": 448, "implemented": true, "kind": "function", "modifiers": [], "name": "functionStaticCall", "nameLocation": "5286:18:3", "nodeType": "FunctionDefinition", "parameters": { "id": 437, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 434, "mutability": "mutable", "name": "target", "nameLocation": "5313:6:3", "nodeType": "VariableDeclaration", "scope": 448, "src": "5305:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 433, "name": "address", "nodeType": "ElementaryTypeName", "src": "5305:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 436, "mutability": "mutable", "name": "data", "nameLocation": "5334:4:3", "nodeType": "VariableDeclaration", "scope": 448, "src": "5321:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 435, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5321:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "5304:35:3" }, "returnParameters": { "id": 440, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 439, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 448, "src": "5363:12:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 438, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5363:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "5362:14:3" }, "scope": 567, "src": "5277:197:3", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { "id": 482, "nodeType": "Block", "src": "5816:228:3", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "id": 462, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 451, "src": "5845:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 461, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 290, "src": "5834:10:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 463, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5834:18:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", "id": 464, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5854:38:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", "typeString": "literal_string \"Address: static call to non-contract\"" }, "value": "Address: static call to non-contract" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", "typeString": "literal_string \"Address: static call to non-contract\"" } ], "id": 460, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "5826:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 465, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5826:67:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 466, "nodeType": "ExpressionStatement", "src": "5826:67:3" }, { "assignments": [ 468, 470 ], "declarations": [ { "constant": false, "id": 468, "mutability": "mutable", "name": "success", "nameLocation": "5910:7:3", "nodeType": "VariableDeclaration", "scope": 482, "src": "5905:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 467, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5905:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 470, "mutability": "mutable", "name": "returndata", "nameLocation": "5932:10:3", "nodeType": "VariableDeclaration", "scope": 482, "src": "5919:23:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 469, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5919:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 475, "initialValue": { "arguments": [ { "id": 473, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "5964:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "id": 471, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 451, "src": "5946:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "staticcall", "nodeType": "MemberAccess", "src": "5946:17:3", "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": 474, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5946:23:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "5904:65:3" }, { "expression": { "arguments": [ { "id": 477, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 468, "src": "6003:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 478, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 470, "src": "6012:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 479, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 455, "src": "6024:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 476, "name": "verifyCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "5986:16:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" } }, "id": 480, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5986:51:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "functionReturnParameters": 459, "id": 481, "nodeType": "Return", "src": "5979:58:3" } ] }, "documentation": { "id": 449, "nodeType": "StructuredDocumentation", "src": "5480:173:3", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" }, "id": 483, "implemented": true, "kind": "function", "modifiers": [], "name": "functionStaticCall", "nameLocation": "5667:18:3", "nodeType": "FunctionDefinition", "parameters": { "id": 456, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 451, "mutability": "mutable", "name": "target", "nameLocation": "5703:6:3", "nodeType": "VariableDeclaration", "scope": 483, "src": "5695:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 450, "name": "address", "nodeType": "ElementaryTypeName", "src": "5695:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 453, "mutability": "mutable", "name": "data", "nameLocation": "5732:4:3", "nodeType": "VariableDeclaration", "scope": 483, "src": "5719:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 452, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5719:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 455, "mutability": "mutable", "name": "errorMessage", "nameLocation": "5760:12:3", "nodeType": "VariableDeclaration", "scope": 483, "src": "5746:26:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 454, "name": "string", "nodeType": "ElementaryTypeName", "src": "5746:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "5685:93:3" }, "returnParameters": { "id": 459, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 458, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 483, "src": "5802:12:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 457, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5802:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "5801:14:3" }, "scope": 567, "src": "5658:386:3", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { "id": 499, "nodeType": "Block", "src": "6320:101:3", "statements": [ { "expression": { "arguments": [ { "id": 494, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 486, "src": "6358:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 495, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 488, "src": "6366:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", "id": 496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6372:41:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", "typeString": "literal_string \"Address: low-level delegate call failed\"" }, "value": "Address: low-level delegate call failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", "typeString": "literal_string \"Address: low-level delegate call failed\"" } ], "id": 493, "name": "functionDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [ 500, 535 ], "referencedDeclaration": 535, "src": "6337:20:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" } }, "id": 497, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6337:77:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "functionReturnParameters": 492, "id": 498, "nodeType": "Return", "src": "6330:84:3" } ] }, "documentation": { "id": 484, "nodeType": "StructuredDocumentation", "src": "6050:168:3", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, "id": 500, "implemented": true, "kind": "function", "modifiers": [], "name": "functionDelegateCall", "nameLocation": "6232:20:3", "nodeType": "FunctionDefinition", "parameters": { "id": 489, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 486, "mutability": "mutable", "name": "target", "nameLocation": "6261:6:3", "nodeType": "VariableDeclaration", "scope": 500, "src": "6253:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 485, "name": "address", "nodeType": "ElementaryTypeName", "src": "6253:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 488, "mutability": "mutable", "name": "data", "nameLocation": "6282:4:3", "nodeType": "VariableDeclaration", "scope": 500, "src": "6269:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 487, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6269:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "6252:35:3" }, "returnParameters": { "id": 492, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 491, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 500, "src": "6306:12:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 490, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6306:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "6305:14:3" }, "scope": 567, "src": "6223:198:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 534, "nodeType": "Block", "src": "6762:232:3", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "id": 514, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 503, "src": "6791:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 513, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 290, "src": "6780:10:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 515, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6780:18:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", "id": 516, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6800:40:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", "typeString": "literal_string \"Address: delegate call to non-contract\"" }, "value": "Address: delegate call to non-contract" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", "typeString": "literal_string \"Address: delegate call to non-contract\"" } ], "id": 512, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "6772:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 517, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6772:69:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 518, "nodeType": "ExpressionStatement", "src": "6772:69:3" }, { "assignments": [ 520, 522 ], "declarations": [ { "constant": false, "id": 520, "mutability": "mutable", "name": "success", "nameLocation": "6858:7:3", "nodeType": "VariableDeclaration", "scope": 534, "src": "6853:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 519, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6853:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 522, "mutability": "mutable", "name": "returndata", "nameLocation": "6880:10:3", "nodeType": "VariableDeclaration", "scope": 534, "src": "6867:23:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 521, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6867:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 527, "initialValue": { "arguments": [ { "id": 525, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 505, "src": "6914:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "id": 523, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 503, "src": "6894:6:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 524, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "delegatecall", "nodeType": "MemberAccess", "src": "6894:19:3", "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": 526, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6894:25:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "6852:67:3" }, { "expression": { "arguments": [ { "id": 529, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 520, "src": "6953:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 530, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 522, "src": "6962:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 531, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, "src": "6974:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 528, "name": "verifyCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "6936:16:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" } }, "id": 532, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6936:51:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "functionReturnParameters": 511, "id": 533, "nodeType": "Return", "src": "6929:58:3" } ] }, "documentation": { "id": 501, "nodeType": "StructuredDocumentation", "src": "6427:175:3", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" }, "id": 535, "implemented": true, "kind": "function", "modifiers": [], "name": "functionDelegateCall", "nameLocation": "6616:20:3", "nodeType": "FunctionDefinition", "parameters": { "id": 508, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 503, "mutability": "mutable", "name": "target", "nameLocation": "6654:6:3", "nodeType": "VariableDeclaration", "scope": 535, "src": "6646:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 502, "name": "address", "nodeType": "ElementaryTypeName", "src": "6646:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 505, "mutability": "mutable", "name": "data", "nameLocation": "6683:4:3", "nodeType": "VariableDeclaration", "scope": 535, "src": "6670:17:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 504, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6670:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 507, "mutability": "mutable", "name": "errorMessage", "nameLocation": "6711:12:3", "nodeType": "VariableDeclaration", "scope": 535, "src": "6697:26:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 506, "name": "string", "nodeType": "ElementaryTypeName", "src": "6697:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "6636:93:3" }, "returnParameters": { "id": 511, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 510, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 535, "src": "6748:12:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 509, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6748:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "6747:14:3" }, "scope": 567, "src": "6607:387:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 565, "nodeType": "Block", "src": "7374:532:3", "statements": [ { "condition": { "id": 547, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 538, "src": "7388:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 563, "nodeType": "Block", "src": "7445:455:3", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 551, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 540, "src": "7529:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "src": "7529:17:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 553, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7549:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7529:21:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 561, "nodeType": "Block", "src": "7837:53:3", "statements": [ { "expression": { "arguments": [ { "id": 558, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "7862:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 557, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "7855:6:3", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 559, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7855:20:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 560, "nodeType": "ExpressionStatement", "src": "7855:20:3" } ] }, "id": 562, "nodeType": "IfStatement", "src": "7525:365:3", "trueBody": { "id": 556, "nodeType": "Block", "src": "7552:279:3", "statements": [ { "AST": { "nodeType": "YulBlock", "src": "7672:145:3", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "7694:40:3", "value": { "arguments": [ { "name": "returndata", "nodeType": "YulIdentifier", "src": "7723:10:3" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "7717:5:3" }, "nodeType": "YulFunctionCall", "src": "7717:17:3" }, "variables": [ { "name": "returndata_size", "nodeType": "YulTypedName", "src": "7698:15:3", "type": "" } ] }, { "expression": { "arguments": [ { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "7766:2:3", "type": "", "value": "32" }, { "name": "returndata", "nodeType": "YulIdentifier", "src": "7770:10:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "7762:3:3" }, "nodeType": "YulFunctionCall", "src": "7762:19:3" }, { "name": "returndata_size", "nodeType": "YulIdentifier", "src": "7783:15:3" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "7755:6:3" }, "nodeType": "YulFunctionCall", "src": "7755:44:3" }, "nodeType": "YulExpressionStatement", "src": "7755:44:3" } ] }, "evmVersion": "london", "externalReferences": [ { "declaration": 540, "isOffset": false, "isSlot": false, "src": "7723:10:3", "valueSize": 1 }, { "declaration": 540, "isOffset": false, "isSlot": false, "src": "7770:10:3", "valueSize": 1 } ], "id": 555, "nodeType": "InlineAssembly", "src": "7663:154:3" } ] } } ] }, "id": 564, "nodeType": "IfStatement", "src": "7384:516:3", "trueBody": { "id": 550, "nodeType": "Block", "src": "7397:42:3", "statements": [ { "expression": { "id": 548, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 540, "src": "7418:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "functionReturnParameters": 546, "id": 549, "nodeType": "Return", "src": "7411:17:3" } ] } } ] }, "documentation": { "id": 536, "nodeType": "StructuredDocumentation", "src": "7000:209:3", "text": " @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._" }, "id": 566, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyCallResult", "nameLocation": "7223:16:3", "nodeType": "FunctionDefinition", "parameters": { "id": 543, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 538, "mutability": "mutable", "name": "success", "nameLocation": "7254:7:3", "nodeType": "VariableDeclaration", "scope": 566, "src": "7249:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 537, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7249:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 540, "mutability": "mutable", "name": "returndata", "nameLocation": "7284:10:3", "nodeType": "VariableDeclaration", "scope": 566, "src": "7271:23:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 539, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7271:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 542, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7318:12:3", "nodeType": "VariableDeclaration", "scope": 566, "src": "7304:26:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 541, "name": "string", "nodeType": "ElementaryTypeName", "src": "7304:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "7239:97:3" }, "returnParameters": { "id": 546, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 545, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 566, "src": "7360:12:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 544, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7360:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "7359:14:3" }, "scope": 567, "src": "7214:692:3", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], "scope": 568, "src": "179:7729:3", "usedErrors": [] } ], "src": "86:7823:3" }, "id": 3 }, "@openzeppelin/contracts/utils/Context.sol": { "ast": { "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "exportedSymbols": { "Context": [ 589 ] }, "id": 590, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 569, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "86:23:4" }, { "abstract": true, "baseContracts": [], "canonicalName": "Context", "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 570, "nodeType": "StructuredDocumentation", "src": "111:496:4", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, "id": 589, "linearizedBaseContracts": [ 589 ], "name": "Context", "nameLocation": "626:7:4", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 578, "nodeType": "Block", "src": "702:34:4", "statements": [ { "expression": { "expression": { "id": 575, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "719:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "719:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 574, "id": 577, "nodeType": "Return", "src": "712:17:4" } ] }, "id": 579, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nameLocation": "649:10:4", "nodeType": "FunctionDefinition", "parameters": { "id": 571, "nodeType": "ParameterList", "parameters": [], "src": "659:2:4" }, "returnParameters": { "id": 574, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 573, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 579, "src": "693:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 572, "name": "address", "nodeType": "ElementaryTypeName", "src": "693:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "692:9:4" }, "scope": 589, "src": "640:96:4", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { "id": 587, "nodeType": "Block", "src": "809:32:4", "statements": [ { "expression": { "expression": { "id": 584, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "826:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "src": "826:8:4", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "functionReturnParameters": 583, "id": 586, "nodeType": "Return", "src": "819:15:4" } ] }, "id": 588, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nameLocation": "751:8:4", "nodeType": "FunctionDefinition", "parameters": { "id": 580, "nodeType": "ParameterList", "parameters": [], "src": "759:2:4" }, "returnParameters": { "id": 583, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 582, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 588, "src": "793:14:4", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 581, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "793:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "792:16:4" }, "scope": 589, "src": "742:99:4", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], "scope": 590, "src": "608:235:4", "usedErrors": [] } ], "src": "86:758:4" }, "id": 4 }, "contracts/OnChainMessengerV1.sol": { "ast": { "absolutePath": "contracts/OnChainMessengerV1.sol", "exportedSymbols": { "Address": [ 567 ], "Initializable": [ 178 ], "OnChainMessengerV1": [ 623 ] }, "id": 624, "license": "Unlicense", "nodeType": "SourceUnit", "nodes": [ { "id": 591, "literals": [ "solidity", "^", "0.8", ".10" ], "nodeType": "PragmaDirective", "src": "37:24:5" }, { "absolutePath": "@openzeppelin/contracts/proxy/utils/Initializable.sol", "file": "@openzeppelin/contracts/proxy/utils/Initializable.sol", "id": 592, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 624, "sourceUnit": 179, "src": "63:63:5", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 593, "name": "Initializable", "nodeType": "IdentifierPath", "referencedDeclaration": 178, "src": "467:13:5" }, "id": 594, "nodeType": "InheritanceSpecifier", "src": "467:13:5" } ], "canonicalName": "OnChainMessengerV1", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 623, "linearizedBaseContracts": [ 623, 178 ], "name": "OnChainMessengerV1", "nameLocation": "445:18:5", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "functionSelector": "5fdd59f8", "id": 599, "mutability": "mutable", "name": "messages", "nameLocation": "520:8:5", "nodeType": "VariableDeclaration", "scope": 623, "src": "485:43:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Message_$604_storage_$", "typeString": "mapping(address => struct OnChainMessengerV1.Message)" }, "typeName": { "id": 598, "keyType": { "id": 595, "name": "address", "nodeType": "ElementaryTypeName", "src": "493:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "485:27:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Message_$604_storage_$", "typeString": "mapping(address => struct OnChainMessengerV1.Message)" }, "valueType": { "id": 597, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 596, "name": "Message", "nodeType": "IdentifierPath", "referencedDeclaration": 604, "src": "504:7:5" }, "referencedDeclaration": 604, "src": "504:7:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Message_$604_storage_ptr", "typeString": "struct OnChainMessengerV1.Message" } } }, "visibility": "public" }, { "canonicalName": "OnChainMessengerV1.Message", "id": 604, "members": [ { "constant": false, "id": 601, "mutability": "mutable", "name": "sender", "nameLocation": "562:6:5", "nodeType": "VariableDeclaration", "scope": 604, "src": "554:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 600, "name": "address", "nodeType": "ElementaryTypeName", "src": "554:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 603, "mutability": "mutable", "name": "content", "nameLocation": "581:7:5", "nodeType": "VariableDeclaration", "scope": 604, "src": "574:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 602, "name": "string", "nodeType": "ElementaryTypeName", "src": "574:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "name": "Message", "nameLocation": "540:7:5", "nodeType": "StructDefinition", "scope": 623, "src": "533:60:5", "visibility": "public" }, { "body": { "id": 621, "nodeType": "Block", "src": "667:61:5", "statements": [ { "expression": { "id": 619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 611, "name": "messages", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 599, "src": "673:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Message_$604_storage_$", "typeString": "mapping(address => struct OnChainMessengerV1.Message storage ref)" } }, "id": 613, "indexExpression": { "id": 612, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 606, "src": "682:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "673:19:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Message_$604_storage", "typeString": "struct OnChainMessengerV1.Message storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "expression": { "id": 615, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "703:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "703:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 617, "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 608, "src": "715:7:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 614, "name": "Message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 604, "src": "695:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Message_$604_storage_ptr_$", "typeString": "type(struct OnChainMessengerV1.Message storage pointer)" } }, "id": 618, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "695:28:5", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Message_$604_memory_ptr", "typeString": "struct OnChainMessengerV1.Message memory" } }, "src": "673:50:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Message_$604_storage", "typeString": "struct OnChainMessengerV1.Message storage ref" } }, "id": 620, "nodeType": "ExpressionStatement", "src": "673:50:5" } ] }, "functionSelector": "de6f24bb", "id": 622, "implemented": true, "kind": "function", "modifiers": [], "name": "sendMessage", "nameLocation": "606:11:5", "nodeType": "FunctionDefinition", "parameters": { "id": 609, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 606, "mutability": "mutable", "name": "recipient", "nameLocation": "626:9:5", "nodeType": "VariableDeclaration", "scope": 622, "src": "618:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 605, "name": "address", "nodeType": "ElementaryTypeName", "src": "618:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 608, "mutability": "mutable", "name": "message", "nameLocation": "651:7:5", "nodeType": "VariableDeclaration", "scope": 622, "src": "637:21:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 607, "name": "string", "nodeType": "ElementaryTypeName", "src": "637:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "617:42:5" }, "returnParameters": { "id": 610, "nodeType": "ParameterList", "parameters": [], "src": "667:0:5" }, "scope": 623, "src": "597:131:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 624, "src": "436:294:5", "usedErrors": [] } ], "src": "37:694:5" }, "id": 5 }, "contracts/OnChainMessengerV2.sol": { "ast": { "absolutePath": "contracts/OnChainMessengerV2.sol", "exportedSymbols": { "Context": [ 589 ], "OnChainMessengerV2": [ 693 ], "Ownable": [ 104 ], "Pausable": [ 270 ] }, "id": 694, "license": "Unlicense", "nodeType": "SourceUnit", "nodes": [ { "id": 625, "literals": [ "solidity", "^", "0.8", ".10" ], "nodeType": "PragmaDirective", "src": "37:24:6" }, { "absolutePath": "@openzeppelin/contracts/security/Pausable.sol", "file": "@openzeppelin/contracts/security/Pausable.sol", "id": 626, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 694, "sourceUnit": 271, "src": "63:55:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", "file": "@openzeppelin/contracts/access/Ownable.sol", "id": 627, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 694, "sourceUnit": 105, "src": "119:52:6", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 628, "name": "Pausable", "nodeType": "IdentifierPath", "referencedDeclaration": 270, "src": "512:8:6" }, "id": 629, "nodeType": "InheritanceSpecifier", "src": "512:8:6" }, { "baseName": { "id": 630, "name": "Ownable", "nodeType": "IdentifierPath", "referencedDeclaration": 104, "src": "522:7:6" }, "id": 631, "nodeType": "InheritanceSpecifier", "src": "522:7:6" } ], "canonicalName": "OnChainMessengerV2", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 693, "linearizedBaseContracts": [ 693, 104, 270, 589 ], "name": "OnChainMessengerV2", "nameLocation": "490:18:6", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "functionSelector": "5fdd59f8", "id": 636, "mutability": "mutable", "name": "messages", "nameLocation": "569:8:6", "nodeType": "VariableDeclaration", "scope": 693, "src": "534:43:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Message_$645_storage_$", "typeString": "mapping(address => struct OnChainMessengerV2.Message)" }, "typeName": { "id": 635, "keyType": { "id": 632, "name": "address", "nodeType": "ElementaryTypeName", "src": "542:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "534:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Message_$645_storage_$", "typeString": "mapping(address => struct OnChainMessengerV2.Message)" }, "valueType": { "id": 634, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 633, "name": "Message", "nodeType": "IdentifierPath", "referencedDeclaration": 645, "src": "553:7:6" }, "referencedDeclaration": 645, "src": "553:7:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Message_$645_storage_ptr", "typeString": "struct OnChainMessengerV2.Message" } } }, "visibility": "public" }, { "anonymous": false, "id": 640, "name": "Error", "nameLocation": "588:5:6", "nodeType": "EventDefinition", "parameters": { "id": 639, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 638, "indexed": false, "mutability": "mutable", "name": "sender", "nameLocation": "602:6:6", "nodeType": "VariableDeclaration", "scope": 640, "src": "594:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 637, "name": "address", "nodeType": "ElementaryTypeName", "src": "594:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "593:16:6" }, "src": "582:28:6" }, { "canonicalName": "OnChainMessengerV2.Message", "id": 645, "members": [ { "constant": false, "id": 642, "mutability": "mutable", "name": "sender", "nameLocation": "643:6:6", "nodeType": "VariableDeclaration", "scope": 645, "src": "635:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 641, "name": "address", "nodeType": "ElementaryTypeName", "src": "635:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 644, "mutability": "mutable", "name": "content", "nameLocation": "662:7:6", "nodeType": "VariableDeclaration", "scope": 645, "src": "655:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 643, "name": "string", "nodeType": "ElementaryTypeName", "src": "655:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "name": "Message", "nameLocation": "621:7:6", "nodeType": "StructDefinition", "scope": 693, "src": "614:60:6", "visibility": "public" }, { "body": { "id": 664, "nodeType": "Block", "src": "762:61:6", "statements": [ { "expression": { "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 654, "name": "messages", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 636, "src": "768:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Message_$645_storage_$", "typeString": "mapping(address => struct OnChainMessengerV2.Message storage ref)" } }, "id": 656, "indexExpression": { "id": 655, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 647, "src": "777:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "768:19:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Message_$645_storage", "typeString": "struct OnChainMessengerV2.Message storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "expression": { "id": 658, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "798:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 659, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "798:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 660, "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 649, "src": "810:7:6", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 657, "name": "Message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 645, "src": "790:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Message_$645_storage_ptr_$", "typeString": "type(struct OnChainMessengerV2.Message storage pointer)" } }, "id": 661, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "790:28:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Message_$645_memory_ptr", "typeString": "struct OnChainMessengerV2.Message memory" } }, "src": "768:50:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Message_$645_storage", "typeString": "struct OnChainMessengerV2.Message storage ref" } }, "id": 663, "nodeType": "ExpressionStatement", "src": "768:50:6" } ] }, "functionSelector": "de6f24bb", "id": 665, "implemented": true, "kind": "function", "modifiers": [ { "id": 652, "kind": "modifierInvocation", "modifierName": { "id": 651, "name": "whenNotPaused", "nodeType": "IdentifierPath", "referencedDeclaration": 226, "src": "748:13:6" }, "nodeType": "ModifierInvocation", "src": "748:13:6" } ], "name": "sendMessage", "nameLocation": "687:11:6", "nodeType": "FunctionDefinition", "parameters": { "id": 650, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 647, "mutability": "mutable", "name": "recipient", "nameLocation": "707:9:6", "nodeType": "VariableDeclaration", "scope": 665, "src": "699:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 646, "name": "address", "nodeType": "ElementaryTypeName", "src": "699:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 649, "mutability": "mutable", "name": "message", "nameLocation": "732:7:6", "nodeType": "VariableDeclaration", "scope": 665, "src": "718:21:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 648, "name": "string", "nodeType": "ElementaryTypeName", "src": "718:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "698:42:6" }, "returnParameters": { "id": 653, "nodeType": "ParameterList", "parameters": [], "src": "762:0:6" }, "scope": 693, "src": "678:145:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 673, "nodeType": "Block", "src": "856:33:6", "statements": [ { "eventCall": { "arguments": [ { "expression": { "id": 669, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "873:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 670, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "873:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 668, "name": "Error", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 640, "src": "867:5:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 671, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "867:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 672, "nodeType": "EmitStatement", "src": "862:22:6" } ] }, "functionSelector": "2f7643a8", "id": 674, "implemented": true, "kind": "function", "modifiers": [], "name": "throwError", "nameLocation": "836:10:6", "nodeType": "FunctionDefinition", "parameters": { "id": 666, "nodeType": "ParameterList", "parameters": [], "src": "846:2:6" }, "returnParameters": { "id": 667, "nodeType": "ParameterList", "parameters": [], "src": "856:0:6" }, "scope": 693, "src": "827:62:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 682, "nodeType": "Block", "src": "927:19:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 679, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 253, "src": "933:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 680, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "933:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 681, "nodeType": "ExpressionStatement", "src": "933:8:6" } ] }, "functionSelector": "8456cb59", "id": 683, "implemented": true, "kind": "function", "modifiers": [ { "id": 677, "kind": "modifierInvocation", "modifierName": { "id": 676, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 46, "src": "917:9:6" }, "nodeType": "ModifierInvocation", "src": "917:9:6" } ], "name": "pause", "nameLocation": "902:5:6", "nodeType": "FunctionDefinition", "parameters": { "id": 675, "nodeType": "ParameterList", "parameters": [], "src": "907:2:6" }, "returnParameters": { "id": 678, "nodeType": "ParameterList", "parameters": [], "src": "927:0:6" }, "scope": 693, "src": "893:53:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 691, "nodeType": "Block", "src": "986:21:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 688, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "992:8:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 689, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "992:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 690, "nodeType": "ExpressionStatement", "src": "992:10:6" } ] }, "functionSelector": "3f4ba83a", "id": 692, "implemented": true, "kind": "function", "modifiers": [ { "id": 686, "kind": "modifierInvocation", "modifierName": { "id": 685, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 46, "src": "976:9:6" }, "nodeType": "ModifierInvocation", "src": "976:9:6" } ], "name": "unpause", "nameLocation": "959:7:6", "nodeType": "FunctionDefinition", "parameters": { "id": 684, "nodeType": "ParameterList", "parameters": [], "src": "966:2:6" }, "returnParameters": { "id": 687, "nodeType": "ParameterList", "parameters": [], "src": "986:0:6" }, "scope": 693, "src": "950:57:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 694, "src": "481:528:6", "usedErrors": [] } ], "src": "37:973:6" }, "id": 6 } } } }