-
-
Save thienphanexcalibur/d20ecb4ba34419b76f83568f54da198d to your computer and use it in GitHub Desktop.
// SPDX-License-Identifier: MIT | |
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) | |
pragma solidity ^0.8.0; | |
import "../utils/Context.sol"; | |
/** | |
* @dev 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. | |
*/ | |
abstract contract Ownable is Context { | |
address private _owner; | |
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); | |
/** | |
* @dev Initializes the contract setting the deployer as the initial owner. | |
*/ | |
constructor() { | |
_transferOwnership(_msgSender()); | |
} | |
/** | |
* @dev Returns the address of the current owner. | |
*/ | |
function owner() public view virtual returns (address) { | |
return _owner; | |
} | |
/** | |
* @dev Throws if called by any account other than the owner. | |
*/ | |
modifier onlyOwner() { | |
require(owner() == _msgSender(), "Ownable: caller is not the owner"); | |
_; | |
} | |
/** | |
* @dev 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. | |
*/ | |
function renounceOwnership() public virtual onlyOwner { | |
_transferOwnership(address(0)); | |
} | |
/** | |
* @dev Transfers ownership of the contract to a new account (`newOwner`). | |
* Can only be called by the current owner. | |
*/ | |
function transferOwnership(address newOwner) public virtual onlyOwner { | |
require(newOwner != address(0), "Ownable: new owner is the zero address"); | |
_transferOwnership(newOwner); | |
} | |
/** | |
* @dev Transfers ownership of the contract to a new account (`newOwner`). | |
* Internal function without access restriction. | |
*/ | |
function _transferOwnership(address newOwner) internal virtual { | |
address oldOwner = _owner; | |
_owner = newOwner; | |
emit OwnershipTransferred(oldOwner, newOwner); | |
} | |
} |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.7.0; | |
/** | |
* @dev Wrappers over Solidity's arithmetic operations with added overflow | |
* checks. | |
* | |
* Arithmetic operations in Solidity wrap on overflow. This can easily result | |
* in bugs, because programmers usually assume that an overflow raises an | |
* error, which is the standard behavior in high level programming languages. | |
* `SafeMath` restores this intuition by reverting the transaction when an | |
* operation overflows. | |
* | |
* Using this library instead of the unchecked operations eliminates an entire | |
* class of bugs, so it's recommended to use it always. | |
*/ | |
library SafeMath { | |
/** | |
* @dev Returns the addition of two unsigned integers, with an overflow flag. | |
* | |
* _Available since v3.4._ | |
*/ | |
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { | |
uint256 c = a + b; | |
if (c < a) return (false, 0); | |
return (true, c); | |
} | |
/** | |
* @dev Returns the substraction of two unsigned integers, with an overflow flag. | |
* | |
* _Available since v3.4._ | |
*/ | |
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { | |
if (b > a) return (false, 0); | |
return (true, a - b); | |
} | |
/** | |
* @dev Returns the multiplication of two unsigned integers, with an overflow flag. | |
* | |
* _Available since v3.4._ | |
*/ | |
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { | |
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the | |
// benefit is lost if 'b' is also tested. | |
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 | |
if (a == 0) return (true, 0); | |
uint256 c = a * b; | |
if (c / a != b) return (false, 0); | |
return (true, c); | |
} | |
/** | |
* @dev Returns the division of two unsigned integers, with a division by zero flag. | |
* | |
* _Available since v3.4._ | |
*/ | |
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { | |
if (b == 0) return (false, 0); | |
return (true, a / b); | |
} | |
/** | |
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. | |
* | |
* _Available since v3.4._ | |
*/ | |
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { | |
if (b == 0) return (false, 0); | |
return (true, a % b); | |
} | |
/** | |
* @dev Returns the addition of two unsigned integers, reverting on | |
* overflow. | |
* | |
* Counterpart to Solidity's `+` operator. | |
* | |
* Requirements: | |
* | |
* - Addition cannot overflow. | |
*/ | |
function add(uint256 a, uint256 b) internal pure returns (uint256) { | |
uint256 c = a + b; | |
require(c >= a, "SafeMath: addition overflow"); | |
return c; | |
} | |
/** | |
* @dev Returns the subtraction of two unsigned integers, reverting on | |
* overflow (when the result is negative). | |
* | |
* Counterpart to Solidity's `-` operator. | |
* | |
* Requirements: | |
* | |
* - Subtraction cannot overflow. | |
*/ | |
function sub(uint256 a, uint256 b) internal pure returns (uint256) { | |
require(b <= a, "SafeMath: subtraction overflow"); | |
return a - b; | |
} | |
/** | |
* @dev Returns the multiplication of two unsigned integers, reverting on | |
* overflow. | |
* | |
* Counterpart to Solidity's `*` operator. | |
* | |
* Requirements: | |
* | |
* - Multiplication cannot overflow. | |
*/ | |
function mul(uint256 a, uint256 b) internal pure returns (uint256) { | |
if (a == 0) return 0; | |
uint256 c = a * b; | |
require(c / a == b, "SafeMath: multiplication overflow"); | |
return c; | |
} | |
/** | |
* @dev Returns the integer division of two unsigned integers, reverting on | |
* division by zero. The result is rounded towards zero. | |
* | |
* Counterpart to Solidity's `/` operator. Note: this function uses a | |
* `revert` opcode (which leaves remaining gas untouched) while Solidity | |
* uses an invalid opcode to revert (consuming all remaining gas). | |
* | |
* Requirements: | |
* | |
* - The divisor cannot be zero. | |
*/ | |
function div(uint256 a, uint256 b) internal pure returns (uint256) { | |
require(b > 0, "SafeMath: division by zero"); | |
return a / b; | |
} | |
/** | |
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), | |
* reverting when dividing by zero. | |
* | |
* Counterpart to Solidity's `%` operator. This function uses a `revert` | |
* opcode (which leaves remaining gas untouched) while Solidity uses an | |
* invalid opcode to revert (consuming all remaining gas). | |
* | |
* Requirements: | |
* | |
* - The divisor cannot be zero. | |
*/ | |
function mod(uint256 a, uint256 b) internal pure returns (uint256) { | |
require(b > 0, "SafeMath: modulo by zero"); | |
return a % b; | |
} | |
/** | |
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on | |
* overflow (when the result is negative). | |
* | |
* CAUTION: This function is deprecated because it requires allocating memory for the error | |
* message unnecessarily. For custom revert reasons use {trySub}. | |
* | |
* Counterpart to Solidity's `-` operator. | |
* | |
* Requirements: | |
* | |
* - Subtraction cannot overflow. | |
*/ | |
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { | |
require(b <= a, errorMessage); | |
return a - b; | |
} | |
/** | |
* @dev Returns the integer division of two unsigned integers, reverting with custom message on | |
* division by zero. The result is rounded towards zero. | |
* | |
* CAUTION: This function is deprecated because it requires allocating memory for the error | |
* message unnecessarily. For custom revert reasons use {tryDiv}. | |
* | |
* Counterpart to Solidity's `/` operator. Note: this function uses a | |
* `revert` opcode (which leaves remaining gas untouched) while Solidity | |
* uses an invalid opcode to revert (consuming all remaining gas). | |
* | |
* Requirements: | |
* | |
* - The divisor cannot be zero. | |
*/ | |
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { | |
require(b > 0, errorMessage); | |
return a / b; | |
} | |
/** | |
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), | |
* reverting with custom message when dividing by zero. | |
* | |
* CAUTION: This function is deprecated because it requires allocating memory for the error | |
* message unnecessarily. For custom revert reasons use {tryMod}. | |
* | |
* Counterpart to Solidity's `%` operator. This function uses a `revert` | |
* opcode (which leaves remaining gas untouched) while Solidity uses an | |
* invalid opcode to revert (consuming all remaining gas). | |
* | |
* Requirements: | |
* | |
* - The divisor cannot be zero. | |
*/ | |
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { | |
require(b > 0, errorMessage); | |
return a % b; | |
} | |
} |
// SPDX-License-Identifier: MIT | |
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol) | |
pragma solidity ^0.8.0; | |
/** | |
* @dev 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. | |
*/ | |
abstract contract Context { | |
function _msgSender() internal view virtual returns (address) { | |
return msg.sender; | |
} | |
function _msgData() internal view virtual returns (bytes calldata) { | |
return msg.data; | |
} | |
} |
{ | |
"deploy": { | |
"VM:-": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"main:1": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"ropsten:3": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"rinkeby:4": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"kovan:42": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"görli:5": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"Custom": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
} | |
}, | |
"data": { | |
"bytecode": { | |
"generatedSources": [], | |
"linkReferences": {}, | |
"object": "608060405234801561001057600080fd5b506104ab806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80637243b45f14610030575b600080fd5b61003861003a565b005b60006040516100489061013c565b604051809103906000f080158015610064573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff166339c117a46040518163ffffffff1660e01b815260040160006040518083038186803b1580156100ad57600080fd5b505afa9250505080156100be575060015b610138576100ca61025d565b806308c379a0141561012757506100df61029d565b806100ea5750610129565b7fc35a0ec6603ff0b5966d7ca053a5f0984a70aad58a9a0ecb1349308815a4151a816040516101199190610182565b60405180910390a150610133565b505b3d6000803e3d6000fd5b610139565b5b50565b6101428061033483390190565b6000610154826101ae565b61015e81856101b9565b935061016e8185602086016101ca565b6101778161027f565b840191505092915050565b6000602082019050818103600083015261019c8184610149565b905092915050565b6000604051905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156101e85780820151818401526020810190506101cd565b838111156101f7576000848401525b50505050565b6102068261027f565b810181811067ffffffffffffffff821117156102255761022461022e565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d111561027c5760046000803e610279600051610290565b90505b90565b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156102ad57610330565b6102b56101a4565b60043d036004823e80513d602482011167ffffffffffffffff821117156102dd575050610330565b808201805167ffffffffffffffff8111156102fb5750505050610330565b80602083010160043d038501811115610318575050505050610330565b610327826020018501866101fd565b82955050505050505b9056fe608060405234801561001057600080fd5b50610122806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806339c117a414602d575b600080fd5b60336035565b005b60006073576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401606a906094565b60405180910390fd5b565b60006080600d8360b2565b915060898260c3565b602082019050919050565b6000602082019050818103600083015260ab816075565b9050919050565b600082825260208201905092915050565b7f4572726f72204d6573736167650000000000000000000000000000000000000060008201525056fea26469706673582212203ea436ebe7c13abb42bc6842d3a872b6157bec8171bf5360d01e1d41ecc50b2e64736f6c63430008040033a26469706673582212204d3d421431594b3878fb06f5dcc6ddef477589dfa4d600e81489b529cb1df2d464736f6c63430008040033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AB 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7243B45F EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x3A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x48 SWAP1 PUSH2 0x13C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x64 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x39C117A4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xBE JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x138 JUMPI PUSH2 0xCA PUSH2 0x25D JUMP JUMPDEST DUP1 PUSH4 0x8C379A0 EQ ISZERO PUSH2 0x127 JUMPI POP PUSH2 0xDF PUSH2 0x29D JUMP JUMPDEST DUP1 PUSH2 0xEA JUMPI POP PUSH2 0x129 JUMP JUMPDEST PUSH32 0xC35A0EC6603FF0B5966D7CA053A5F0984A70AAD58A9A0ECB1349308815A4151A DUP2 PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x182 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH2 0x133 JUMP JUMPDEST POP JUMPDEST RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x139 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x142 DUP1 PUSH2 0x334 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP3 PUSH2 0x1AE JUMP JUMPDEST PUSH2 0x15E DUP2 DUP6 PUSH2 0x1B9 JUMP JUMPDEST SWAP4 POP PUSH2 0x16E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1CA JUMP JUMPDEST PUSH2 0x177 DUP2 PUSH2 0x27F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19C DUP2 DUP5 PUSH2 0x149 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 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 0x1E8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1CD JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x206 DUP3 PUSH2 0x27F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x225 JUMPI PUSH2 0x224 PUSH2 0x22E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 RETURNDATASIZE GT ISZERO PUSH2 0x27C JUMPI PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x279 PUSH1 0x0 MLOAD PUSH2 0x290 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT ISZERO PUSH2 0x2AD JUMPI PUSH2 0x330 JUMP JUMPDEST PUSH2 0x2B5 PUSH2 0x1A4 JUMP JUMPDEST PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2DD JUMPI POP POP PUSH2 0x330 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FB JUMPI POP POP POP POP PUSH2 0x330 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD PUSH1 0x4 RETURNDATASIZE SUB DUP6 ADD DUP2 GT ISZERO PUSH2 0x318 JUMPI POP POP POP POP POP PUSH2 0x330 JUMP JUMPDEST PUSH2 0x327 DUP3 PUSH1 0x20 ADD DUP6 ADD DUP7 PUSH2 0x1FD JUMP JUMPDEST DUP3 SWAP6 POP POP POP POP POP POP JUMPDEST SWAP1 JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x122 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39C117A4 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x35 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x73 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x6A SWAP1 PUSH1 0x94 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 PUSH1 0xD DUP4 PUSH1 0xB2 JUMP JUMPDEST SWAP2 POP PUSH1 0x89 DUP3 PUSH1 0xC3 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 PUSH1 0xAB DUP2 PUSH1 0x75 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4572726F72204D65737361676500000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY LOG4 CALLDATASIZE 0xEB 0xE7 0xC1 GASPRICE 0xBB TIMESTAMP 0xBC PUSH9 0x42D3A872B6157BEC81 PUSH18 0xBF5360D01E1D41ECC50B2E64736F6C634300 ADDMOD DIV STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4D RETURNDATASIZE TIMESTAMP EQ BALANCE MSIZE 0x4B CODESIZE PUSH25 0xFB06F5DCC6DDEF477589DFA4D600E81489B529CB1DF2D46473 PUSH16 0x6C634300080400330000000000000000 ", | |
"sourceMap": "166:269:0:-:0;;;;;;;;;;;;;;;;;;;" | |
}, | |
"deployedBytecode": { | |
"generatedSources": [ | |
{ | |
"ast": { | |
"nodeType": "YulBlock", | |
"src": "0:2966:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "99:272:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "109:53:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "156:5:1" | |
} | |
], | |
"functionName": { | |
"name": "array_length_t_string_memory_ptr", | |
"nodeType": "YulIdentifier", | |
"src": "123:32:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "123:39:1" | |
}, | |
"variables": [ | |
{ | |
"name": "length", | |
"nodeType": "YulTypedName", | |
"src": "113:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "171:78:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "237:3:1" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "242:6:1" | |
} | |
], | |
"functionName": { | |
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "178:58:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "178:71:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "171:3:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "284:5:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "291:4:1", | |
"type": "", | |
"value": "0x20" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "280:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "280:16:1" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "298:3:1" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "303:6:1" | |
} | |
], | |
"functionName": { | |
"name": "copy_memory_to_memory", | |
"nodeType": "YulIdentifier", | |
"src": "258:21:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "258:52:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "258:52:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "319:46:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "330:3:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "357:6:1" | |
} | |
], | |
"functionName": { | |
"name": "round_up_to_mul_of_32", | |
"nodeType": "YulIdentifier", | |
"src": "335:21:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "335:29:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "326:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "326:39:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "end", | |
"nodeType": "YulIdentifier", | |
"src": "319:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "80:5:1", | |
"type": "" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "87:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "95:3:1", | |
"type": "" | |
} | |
], | |
"src": "7:364:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "495:195:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "505:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "517:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "528:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "513:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "513:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "505:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "552:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "563:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "548:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "548:17:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "571:4:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "577:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "567:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "567:20:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "541:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "541:47:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "541:47:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "597:86:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "669:6:1" | |
}, | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "678:4:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "605:63:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "605:78:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "597:4:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "467:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "479:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "490:4:1", | |
"type": "" | |
} | |
], | |
"src": "377:313:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "736:35:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "746:19:1", | |
"value": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "762:2:1", | |
"type": "", | |
"value": "64" | |
} | |
], | |
"functionName": { | |
"name": "mload", | |
"nodeType": "YulIdentifier", | |
"src": "756:5:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "756:9:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "memPtr", | |
"nodeType": "YulIdentifier", | |
"src": "746:6:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "allocate_unbounded", | |
"nodeType": "YulFunctionDefinition", | |
"returnVariables": [ | |
{ | |
"name": "memPtr", | |
"nodeType": "YulTypedName", | |
"src": "729:6:1", | |
"type": "" | |
} | |
], | |
"src": "696:75:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "836:40:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "847:22:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "863:5:1" | |
} | |
], | |
"functionName": { | |
"name": "mload", | |
"nodeType": "YulIdentifier", | |
"src": "857:5:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "857:12:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "847:6:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "array_length_t_string_memory_ptr", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "819:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "length", | |
"nodeType": "YulTypedName", | |
"src": "829:6:1", | |
"type": "" | |
} | |
], | |
"src": "777:99:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "978:73:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "995:3:1" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "1000:6:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "988:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "988:19:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "988:19:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1016:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1035:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1040:4:1", | |
"type": "", | |
"value": "0x20" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1031:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1031:14:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "updated_pos", | |
"nodeType": "YulIdentifier", | |
"src": "1016:11:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "950:3:1", | |
"type": "" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulTypedName", | |
"src": "955:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "updated_pos", | |
"nodeType": "YulTypedName", | |
"src": "966:11:1", | |
"type": "" | |
} | |
], | |
"src": "882:169:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1106:258:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1116:10:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1125:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "i", | |
"nodeType": "YulTypedName", | |
"src": "1120:1:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1185:63:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dst", | |
"nodeType": "YulIdentifier", | |
"src": "1210:3:1" | |
}, | |
{ | |
"name": "i", | |
"nodeType": "YulIdentifier", | |
"src": "1215:1:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1206:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1206:11:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "src", | |
"nodeType": "YulIdentifier", | |
"src": "1229:3:1" | |
}, | |
{ | |
"name": "i", | |
"nodeType": "YulIdentifier", | |
"src": "1234:1:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1225:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1225:11:1" | |
} | |
], | |
"functionName": { | |
"name": "mload", | |
"nodeType": "YulIdentifier", | |
"src": "1219:5:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1219:18:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "1199:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1199:39:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1199:39:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"name": "i", | |
"nodeType": "YulIdentifier", | |
"src": "1146:1:1" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "1149:6:1" | |
} | |
], | |
"functionName": { | |
"name": "lt", | |
"nodeType": "YulIdentifier", | |
"src": "1143:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1143:13:1" | |
}, | |
"nodeType": "YulForLoop", | |
"post": { | |
"nodeType": "YulBlock", | |
"src": "1157:19:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1159:15:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "i", | |
"nodeType": "YulIdentifier", | |
"src": "1168:1:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1171:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1164:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1164:10:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "i", | |
"nodeType": "YulIdentifier", | |
"src": "1159:1:1" | |
} | |
] | |
} | |
] | |
}, | |
"pre": { | |
"nodeType": "YulBlock", | |
"src": "1139:3:1", | |
"statements": [] | |
}, | |
"src": "1135:113:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1282:76:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dst", | |
"nodeType": "YulIdentifier", | |
"src": "1332:3:1" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "1337:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1328:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1328:16:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1346:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "1321:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1321:27:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1321:27:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"name": "i", | |
"nodeType": "YulIdentifier", | |
"src": "1263:1:1" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "1266:6:1" | |
} | |
], | |
"functionName": { | |
"name": "gt", | |
"nodeType": "YulIdentifier", | |
"src": "1260:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1260:13:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "1257:2:1" | |
} | |
] | |
}, | |
"name": "copy_memory_to_memory", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "src", | |
"nodeType": "YulTypedName", | |
"src": "1088:3:1", | |
"type": "" | |
}, | |
{ | |
"name": "dst", | |
"nodeType": "YulTypedName", | |
"src": "1093:3:1", | |
"type": "" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulTypedName", | |
"src": "1098:6:1", | |
"type": "" | |
} | |
], | |
"src": "1057:307:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1413:238:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1423:58:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "memPtr", | |
"nodeType": "YulIdentifier", | |
"src": "1445:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "size", | |
"nodeType": "YulIdentifier", | |
"src": "1475:4:1" | |
} | |
], | |
"functionName": { | |
"name": "round_up_to_mul_of_32", | |
"nodeType": "YulIdentifier", | |
"src": "1453:21:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1453:27:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1441:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1441:40:1" | |
}, | |
"variables": [ | |
{ | |
"name": "newFreePtr", | |
"nodeType": "YulTypedName", | |
"src": "1427:10:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1592:22:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [], | |
"functionName": { | |
"name": "panic_error_0x41", | |
"nodeType": "YulIdentifier", | |
"src": "1594:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1594:18:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1594:18:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "newFreePtr", | |
"nodeType": "YulIdentifier", | |
"src": "1535:10:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1547:18:1", | |
"type": "", | |
"value": "0xffffffffffffffff" | |
} | |
], | |
"functionName": { | |
"name": "gt", | |
"nodeType": "YulIdentifier", | |
"src": "1532:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1532:34:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "newFreePtr", | |
"nodeType": "YulIdentifier", | |
"src": "1571:10:1" | |
}, | |
{ | |
"name": "memPtr", | |
"nodeType": "YulIdentifier", | |
"src": "1583:6:1" | |
} | |
], | |
"functionName": { | |
"name": "lt", | |
"nodeType": "YulIdentifier", | |
"src": "1568:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1568:22:1" | |
} | |
], | |
"functionName": { | |
"name": "or", | |
"nodeType": "YulIdentifier", | |
"src": "1529:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1529:62:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "1526:2:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1630:2:1", | |
"type": "", | |
"value": "64" | |
}, | |
{ | |
"name": "newFreePtr", | |
"nodeType": "YulIdentifier", | |
"src": "1634:10:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "1623:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1623:22:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1623:22:1" | |
} | |
] | |
}, | |
"name": "finalize_allocation", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "memPtr", | |
"nodeType": "YulTypedName", | |
"src": "1399:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "size", | |
"nodeType": "YulTypedName", | |
"src": "1407:4:1", | |
"type": "" | |
} | |
], | |
"src": "1370:281:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1685:152:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1702:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1705:77:1", | |
"type": "", | |
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "1695:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1695:88:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1695:88:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1799:1:1", | |
"type": "", | |
"value": "4" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1802:4:1", | |
"type": "", | |
"value": "0x41" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "1792:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1792:15:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1792:15:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1823:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1826:4:1", | |
"type": "", | |
"value": "0x24" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "1816:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1816:15:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1816:15:1" | |
} | |
] | |
}, | |
"name": "panic_error_0x41", | |
"nodeType": "YulFunctionDefinition", | |
"src": "1657:180:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1882:144:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1919:101:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1948:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1951:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1954:1:1", | |
"type": "", | |
"value": "4" | |
} | |
], | |
"functionName": { | |
"name": "returndatacopy", | |
"nodeType": "YulIdentifier", | |
"src": "1933:14:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1933:23:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1933:23:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1969:41:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2007:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "mload", | |
"nodeType": "YulIdentifier", | |
"src": "2001:5:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2001:8:1" | |
} | |
], | |
"functionName": { | |
"name": "shift_right_224_unsigned", | |
"nodeType": "YulIdentifier", | |
"src": "1976:24:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1976:34:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "sig", | |
"nodeType": "YulIdentifier", | |
"src": "1969:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [], | |
"functionName": { | |
"name": "returndatasize", | |
"nodeType": "YulIdentifier", | |
"src": "1898:14:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1898:16:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1916:1:1", | |
"type": "", | |
"value": "3" | |
} | |
], | |
"functionName": { | |
"name": "gt", | |
"nodeType": "YulIdentifier", | |
"src": "1895:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1895:23:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "1892:2:1" | |
} | |
] | |
}, | |
"name": "return_data_selector", | |
"nodeType": "YulFunctionDefinition", | |
"returnVariables": [ | |
{ | |
"name": "sig", | |
"nodeType": "YulTypedName", | |
"src": "1878:3:1", | |
"type": "" | |
} | |
], | |
"src": "1843:183:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2080:54:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2090:38:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2108:5:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2115:2:1", | |
"type": "", | |
"value": "31" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2104:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2104:14:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2124:2:1", | |
"type": "", | |
"value": "31" | |
} | |
], | |
"functionName": { | |
"name": "not", | |
"nodeType": "YulIdentifier", | |
"src": "2120:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2120:7:1" | |
} | |
], | |
"functionName": { | |
"name": "and", | |
"nodeType": "YulIdentifier", | |
"src": "2100:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2100:28:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "result", | |
"nodeType": "YulIdentifier", | |
"src": "2090:6:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "round_up_to_mul_of_32", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "2063:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "result", | |
"nodeType": "YulTypedName", | |
"src": "2073:6:1", | |
"type": "" | |
} | |
], | |
"src": "2032:102:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2193:53:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2203:36:1", | |
"value": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2228:3:1", | |
"type": "", | |
"value": "224" | |
}, | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2233:5:1" | |
} | |
], | |
"functionName": { | |
"name": "shr", | |
"nodeType": "YulIdentifier", | |
"src": "2224:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2224:15:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "newValue", | |
"nodeType": "YulIdentifier", | |
"src": "2203:8:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "shift_right_224_unsigned", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "2174:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "newValue", | |
"nodeType": "YulTypedName", | |
"src": "2184:8:1", | |
"type": "" | |
} | |
], | |
"src": "2140:106:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2295:668:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2335:9:1", | |
"statements": [ | |
{ | |
"nodeType": "YulLeave", | |
"src": "2337:5:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [], | |
"functionName": { | |
"name": "returndatasize", | |
"nodeType": "YulIdentifier", | |
"src": "2311:14:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2311:16:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2329:4:1", | |
"type": "", | |
"value": "0x44" | |
} | |
], | |
"functionName": { | |
"name": "lt", | |
"nodeType": "YulIdentifier", | |
"src": "2308:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2308:26:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "2305:2:1" | |
}, | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "2354:32:1", | |
"value": { | |
"arguments": [], | |
"functionName": { | |
"name": "allocate_unbounded", | |
"nodeType": "YulIdentifier", | |
"src": "2366:18:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2366:20:1" | |
}, | |
"variables": [ | |
{ | |
"name": "data", | |
"nodeType": "YulTypedName", | |
"src": "2358:4:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "data", | |
"nodeType": "YulIdentifier", | |
"src": "2410:4:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2416:1:1", | |
"type": "", | |
"value": "4" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"arguments": [], | |
"functionName": { | |
"name": "returndatasize", | |
"nodeType": "YulIdentifier", | |
"src": "2423:14:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2423:16:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2441:1:1", | |
"type": "", | |
"value": "4" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "2419:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2419:24:1" | |
} | |
], | |
"functionName": { | |
"name": "returndatacopy", | |
"nodeType": "YulIdentifier", | |
"src": "2395:14:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2395:49:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2395:49:1" | |
}, | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "2454:25:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "data", | |
"nodeType": "YulIdentifier", | |
"src": "2474:4:1" | |
} | |
], | |
"functionName": { | |
"name": "mload", | |
"nodeType": "YulIdentifier", | |
"src": "2468:5:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2468:11:1" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "2458:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2605:29:1", | |
"statements": [ | |
{ | |
"nodeType": "YulLeave", | |
"src": "2619:5:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "2510:6:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2518:18:1", | |
"type": "", | |
"value": "0xffffffffffffffff" | |
} | |
], | |
"functionName": { | |
"name": "gt", | |
"nodeType": "YulIdentifier", | |
"src": "2507:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2507:30:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "2558:6:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2566:4:1", | |
"type": "", | |
"value": "0x24" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2554:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2554:17:1" | |
}, | |
{ | |
"arguments": [], | |
"functionName": { | |
"name": "returndatasize", | |
"nodeType": "YulIdentifier", | |
"src": "2573:14:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2573:16:1" | |
} | |
], | |
"functionName": { | |
"name": "gt", | |
"nodeType": "YulIdentifier", | |
"src": "2551:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2551:39:1" | |
} | |
], | |
"functionName": { | |
"name": "or", | |
"nodeType": "YulIdentifier", | |
"src": "2491:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2491:113:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "2488:2:1" | |
}, | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "2644:28:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "data", | |
"nodeType": "YulIdentifier", | |
"src": "2659:4:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "2665:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2655:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2655:17:1" | |
}, | |
"variables": [ | |
{ | |
"name": "msg", | |
"nodeType": "YulTypedName", | |
"src": "2648:3:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "2681:24:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "msg", | |
"nodeType": "YulIdentifier", | |
"src": "2701:3:1" | |
} | |
], | |
"functionName": { | |
"name": "mload", | |
"nodeType": "YulIdentifier", | |
"src": "2695:5:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2695:10:1" | |
}, | |
"variables": [ | |
{ | |
"name": "length", | |
"nodeType": "YulTypedName", | |
"src": "2685:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2748:9:1", | |
"statements": [ | |
{ | |
"nodeType": "YulLeave", | |
"src": "2750:5:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "2720:6:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2728:18:1", | |
"type": "", | |
"value": "0xffffffffffffffff" | |
} | |
], | |
"functionName": { | |
"name": "gt", | |
"nodeType": "YulIdentifier", | |
"src": "2717:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2717:30:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "2714:2:1" | |
}, | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "2767:38:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "msg", | |
"nodeType": "YulIdentifier", | |
"src": "2786:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2791:4:1", | |
"type": "", | |
"value": "0x20" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2782:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2782:14:1" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "2798:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2778:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2778:27:1" | |
}, | |
"variables": [ | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "2771:3:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2862:9:1", | |
"statements": [ | |
{ | |
"nodeType": "YulLeave", | |
"src": "2864:5:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"name": "end", | |
"nodeType": "YulIdentifier", | |
"src": "2820:3:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "data", | |
"nodeType": "YulIdentifier", | |
"src": "2829:4:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"arguments": [], | |
"functionName": { | |
"name": "returndatasize", | |
"nodeType": "YulIdentifier", | |
"src": "2839:14:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2839:16:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2857:1:1", | |
"type": "", | |
"value": "4" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "2835:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2835:24:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2825:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2825:35:1" | |
} | |
], | |
"functionName": { | |
"name": "gt", | |
"nodeType": "YulIdentifier", | |
"src": "2817:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2817:44:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "2814:2:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "data", | |
"nodeType": "YulIdentifier", | |
"src": "2901:4:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "2911:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2923:4:1", | |
"type": "", | |
"value": "0x20" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "2929:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2919:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2919:17:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2907:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2907:30:1" | |
} | |
], | |
"functionName": { | |
"name": "finalize_allocation", | |
"nodeType": "YulIdentifier", | |
"src": "2881:19:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2881:57:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2881:57:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2947:10:1", | |
"value": { | |
"name": "msg", | |
"nodeType": "YulIdentifier", | |
"src": "2954:3:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "ret", | |
"nodeType": "YulIdentifier", | |
"src": "2947:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "try_decode_error_message", | |
"nodeType": "YulFunctionDefinition", | |
"returnVariables": [ | |
{ | |
"name": "ret", | |
"nodeType": "YulTypedName", | |
"src": "2291:3:1", | |
"type": "" | |
} | |
], | |
"src": "2252:711:1" | |
} | |
] | |
}, | |
"contents": "{\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_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\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 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 panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function return_data_selector() -> sig {\n if gt(returndatasize(), 3) {\n returndatacopy(0, 0, 4)\n sig := shift_right_224_unsigned(mload(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 shift_right_224_unsigned(value) -> newValue {\n newValue :=\n\n shr(224, value)\n\n }\n\n function try_decode_error_message() -> ret {\n if lt(returndatasize(), 0x44) { leave }\n\n let data := allocate_unbounded()\n returndatacopy(data, 4, sub(returndatasize(), 4))\n\n let offset := mload(data)\n if or(\n gt(offset, 0xffffffffffffffff),\n gt(add(offset, 0x24), returndatasize())\n ) {\n leave\n }\n\n let msg := add(data, offset)\n let length := mload(msg)\n if gt(length, 0xffffffffffffffff) { leave }\n\n let end := add(add(msg, 0x20), length)\n if gt(end, add(data, sub(returndatasize(), 4))) { leave }\n\n finalize_allocation(data, add(offset, add(0x20, length)))\n ret := msg\n }\n\n}\n", | |
"id": 1, | |
"language": "Yul", | |
"name": "#utility.yul" | |
} | |
], | |
"immutableReferences": {}, | |
"linkReferences": {}, | |
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80637243b45f14610030575b600080fd5b61003861003a565b005b60006040516100489061013c565b604051809103906000f080158015610064573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff166339c117a46040518163ffffffff1660e01b815260040160006040518083038186803b1580156100ad57600080fd5b505afa9250505080156100be575060015b610138576100ca61025d565b806308c379a0141561012757506100df61029d565b806100ea5750610129565b7fc35a0ec6603ff0b5966d7ca053a5f0984a70aad58a9a0ecb1349308815a4151a816040516101199190610182565b60405180910390a150610133565b505b3d6000803e3d6000fd5b610139565b5b50565b6101428061033483390190565b6000610154826101ae565b61015e81856101b9565b935061016e8185602086016101ca565b6101778161027f565b840191505092915050565b6000602082019050818103600083015261019c8184610149565b905092915050565b6000604051905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156101e85780820151818401526020810190506101cd565b838111156101f7576000848401525b50505050565b6102068261027f565b810181811067ffffffffffffffff821117156102255761022461022e565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d111561027c5760046000803e610279600051610290565b90505b90565b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156102ad57610330565b6102b56101a4565b60043d036004823e80513d602482011167ffffffffffffffff821117156102dd575050610330565b808201805167ffffffffffffffff8111156102fb5750505050610330565b80602083010160043d038501811115610318575050505050610330565b610327826020018501866101fd565b82955050505050505b9056fe608060405234801561001057600080fd5b50610122806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806339c117a414602d575b600080fd5b60336035565b005b60006073576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401606a906094565b60405180910390fd5b565b60006080600d8360b2565b915060898260c3565b602082019050919050565b6000602082019050818103600083015260ab816075565b9050919050565b600082825260208201905092915050565b7f4572726f72204d6573736167650000000000000000000000000000000000000060008201525056fea26469706673582212203ea436ebe7c13abb42bc6842d3a872b6157bec8171bf5360d01e1d41ecc50b2e64736f6c63430008040033a26469706673582212204d3d421431594b3878fb06f5dcc6ddef477589dfa4d600e81489b529cb1df2d464736f6c63430008040033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7243B45F EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x3A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x48 SWAP1 PUSH2 0x13C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x64 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x39C117A4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xBE JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x138 JUMPI PUSH2 0xCA PUSH2 0x25D JUMP JUMPDEST DUP1 PUSH4 0x8C379A0 EQ ISZERO PUSH2 0x127 JUMPI POP PUSH2 0xDF PUSH2 0x29D JUMP JUMPDEST DUP1 PUSH2 0xEA JUMPI POP PUSH2 0x129 JUMP JUMPDEST PUSH32 0xC35A0EC6603FF0B5966D7CA053A5F0984A70AAD58A9A0ECB1349308815A4151A DUP2 PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x182 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH2 0x133 JUMP JUMPDEST POP JUMPDEST RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x139 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x142 DUP1 PUSH2 0x334 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP3 PUSH2 0x1AE JUMP JUMPDEST PUSH2 0x15E DUP2 DUP6 PUSH2 0x1B9 JUMP JUMPDEST SWAP4 POP PUSH2 0x16E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1CA JUMP JUMPDEST PUSH2 0x177 DUP2 PUSH2 0x27F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19C DUP2 DUP5 PUSH2 0x149 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 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 0x1E8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1CD JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x206 DUP3 PUSH2 0x27F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x225 JUMPI PUSH2 0x224 PUSH2 0x22E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 RETURNDATASIZE GT ISZERO PUSH2 0x27C JUMPI PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x279 PUSH1 0x0 MLOAD PUSH2 0x290 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT ISZERO PUSH2 0x2AD JUMPI PUSH2 0x330 JUMP JUMPDEST PUSH2 0x2B5 PUSH2 0x1A4 JUMP JUMPDEST PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2DD JUMPI POP POP PUSH2 0x330 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FB JUMPI POP POP POP POP PUSH2 0x330 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD PUSH1 0x4 RETURNDATASIZE SUB DUP6 ADD DUP2 GT ISZERO PUSH2 0x318 JUMPI POP POP POP POP POP PUSH2 0x330 JUMP JUMPDEST PUSH2 0x327 DUP3 PUSH1 0x20 ADD DUP6 ADD DUP7 PUSH2 0x1FD JUMP JUMPDEST DUP3 SWAP6 POP POP POP POP POP POP JUMPDEST SWAP1 JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x122 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39C117A4 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x35 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x73 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x6A SWAP1 PUSH1 0x94 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 PUSH1 0xD DUP4 PUSH1 0xB2 JUMP JUMPDEST SWAP2 POP PUSH1 0x89 DUP3 PUSH1 0xC3 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 PUSH1 0xAB DUP2 PUSH1 0x75 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4572726F72204D65737361676500000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY LOG4 CALLDATASIZE 0xEB 0xE7 0xC1 GASPRICE 0xBB TIMESTAMP 0xBC PUSH9 0x42D3A872B6157BEC81 PUSH18 0xBF5360D01E1D41ECC50B2E64736F6C634300 ADDMOD DIV STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4D RETURNDATASIZE TIMESTAMP EQ BALANCE MSIZE 0x4B CODESIZE PUSH25 0xFB06F5DCC6DDEF477589DFA4D600E81489B529CB1DF2D46473 PUSH16 0x6C634300080400330000000000000000 ", | |
"sourceMap": "166:269:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;229:204;;;:::i;:::-;;;267:14;284:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;267:32;;313:4;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;309:118;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;404:12;413:2;404:12;;;;;;:::i;:::-;;;;;;;;355:72;309:118;;;;;;;;;;;;;;;;;229:204;:::o;-1:-1:-1:-;;;;;;;;:::o;7:364:1:-;95:3;123:39;156:5;123:39;:::i;:::-;178:71;242:6;237:3;178:71;:::i;:::-;171:78;;258:52;303:6;298:3;291:4;284:5;280:16;258:52;:::i;:::-;335:29;357:6;335:29;:::i;:::-;330:3;326:39;319:46;;99:272;;;;;:::o;377:313::-;490:4;528:2;517:9;513:18;505:26;;577:9;571:4;567:20;563:1;552:9;548:17;541:47;605:78;678:4;669:6;605:78;:::i;:::-;597:86;;495:195;;;;:::o;696:75::-;729:6;762:2;756:9;746:19;;736:35;:::o;777:99::-;829:6;863:5;857:12;847:22;;836:40;;;:::o;882:169::-;966:11;1000:6;995:3;988:19;1040:4;1035:3;1031:14;1016:29;;978:73;;;;:::o;1057:307::-;1125:1;1135:113;1149:6;1146:1;1143:13;1135:113;;;1234:1;1229:3;1225:11;1219:18;1215:1;1210:3;1206:11;1199:39;1171:2;1168:1;1164:10;1159:15;;1135:113;;;1266:6;1263:1;1260:13;1257:2;;;1346:1;1337:6;1332:3;1328:16;1321:27;1257:2;1106:258;;;;:::o;1370:281::-;1453:27;1475:4;1453:27;:::i;:::-;1445:6;1441:40;1583:6;1571:10;1568:22;1547:18;1535:10;1532:34;1529:62;1526:2;;;1594:18;;:::i;:::-;1526:2;1634:10;1630:2;1623:22;1413:238;;;:::o;1657:180::-;1705:77;1702:1;1695:88;1802:4;1799:1;1792:15;1826:4;1823:1;1816:15;1843:183;1878:3;1916:1;1898:16;1895:23;1892:2;;;1954:1;1951;1948;1933:23;1976:34;2007:1;2001:8;1976:34;:::i;:::-;1969:41;;1892:2;1882:144;:::o;2032:102::-;2073:6;2124:2;2120:7;2115:2;2108:5;2104:14;2100:28;2090:38;;2080:54;;;:::o;2140:106::-;2184:8;2233:5;2228:3;2224:15;2203:36;;2193:53;;;:::o;2252:711::-;2291:3;2329:4;2311:16;2308:26;2305:2;;;2337:5;;2305:2;2366:20;;:::i;:::-;2441:1;2423:16;2419:24;2416:1;2410:4;2395:49;2474:4;2468:11;2573:16;2566:4;2558:6;2554:17;2551:39;2518:18;2510:6;2507:30;2491:113;2488:2;;;2619:5;;;;2488:2;2665:6;2659:4;2655:17;2701:3;2695:10;2728:18;2720:6;2717:30;2714:2;;;2750:5;;;;;;2714:2;2798:6;2791:4;2786:3;2782:14;2778:27;2857:1;2839:16;2835:24;2829:4;2825:35;2820:3;2817:44;2814:2;;;2864:5;;;;;;;2814:2;2881:57;2929:6;2923:4;2919:17;2911:6;2907:30;2901:4;2881:57;:::i;:::-;2954:3;2947:10;;2295:668;;;;;;;:::o" | |
}, | |
"gasEstimates": { | |
"creation": { | |
"codeDepositCost": "239000", | |
"executionCost": "281", | |
"totalCost": "239281" | |
}, | |
"external": { | |
"sendError()": "infinite" | |
} | |
}, | |
"methodIdentifiers": { | |
"sendError()": "7243b45f" | |
} | |
}, | |
"abi": [ | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": false, | |
"internalType": "string", | |
"name": "name", | |
"type": "string" | |
} | |
], | |
"name": "LogError", | |
"type": "event" | |
}, | |
{ | |
"inputs": [], | |
"name": "sendError", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
} | |
] | |
} |
{ | |
"compiler": { | |
"version": "0.8.4+commit.c7e474f2" | |
}, | |
"language": "Solidity", | |
"output": { | |
"abi": [ | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": false, | |
"internalType": "string", | |
"name": "name", | |
"type": "string" | |
} | |
], | |
"name": "LogError", | |
"type": "event" | |
}, | |
{ | |
"inputs": [], | |
"name": "sendError", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
} | |
], | |
"devdoc": { | |
"kind": "dev", | |
"methods": {}, | |
"version": 1 | |
}, | |
"userdoc": { | |
"kind": "user", | |
"methods": {}, | |
"version": 1 | |
} | |
}, | |
"settings": { | |
"compilationTarget": { | |
"gist-2849d9a09aa997989e838e3b269144e9/ThrowError.sol": "ErrorHandling" | |
}, | |
"evmVersion": "istanbul", | |
"libraries": {}, | |
"metadata": { | |
"bytecodeHash": "ipfs" | |
}, | |
"optimizer": { | |
"enabled": false, | |
"runs": 200 | |
}, | |
"remappings": [] | |
}, | |
"sources": { | |
"gist-2849d9a09aa997989e838e3b269144e9/ThrowError.sol": { | |
"keccak256": "0x11b698e593718a8f8364784a9e746e93b2f04cc04867f05ae0dd507e131a6f29", | |
"urls": [ | |
"bzz-raw://dcad18b9fdd78f433ce706d51a3e544df9cfee267c2940e3a89ddb3c0d9271b7", | |
"dweb:/ipfs/QmcvoSn4XEiTS7mRZpWULw6abpJybBYziyyf8vUFgf93iC" | |
] | |
} | |
}, | |
"version": 1 | |
} |
{ | |
"deploy": { | |
"VM:-": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"main:1": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"ropsten:3": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"rinkeby:4": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"kovan:42": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"görli:5": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"Custom": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
} | |
}, | |
"data": { | |
"bytecode": { | |
"linkReferences": {}, | |
"object": "608060405234801561001057600080fd5b506104cb806100206000396000f3fe6080604052600436106100435760003560e01c80630ad19aeb1461005757806312065fe0146100bc5780636d26ec18146100e7578063d18a42e1146100f157610052565b3661005257610050610160565b005b600080fd5b34801561006357600080fd5b506100ba6004803603604081101561007a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff1690602001909291905050506101f3565b005b3480156100c857600080fd5b506100d1610466565b6040518082815260200191505060405180910390f35b6100ef610160565b005b3480156100fd57600080fd5b506101406004803603602081101561011457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061046e565b604051808267ffffffffffffffff16815260200191505060405180910390f35b3467ffffffffffffffff16341461017357fe5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1611156102cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4e6f7420456e6f7567682046756e64732c2061626f7274696e6700000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff160367ffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16101561039357fe5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc8267ffffffffffffffff169081150290604051600060405180830381858888f19350505050158015610461573d6000803e3d6000fd5b505050565b600047905090565b60006020528060005260406000206000915054906101000a900467ffffffffffffffff168156fea2646970667358221220e6c426d716b788c9a711b2a1d10ceb05e42f5690cc0d817ad348f2ba1656849864736f6c634300060c0033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4CB DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x43 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAD19AEB EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0xD18A42E1 EQ PUSH2 0xF1 JUMPI PUSH2 0x52 JUMP JUMPDEST CALLDATASIZE PUSH2 0x52 JUMPI PUSH2 0x50 PUSH2 0x160 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1F3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD1 PUSH2 0x466 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEF PUSH2 0x160 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x114 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x46E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE PUSH8 0xFFFFFFFFFFFFFFFF AND CALLVALUE EQ PUSH2 0x173 JUMPI INVALID JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0x2CF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4E6F7420456E6F7567682046756E64732C2061626F7274696E67000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SUB PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x393 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SUB SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x461 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE6 0xC4 0x26 0xD7 AND 0xB7 DUP9 0xC9 0xA7 GT 0xB2 LOG1 0xD1 0xC 0xEB SDIV 0xE4 0x2F JUMP SWAP1 0xCC 0xD DUP2 PUSH27 0xD348F2BA1656849864736F6C634300060C00330000000000000000 ", | |
"sourceMap": "57:742:0:-:0;;;;;;;;;;;;;;;;;;;" | |
}, | |
"deployedBytecode": { | |
"immutableReferences": {}, | |
"linkReferences": {}, | |
"object": "6080604052600436106100435760003560e01c80630ad19aeb1461005757806312065fe0146100bc5780636d26ec18146100e7578063d18a42e1146100f157610052565b3661005257610050610160565b005b600080fd5b34801561006357600080fd5b506100ba6004803603604081101561007a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff1690602001909291905050506101f3565b005b3480156100c857600080fd5b506100d1610466565b6040518082815260200191505060405180910390f35b6100ef610160565b005b3480156100fd57600080fd5b506101406004803603602081101561011457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061046e565b604051808267ffffffffffffffff16815260200191505060405180910390f35b3467ffffffffffffffff16341461017357fe5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1611156102cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4e6f7420456e6f7567682046756e64732c2061626f7274696e6700000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff160367ffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16101561039357fe5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc8267ffffffffffffffff169081150290604051600060405180830381858888f19350505050158015610461573d6000803e3d6000fd5b505050565b600047905090565b60006020528060005260406000206000915054906101000a900467ffffffffffffffff168156fea2646970667358221220e6c426d716b788c9a711b2a1d10ceb05e42f5690cc0d817ad348f2ba1656849864736f6c634300060c0033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x43 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAD19AEB EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0xD18A42E1 EQ PUSH2 0xF1 JUMPI PUSH2 0x52 JUMP JUMPDEST CALLDATASIZE PUSH2 0x52 JUMPI PUSH2 0x50 PUSH2 0x160 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1F3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD1 PUSH2 0x466 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEF PUSH2 0x160 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x114 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x46E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE PUSH8 0xFFFFFFFFFFFFFFFF AND CALLVALUE EQ PUSH2 0x173 JUMPI INVALID JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0x2CF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4E6F7420456E6F7567682046756E64732C2061626F7274696E67000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SUB PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x393 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SUB SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x461 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE6 0xC4 0x26 0xD7 AND 0xB7 DUP9 0xC9 0xA7 GT 0xB2 LOG1 0xD1 0xC 0xEB SDIV 0xE4 0x2F JUMP SWAP1 0xCC 0xD DUP2 PUSH27 0xD348F2BA1656849864736F6C634300060C00330000000000000000 ", | |
"sourceMap": "57:742:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;776:14;:12;:14::i;:::-;57:742;;;;;305:328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;639:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;146:153;;;:::i;:::-;;90:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;146:153;223:9;203:30;;:9;:30;196:38;;;;282:9;244:15;:27;260:10;244:27;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;146:153::o;305:328::-;401:15;:27;417:10;401:27;;;;;;;;;;;;;;;;;;;;;;;;;390:38;;:7;:38;;;;382:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;538:7;508:15;:27;524:10;508:27;;;;;;;;;;;;;;;;;;;;;;;;;:37;477:68;;:15;:27;493:10;477:27;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;470:76;;;;588:7;557:15;:27;573:10;557:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;605:3;:12;;:21;618:7;605:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;305:328;;:::o;639:93::-;681:4;704:21;697:28;;639:93;:::o;90:49::-;;;;;;;;;;;;;;;;;;;;;;:::o" | |
}, | |
"gasEstimates": { | |
"creation": { | |
"codeDepositCost": "245400", | |
"executionCost": "287", | |
"totalCost": "245687" | |
}, | |
"external": { | |
"balanceReceived(address)": "1244", | |
"getBalance()": "215", | |
"receiveMoney()": "21974", | |
"withdrawMoney(address,uint64)": "infinite" | |
} | |
}, | |
"methodIdentifiers": { | |
"balanceReceived(address)": "d18a42e1", | |
"getBalance()": "12065fe0", | |
"receiveMoney()": "6d26ec18", | |
"withdrawMoney(address,uint64)": "0ad19aeb" | |
} | |
}, | |
"abi": [ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "balanceReceived", | |
"outputs": [ | |
{ | |
"internalType": "uint64", | |
"name": "", | |
"type": "uint64" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "getBalance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "receiveMoney", | |
"outputs": [], | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address payable", | |
"name": "_to", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint64", | |
"name": "_amount", | |
"type": "uint64" | |
} | |
], | |
"name": "withdrawMoney", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"stateMutability": "payable", | |
"type": "receive" | |
} | |
] | |
} |
{ | |
"compiler": { | |
"version": "0.6.12+commit.27d51765" | |
}, | |
"language": "Solidity", | |
"output": { | |
"abi": [ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "balanceReceived", | |
"outputs": [ | |
{ | |
"internalType": "uint64", | |
"name": "", | |
"type": "uint64" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "getBalance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "receiveMoney", | |
"outputs": [], | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address payable", | |
"name": "_to", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint64", | |
"name": "_amount", | |
"type": "uint64" | |
} | |
], | |
"name": "withdrawMoney", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"stateMutability": "payable", | |
"type": "receive" | |
} | |
], | |
"devdoc": { | |
"kind": "dev", | |
"methods": {}, | |
"version": 1 | |
}, | |
"userdoc": { | |
"kind": "user", | |
"methods": {}, | |
"version": 1 | |
} | |
}, | |
"settings": { | |
"compilationTarget": { | |
"gist-2849d9a09aa997989e838e3b269144e9/FunctionExample.sol": "ExceptionExample" | |
}, | |
"evmVersion": "istanbul", | |
"libraries": {}, | |
"metadata": { | |
"bytecodeHash": "ipfs" | |
}, | |
"optimizer": { | |
"enabled": false, | |
"runs": 200 | |
}, | |
"remappings": [] | |
}, | |
"sources": { | |
"gist-2849d9a09aa997989e838e3b269144e9/FunctionExample.sol": { | |
"keccak256": "0x5811d7649a3f409ef0552d86221de3b1cf40ecb736514da2eac52741fd1354e3", | |
"license": "MIT", | |
"urls": [ | |
"bzz-raw://df6cb06f3f414dd8776f0afe413e6a4983420f08722e4b7f6b9188d681b4ee39", | |
"dweb:/ipfs/QmcwNg5pPZiirNoCpKa7fcyXBUEZuKRndLSJWscL67gK5n" | |
] | |
} | |
}, | |
"version": 1 | |
} |
{ | |
"deploy": { | |
"VM:-": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"main:1": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"ropsten:3": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"rinkeby:4": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"kovan:42": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"görli:5": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"Custom": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
} | |
}, | |
"data": { | |
"bytecode": { | |
"generatedSources": [], | |
"linkReferences": {}, | |
"object": "608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a69806100606000396000f3fe6080604052600436106100745760003560e01c80636d26ec181161004e5780636d26ec18146101195780638547472814610123578063893d20e81461013a578063d18a42e11461016557610083565b80630718b2f8146100885780630ad19aeb146100c557806312065fe0146100ee57610083565b36610083576100816101a2565b005b600080fd5b34801561009457600080fd5b506100af60048036038101906100aa91906106e4565b61026c565b6040516100bc91906107db565b60405180910390f35b3480156100d157600080fd5b506100ec60048036038101906100e791906106a8565b610289565b005b3480156100fa57600080fd5b5061010361050c565b60405161011091906107db565b60405180910390f35b6101216101a2565b005b34801561012f57600080fd5b50610138610514565b005b34801561014657600080fd5b5061014f6105db565b60405161015c9190610780565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061067f565b610604565b60405161019991906107f6565b60405180910390f35b3467ffffffffffffffff1634146101e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b34600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff166102449190610822565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550565b6000670de0b6b3a7640000826102829190610860565b9050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff161115610333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032a906107bb565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff166103929190610891565b67ffffffffffffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16101561042f577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff166104919190610891565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc8267ffffffffffffffff169081150290604051600060405180830381858888f19350505050158015610507573d6000803e3d6000fd5b505050565b600047905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105999061079b565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60016020528060005260406000206000915054906101000a900467ffffffffffffffff1681565b60008135905061063a816109d7565b92915050565b60008135905061064f816109ee565b92915050565b60008135905061066481610a05565b92915050565b60008135905061067981610a1c565b92915050565b60006020828403121561069157600080fd5b600061069f8482850161062b565b91505092915050565b600080604083850312156106bb57600080fd5b60006106c985828601610640565b92505060206106da8582860161066a565b9150509250929050565b6000602082840312156106f657600080fd5b600061070484828501610655565b91505092915050565b610716816108c5565b82525050565b6000610729601583610811565b915061073482610985565b602082019050919050565b600061074c601a83610811565b9150610757826109ae565b602082019050919050565b61076b81610909565b82525050565b61077a81610913565b82525050565b6000602082019050610795600083018461070d565b92915050565b600060208201905081810360008301526107b48161071c565b9050919050565b600060208201905081810360008301526107d48161073f565b9050919050565b60006020820190506107f06000830184610762565b92915050565b600060208201905061080b6000830184610771565b92915050565b600082825260208201905092915050565b600061082d82610913565b915061083883610913565b92508267ffffffffffffffff0382111561085557610854610927565b5b828201905092915050565b600061086b82610909565b915061087683610909565b92508261088657610885610956565b5b828204905092915050565b600061089c82610913565b91506108a783610913565b9250828210156108ba576108b9610927565b5b828203905092915050565b60006108d0826108e9565b9050919050565b60006108e2826108e9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f596f7520617265206e6f7420746865206f776e65720000000000000000000000600082015250565b7f4e6f7420456e6f7567682046756e64732c2061626f7274696e67000000000000600082015250565b6109e0816108c5565b81146109eb57600080fd5b50565b6109f7816108d7565b8114610a0257600080fd5b50565b610a0e81610909565b8114610a1957600080fd5b50565b610a2581610913565b8114610a3057600080fd5b5056fea2646970667358221220d536a260beb5ca6d0efcded63408ea449934e2f02535534d91814237656d166c64736f6c63430008030033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xA69 DUP1 PUSH2 0x60 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x74 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6D26EC18 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x85474728 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0xD18A42E1 EQ PUSH2 0x165 JUMPI PUSH2 0x83 JUMP JUMPDEST DUP1 PUSH4 0x718B2F8 EQ PUSH2 0x88 JUMPI DUP1 PUSH4 0xAD19AEB EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0xEE JUMPI PUSH2 0x83 JUMP JUMPDEST CALLDATASIZE PUSH2 0x83 JUMPI PUSH2 0x81 PUSH2 0x1A2 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x26C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBC SWAP2 SWAP1 PUSH2 0x7DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE7 SWAP2 SWAP1 PUSH2 0x6A8 JUMP JUMPDEST PUSH2 0x289 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x103 PUSH2 0x50C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x110 SWAP2 SWAP1 PUSH2 0x7DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x121 PUSH2 0x1A2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x138 PUSH2 0x514 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x5DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x171 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x187 SWAP2 SWAP1 PUSH2 0x67F JUMP JUMPDEST PUSH2 0x604 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x199 SWAP2 SWAP1 PUSH2 0x7F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE PUSH8 0xFFFFFFFFFFFFFFFF AND CALLVALUE EQ PUSH2 0x1E2 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST CALLVALUE PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x244 SWAP2 SWAP1 PUSH2 0x822 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x860 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0x333 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x32A SWAP1 PUSH2 0x7BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x392 SWAP2 SWAP1 PUSH2 0x891 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x42F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x491 SWAP2 SWAP1 PUSH2 0x891 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x507 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x5A2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x599 SWAP1 PUSH2 0x79B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x63A DUP2 PUSH2 0x9D7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x64F DUP2 PUSH2 0x9EE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x664 DUP2 PUSH2 0xA05 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x679 DUP2 PUSH2 0xA1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x691 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x69F DUP5 DUP3 DUP6 ADD PUSH2 0x62B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6C9 DUP6 DUP3 DUP7 ADD PUSH2 0x640 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6DA DUP6 DUP3 DUP7 ADD PUSH2 0x66A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x704 DUP5 DUP3 DUP6 ADD PUSH2 0x655 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x716 DUP2 PUSH2 0x8C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x729 PUSH1 0x15 DUP4 PUSH2 0x811 JUMP JUMPDEST SWAP2 POP PUSH2 0x734 DUP3 PUSH2 0x985 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74C PUSH1 0x1A DUP4 PUSH2 0x811 JUMP JUMPDEST SWAP2 POP PUSH2 0x757 DUP3 PUSH2 0x9AE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x76B DUP2 PUSH2 0x909 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x77A DUP2 PUSH2 0x913 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x795 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x70D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x7B4 DUP2 PUSH2 0x71C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x7D4 DUP2 PUSH2 0x73F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x7F0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x762 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x80B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x771 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x82D DUP3 PUSH2 0x913 JUMP JUMPDEST SWAP2 POP PUSH2 0x838 DUP4 PUSH2 0x913 JUMP JUMPDEST SWAP3 POP DUP3 PUSH8 0xFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x855 JUMPI PUSH2 0x854 PUSH2 0x927 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x86B DUP3 PUSH2 0x909 JUMP JUMPDEST SWAP2 POP PUSH2 0x876 DUP4 PUSH2 0x909 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x956 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89C DUP3 PUSH2 0x913 JUMP JUMPDEST SWAP2 POP PUSH2 0x8A7 DUP4 PUSH2 0x913 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x8BA JUMPI PUSH2 0x8B9 PUSH2 0x927 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8D0 DUP3 PUSH2 0x8E9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E2 DUP3 PUSH2 0x8E9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x596F7520617265206E6F7420746865206F776E65720000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E6F7420456E6F7567682046756E64732C2061626F7274696E67000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x9E0 DUP2 PUSH2 0x8C5 JUMP JUMPDEST DUP2 EQ PUSH2 0x9EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x9F7 DUP2 PUSH2 0x8D7 JUMP JUMPDEST DUP2 EQ PUSH2 0xA02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xA0E DUP2 PUSH2 0x909 JUMP JUMPDEST DUP2 EQ PUSH2 0xA19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xA25 DUP2 PUSH2 0x913 JUMP JUMPDEST DUP2 EQ PUSH2 0xA30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD5 CALLDATASIZE LOG2 PUSH1 0xBE 0xB5 0xCA PUSH14 0xEFCDED63408EA449934E2F02535 MSTORE8 0x4D SWAP2 DUP2 TIMESTAMP CALLDATACOPY PUSH6 0x6D166C64736F PUSH13 0x63430008030033000000000000 ", | |
"sourceMap": "57:1172:0:-:0;;;171:58;;;;;;;;;;211:10;195:5;;:27;;;;;;;;;;;;;;;;;;57:1172;;;;;;" | |
}, | |
"deployedBytecode": { | |
"generatedSources": [ | |
{ | |
"ast": { | |
"nodeType": "YulBlock", | |
"src": "0:6815:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "59:87:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "69:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "91:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "78:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "78:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "69:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "134:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "107:26:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "107:33:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "107:33:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "37:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "45:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "53:5:1", | |
"type": "" | |
} | |
], | |
"src": "7:139:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "212:95:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "222:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "244:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "231:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "231:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "222:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "295:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_address_payable", | |
"nodeType": "YulIdentifier", | |
"src": "260:34:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "260:41:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "260:41:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_address_payable", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "190:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "198:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "206:5:1", | |
"type": "" | |
} | |
], | |
"src": "152:155:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "365:87:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "375:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "397:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "384:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "384:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "375:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "440:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "413:26:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "413:33:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "413:33:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "343:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "351:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "359:5:1", | |
"type": "" | |
} | |
], | |
"src": "313:139:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "509:86:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "519:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "541:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "528:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "528:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "519:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "583:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_uint64", | |
"nodeType": "YulIdentifier", | |
"src": "557:25:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "557:32:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "557:32:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_uint64", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "487:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "495:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "503:5:1", | |
"type": "" | |
} | |
], | |
"src": "458:137:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "667:196:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "713:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "722:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "725:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "715:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "715:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "715:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "688:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "697:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "684:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "684:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "709:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "680:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "680:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "677:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "739:117:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "754:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "768:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "758:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "783:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "818:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "829:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "814:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "814:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "838:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "793:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "793:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "783:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "637:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "648:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "660:6:1", | |
"type": "" | |
} | |
], | |
"src": "601:262:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "959:331:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1005:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1014:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1017:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "1007:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1007:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1007:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "980:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "989:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "976:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "976:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1001:2:1", | |
"type": "", | |
"value": "64" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "972:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "972:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "969:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "1031:125:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1046:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1060:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "1050:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1075:71:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1118:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "1129:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1114:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1114:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1138:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_address_payable", | |
"nodeType": "YulIdentifier", | |
"src": "1085:28:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1085:61:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "1075:6:1" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "1166:117:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1181:16:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1195:2:1", | |
"type": "", | |
"value": "32" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "1185:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1211:62:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1245:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "1256:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1241:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1241:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1265:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_uint64", | |
"nodeType": "YulIdentifier", | |
"src": "1221:19:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1221:52:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value1", | |
"nodeType": "YulIdentifier", | |
"src": "1211:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_address_payablet_uint64", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "921:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "932:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "944:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "value1", | |
"nodeType": "YulTypedName", | |
"src": "952:6:1", | |
"type": "" | |
} | |
], | |
"src": "869:421:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1362:196:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1408:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1417:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1420:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "1410:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1410:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1410:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1383:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1392:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "1379:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1379:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1404:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "1375:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1375:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "1372:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "1434:117:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1449:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1463:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "1453:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1478:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1513:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "1524:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1509:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1509:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1533:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "1488:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1488:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "1478:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "1332:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "1343:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "1355:6:1", | |
"type": "" | |
} | |
], | |
"src": "1296:262:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1629:53:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1646:3:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "1669:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "1651:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1651:24:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "1639:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1639:37:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1639:37:1" | |
} | |
] | |
}, | |
"name": "abi_encode_t_address_to_t_address_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "1617:5:1", | |
"type": "" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "1624:3:1", | |
"type": "" | |
} | |
], | |
"src": "1564:118:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1834:220:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1844:74:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1910:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1915:2:1", | |
"type": "", | |
"value": "21" | |
} | |
], | |
"functionName": { | |
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "1851:58:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1851:67:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1844:3:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2016:3:1" | |
} | |
], | |
"functionName": { | |
"name": "store_literal_in_memory_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc", | |
"nodeType": "YulIdentifier", | |
"src": "1927:88:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1927:93:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1927:93:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2029:19:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2040:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2045:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2036:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2036:12:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "end", | |
"nodeType": "YulIdentifier", | |
"src": "2029:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "1822:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "1830:3:1", | |
"type": "" | |
} | |
], | |
"src": "1688:366:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2206:220:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2216:74:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2282:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2287:2:1", | |
"type": "", | |
"value": "26" | |
} | |
], | |
"functionName": { | |
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "2223:58:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2223:67:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2216:3:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2388:3:1" | |
} | |
], | |
"functionName": { | |
"name": "store_literal_in_memory_6f2fbb422158b9c9e2fcb796cc4e0e3f306018d47a95a6ec70bd4666c5998143", | |
"nodeType": "YulIdentifier", | |
"src": "2299:88:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2299:93:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2299:93:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2401:19:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2412:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2417:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2408:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2408:12:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "end", | |
"nodeType": "YulIdentifier", | |
"src": "2401:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_t_stringliteral_6f2fbb422158b9c9e2fcb796cc4e0e3f306018d47a95a6ec70bd4666c5998143_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "2194:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "2202:3:1", | |
"type": "" | |
} | |
], | |
"src": "2060:366:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2497:53:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2514:3:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2537:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "2519:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2519:24:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "2507:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2507:37:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2507:37:1" | |
} | |
] | |
}, | |
"name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "2485:5:1", | |
"type": "" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "2492:3:1", | |
"type": "" | |
} | |
], | |
"src": "2432:118:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2619:52:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2636:3:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2658:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint64", | |
"nodeType": "YulIdentifier", | |
"src": "2641:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2641:23:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "2629:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2629:36:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2629:36:1" | |
} | |
] | |
}, | |
"name": "abi_encode_t_uint64_to_t_uint64_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "2607:5:1", | |
"type": "" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "2614:3:1", | |
"type": "" | |
} | |
], | |
"src": "2556:115:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2775:124:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2785:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "2797:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2808:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2793:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2793:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "2785:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "2865:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "2878:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2889:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2874:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2874:17:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_address_to_t_address_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "2821:43:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2821:71:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2821:71:1" | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "2747:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "2759:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "2770:4:1", | |
"type": "" | |
} | |
], | |
"src": "2677:222:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "3076:248:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "3086:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3098:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3109:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3094:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3094:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3086:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3133:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3144:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3129:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3129:17:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3152:4:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3158:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "3148:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3148:20:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "3122:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3122:47:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "3122:47:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "3178:139:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3312:4:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "3186:124:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3186:131:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3178:4:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc__to_t_string_memory_ptr__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "3056:9:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "3071:4:1", | |
"type": "" | |
} | |
], | |
"src": "2905:419:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "3501:248:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "3511:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3523:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3534:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3519:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3519:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3511:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3558:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3569:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3554:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3554:17:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3577:4:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3583:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "3573:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3573:20:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "3547:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3547:47:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "3547:47:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "3603:139:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3737:4:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_stringliteral_6f2fbb422158b9c9e2fcb796cc4e0e3f306018d47a95a6ec70bd4666c5998143_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "3611:124:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3611:131:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3603:4:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_stringliteral_6f2fbb422158b9c9e2fcb796cc4e0e3f306018d47a95a6ec70bd4666c5998143__to_t_string_memory_ptr__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "3481:9:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "3496:4:1", | |
"type": "" | |
} | |
], | |
"src": "3330:419:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "3853:124:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "3863:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3875:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3886:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3871:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3871:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3863:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "3943:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3956:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3967:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3952:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3952:17:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "3899:43:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3899:71:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "3899:71:1" | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "3825:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "3837:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "3848:4:1", | |
"type": "" | |
} | |
], | |
"src": "3755:222:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4079:122:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4089:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "4101:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "4112:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "4097:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4097:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "4089:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "4167:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "4180:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "4191:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "4176:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4176:17:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_uint64_to_t_uint64_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "4125:41:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4125:69:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "4125:69:1" | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "4051:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "4063:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "4074:4:1", | |
"type": "" | |
} | |
], | |
"src": "3983:218:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4303:73:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "4320:3:1" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "4325:6:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "4313:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4313:19:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "4313:19:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4341:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "4360:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "4365:4:1", | |
"type": "", | |
"value": "0x20" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "4356:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4356:14:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "updated_pos", | |
"nodeType": "YulIdentifier", | |
"src": "4341:11:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "4275:3:1", | |
"type": "" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulTypedName", | |
"src": "4280:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "updated_pos", | |
"nodeType": "YulTypedName", | |
"src": "4291:11:1", | |
"type": "" | |
} | |
], | |
"src": "4207:169:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4425:211:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4435:24:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4457:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint64", | |
"nodeType": "YulIdentifier", | |
"src": "4440:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4440:19:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4435:1:1" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4468:24:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4490:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint64", | |
"nodeType": "YulIdentifier", | |
"src": "4473:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4473:19:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4468:1:1" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4582:22:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [], | |
"functionName": { | |
"name": "panic_error_0x11", | |
"nodeType": "YulIdentifier", | |
"src": "4584:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4584:18:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "4584:18:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4551:1:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "4558:18:1", | |
"type": "", | |
"value": "0xffffffffffffffff" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4578:1:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "4554:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4554:26:1" | |
} | |
], | |
"functionName": { | |
"name": "gt", | |
"nodeType": "YulIdentifier", | |
"src": "4548:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4548:33:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "4545:2:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4614:16:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4625:1:1" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4628:1:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "4621:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4621:9:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "sum", | |
"nodeType": "YulIdentifier", | |
"src": "4614:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "checked_add_t_uint64", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "x", | |
"nodeType": "YulTypedName", | |
"src": "4412:1:1", | |
"type": "" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulTypedName", | |
"src": "4415:1:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "sum", | |
"nodeType": "YulTypedName", | |
"src": "4421:3:1", | |
"type": "" | |
} | |
], | |
"src": "4382:254:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4684:143:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4694:25:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4717:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "4699:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4699:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4694:1:1" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4728:25:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4751:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "4733:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4733:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4728:1:1" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4775:22:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [], | |
"functionName": { | |
"name": "panic_error_0x12", | |
"nodeType": "YulIdentifier", | |
"src": "4777:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4777:18:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "4777:18:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4772:1:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "4765:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4765:9:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "4762:2:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4807:14:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4816:1:1" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4819:1:1" | |
} | |
], | |
"functionName": { | |
"name": "div", | |
"nodeType": "YulIdentifier", | |
"src": "4812:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4812:9:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "r", | |
"nodeType": "YulIdentifier", | |
"src": "4807:1:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "checked_div_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "x", | |
"nodeType": "YulTypedName", | |
"src": "4673:1:1", | |
"type": "" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulTypedName", | |
"src": "4676:1:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "r", | |
"nodeType": "YulTypedName", | |
"src": "4682:1:1", | |
"type": "" | |
} | |
], | |
"src": "4642:185:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4877:144:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4887:24:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4909:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint64", | |
"nodeType": "YulIdentifier", | |
"src": "4892:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4892:19:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4887:1:1" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4920:24:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4942:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint64", | |
"nodeType": "YulIdentifier", | |
"src": "4925:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4925:19:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4920:1:1" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4966:22:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [], | |
"functionName": { | |
"name": "panic_error_0x11", | |
"nodeType": "YulIdentifier", | |
"src": "4968:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4968:18:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "4968:18:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4960:1:1" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4963:1:1" | |
} | |
], | |
"functionName": { | |
"name": "lt", | |
"nodeType": "YulIdentifier", | |
"src": "4957:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4957:8:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "4954:2:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4998:17:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "5010:1:1" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "5013:1:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "5006:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5006:9:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "diff", | |
"nodeType": "YulIdentifier", | |
"src": "4998:4:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "checked_sub_t_uint64", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "x", | |
"nodeType": "YulTypedName", | |
"src": "4863:1:1", | |
"type": "" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulTypedName", | |
"src": "4866:1:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "diff", | |
"nodeType": "YulTypedName", | |
"src": "4872:4:1", | |
"type": "" | |
} | |
], | |
"src": "4833:188:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5072:51:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5082:35:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5111:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint160", | |
"nodeType": "YulIdentifier", | |
"src": "5093:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5093:24:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "5082:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "5054:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "5064:7:1", | |
"type": "" | |
} | |
], | |
"src": "5027:96:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5182:51:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5192:35:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5221:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint160", | |
"nodeType": "YulIdentifier", | |
"src": "5203:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5203:24:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "5192:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_address_payable", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "5164:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "5174:7:1", | |
"type": "" | |
} | |
], | |
"src": "5129:104:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5284:81:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5294:65:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5309:5:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5316:42:1", | |
"type": "", | |
"value": "0xffffffffffffffffffffffffffffffffffffffff" | |
} | |
], | |
"functionName": { | |
"name": "and", | |
"nodeType": "YulIdentifier", | |
"src": "5305:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5305:54:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "5294:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_uint160", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "5266:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "5276:7:1", | |
"type": "" | |
} | |
], | |
"src": "5239:126:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5416:32:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5426:16:1", | |
"value": { | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5437:5:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "5426:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "5398:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "5408:7:1", | |
"type": "" | |
} | |
], | |
"src": "5371:77:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5498:57:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5508:41:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5523:5:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5530:18:1", | |
"type": "", | |
"value": "0xffffffffffffffff" | |
} | |
], | |
"functionName": { | |
"name": "and", | |
"nodeType": "YulIdentifier", | |
"src": "5519:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5519:30:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "5508:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_uint64", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "5480:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "5490:7:1", | |
"type": "" | |
} | |
], | |
"src": "5454:101:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5589:152:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5606:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5609:77:1", | |
"type": "", | |
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "5599:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5599:88:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "5599:88:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5703:1:1", | |
"type": "", | |
"value": "4" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5706:4:1", | |
"type": "", | |
"value": "0x11" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "5696:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5696:15:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "5696:15:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5727:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5730:4:1", | |
"type": "", | |
"value": "0x24" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "5720:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5720:15:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "5720:15:1" | |
} | |
] | |
}, | |
"name": "panic_error_0x11", | |
"nodeType": "YulFunctionDefinition", | |
"src": "5561:180:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5775:152:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5792:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5795:77:1", | |
"type": "", | |
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "5785:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5785:88:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "5785:88:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5889:1:1", | |
"type": "", | |
"value": "4" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5892:4:1", | |
"type": "", | |
"value": "0x12" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "5882:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5882:15:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "5882:15:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5913:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5916:4:1", | |
"type": "", | |
"value": "0x24" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "5906:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5906:15:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "5906:15:1" | |
} | |
] | |
}, | |
"name": "panic_error_0x12", | |
"nodeType": "YulFunctionDefinition", | |
"src": "5747:180:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6039:65:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "memPtr", | |
"nodeType": "YulIdentifier", | |
"src": "6061:6:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6069:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "6057:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6057:14:1" | |
}, | |
{ | |
"kind": "string", | |
"nodeType": "YulLiteral", | |
"src": "6073:23:1", | |
"type": "", | |
"value": "You are not the owner" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "6050:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6050:47:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6050:47:1" | |
} | |
] | |
}, | |
"name": "store_literal_in_memory_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "memPtr", | |
"nodeType": "YulTypedName", | |
"src": "6031:6:1", | |
"type": "" | |
} | |
], | |
"src": "5933:171:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6216:70:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "memPtr", | |
"nodeType": "YulIdentifier", | |
"src": "6238:6:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6246:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "6234:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6234:14:1" | |
}, | |
{ | |
"kind": "string", | |
"nodeType": "YulLiteral", | |
"src": "6250:28:1", | |
"type": "", | |
"value": "Not Enough Funds, aborting" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "6227:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6227:52:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6227:52:1" | |
} | |
] | |
}, | |
"name": "store_literal_in_memory_6f2fbb422158b9c9e2fcb796cc4e0e3f306018d47a95a6ec70bd4666c5998143", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "memPtr", | |
"nodeType": "YulTypedName", | |
"src": "6208:6:1", | |
"type": "" | |
} | |
], | |
"src": "6110:176:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6335:79:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6392:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6401:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6404:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "6394:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6394:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6394:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6358:5:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6383:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "6365:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6365:24:1" | |
} | |
], | |
"functionName": { | |
"name": "eq", | |
"nodeType": "YulIdentifier", | |
"src": "6355:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6355:35:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "6348:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6348:43:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "6345:2:1" | |
} | |
] | |
}, | |
"name": "validator_revert_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "6328:5:1", | |
"type": "" | |
} | |
], | |
"src": "6292:122:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6471:87:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6536:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6545:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6548:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "6538:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6538:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6538:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6494:5:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6527:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_address_payable", | |
"nodeType": "YulIdentifier", | |
"src": "6501:25:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6501:32:1" | |
} | |
], | |
"functionName": { | |
"name": "eq", | |
"nodeType": "YulIdentifier", | |
"src": "6491:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6491:43:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "6484:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6484:51:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "6481:2:1" | |
} | |
] | |
}, | |
"name": "validator_revert_t_address_payable", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "6464:5:1", | |
"type": "" | |
} | |
], | |
"src": "6420:138:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6607:79:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6664:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6673:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6676:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "6666:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6666:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6666:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6630:5:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6655:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "6637:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6637:24:1" | |
} | |
], | |
"functionName": { | |
"name": "eq", | |
"nodeType": "YulIdentifier", | |
"src": "6627:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6627:35:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "6620:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6620:43:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "6617:2:1" | |
} | |
] | |
}, | |
"name": "validator_revert_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "6600:5:1", | |
"type": "" | |
} | |
], | |
"src": "6564:122:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6734:78:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6790:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6799:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6802:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "6792:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6792:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6792:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6757:5:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6781:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint64", | |
"nodeType": "YulIdentifier", | |
"src": "6764:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6764:23:1" | |
} | |
], | |
"functionName": { | |
"name": "eq", | |
"nodeType": "YulIdentifier", | |
"src": "6754:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6754:34:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "6747:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6747:42:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "6744:2:1" | |
} | |
] | |
}, | |
"name": "validator_revert_t_uint64", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "6727:5:1", | |
"type": "" | |
} | |
], | |
"src": "6692:120:1" | |
} | |
] | |
}, | |
"contents": "{\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_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\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_decode_tuple_t_address_payablet_uint64(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n store_literal_in_memory_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_6f2fbb422158b9c9e2fcb796cc4e0e3f306018d47a95a6ec70bd4666c5998143_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_6f2fbb422158b9c9e2fcb796cc4e0e3f306018d47a95a6ec70bd4666c5998143(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc__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_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_6f2fbb422158b9c9e2fcb796cc4e0e3f306018d47a95a6ec70bd4666c5998143__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_6f2fbb422158b9c9e2fcb796cc4e0e3f306018d47a95a6ec70bd4666c5998143_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function 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 checked_add_t_uint64(x, y) -> sum {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function checked_sub_t_uint64(x, y) -> diff {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc(memPtr) {\n\n mstore(add(memPtr, 0), \"You are not the owner\")\n\n }\n\n function store_literal_in_memory_6f2fbb422158b9c9e2fcb796cc4e0e3f306018d47a95a6ec70bd4666c5998143(memPtr) {\n\n mstore(add(memPtr, 0), \"Not Enough Funds, aborting\")\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n}\n", | |
"id": 1, | |
"language": "Yul", | |
"name": "#utility.yul" | |
} | |
], | |
"immutableReferences": {}, | |
"linkReferences": {}, | |
"object": "6080604052600436106100745760003560e01c80636d26ec181161004e5780636d26ec18146101195780638547472814610123578063893d20e81461013a578063d18a42e11461016557610083565b80630718b2f8146100885780630ad19aeb146100c557806312065fe0146100ee57610083565b36610083576100816101a2565b005b600080fd5b34801561009457600080fd5b506100af60048036038101906100aa91906106e4565b61026c565b6040516100bc91906107db565b60405180910390f35b3480156100d157600080fd5b506100ec60048036038101906100e791906106a8565b610289565b005b3480156100fa57600080fd5b5061010361050c565b60405161011091906107db565b60405180910390f35b6101216101a2565b005b34801561012f57600080fd5b50610138610514565b005b34801561014657600080fd5b5061014f6105db565b60405161015c9190610780565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061067f565b610604565b60405161019991906107f6565b60405180910390f35b3467ffffffffffffffff1634146101e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b34600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff166102449190610822565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550565b6000670de0b6b3a7640000826102829190610860565b9050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff161115610333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032a906107bb565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff166103929190610891565b67ffffffffffffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16101561042f577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff166104919190610891565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc8267ffffffffffffffff169081150290604051600060405180830381858888f19350505050158015610507573d6000803e3d6000fd5b505050565b600047905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105999061079b565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60016020528060005260406000206000915054906101000a900467ffffffffffffffff1681565b60008135905061063a816109d7565b92915050565b60008135905061064f816109ee565b92915050565b60008135905061066481610a05565b92915050565b60008135905061067981610a1c565b92915050565b60006020828403121561069157600080fd5b600061069f8482850161062b565b91505092915050565b600080604083850312156106bb57600080fd5b60006106c985828601610640565b92505060206106da8582860161066a565b9150509250929050565b6000602082840312156106f657600080fd5b600061070484828501610655565b91505092915050565b610716816108c5565b82525050565b6000610729601583610811565b915061073482610985565b602082019050919050565b600061074c601a83610811565b9150610757826109ae565b602082019050919050565b61076b81610909565b82525050565b61077a81610913565b82525050565b6000602082019050610795600083018461070d565b92915050565b600060208201905081810360008301526107b48161071c565b9050919050565b600060208201905081810360008301526107d48161073f565b9050919050565b60006020820190506107f06000830184610762565b92915050565b600060208201905061080b6000830184610771565b92915050565b600082825260208201905092915050565b600061082d82610913565b915061083883610913565b92508267ffffffffffffffff0382111561085557610854610927565b5b828201905092915050565b600061086b82610909565b915061087683610909565b92508261088657610885610956565b5b828204905092915050565b600061089c82610913565b91506108a783610913565b9250828210156108ba576108b9610927565b5b828203905092915050565b60006108d0826108e9565b9050919050565b60006108e2826108e9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f596f7520617265206e6f7420746865206f776e65720000000000000000000000600082015250565b7f4e6f7420456e6f7567682046756e64732c2061626f7274696e67000000000000600082015250565b6109e0816108c5565b81146109eb57600080fd5b50565b6109f7816108d7565b8114610a0257600080fd5b50565b610a0e81610909565b8114610a1957600080fd5b50565b610a2581610913565b8114610a3057600080fd5b5056fea2646970667358221220d536a260beb5ca6d0efcded63408ea449934e2f02535534d91814237656d166c64736f6c63430008030033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x74 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6D26EC18 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x85474728 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0xD18A42E1 EQ PUSH2 0x165 JUMPI PUSH2 0x83 JUMP JUMPDEST DUP1 PUSH4 0x718B2F8 EQ PUSH2 0x88 JUMPI DUP1 PUSH4 0xAD19AEB EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0xEE JUMPI PUSH2 0x83 JUMP JUMPDEST CALLDATASIZE PUSH2 0x83 JUMPI PUSH2 0x81 PUSH2 0x1A2 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x26C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBC SWAP2 SWAP1 PUSH2 0x7DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE7 SWAP2 SWAP1 PUSH2 0x6A8 JUMP JUMPDEST PUSH2 0x289 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x103 PUSH2 0x50C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x110 SWAP2 SWAP1 PUSH2 0x7DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x121 PUSH2 0x1A2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x138 PUSH2 0x514 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x5DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x171 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x187 SWAP2 SWAP1 PUSH2 0x67F JUMP JUMPDEST PUSH2 0x604 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x199 SWAP2 SWAP1 PUSH2 0x7F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE PUSH8 0xFFFFFFFFFFFFFFFF AND CALLVALUE EQ PUSH2 0x1E2 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST CALLVALUE PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x244 SWAP2 SWAP1 PUSH2 0x822 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x860 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0x333 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x32A SWAP1 PUSH2 0x7BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x392 SWAP2 SWAP1 PUSH2 0x891 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x42F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x491 SWAP2 SWAP1 PUSH2 0x891 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x507 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x5A2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x599 SWAP1 PUSH2 0x79B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x63A DUP2 PUSH2 0x9D7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x64F DUP2 PUSH2 0x9EE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x664 DUP2 PUSH2 0xA05 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x679 DUP2 PUSH2 0xA1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x691 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x69F DUP5 DUP3 DUP6 ADD PUSH2 0x62B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6C9 DUP6 DUP3 DUP7 ADD PUSH2 0x640 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6DA DUP6 DUP3 DUP7 ADD PUSH2 0x66A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x704 DUP5 DUP3 DUP6 ADD PUSH2 0x655 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x716 DUP2 PUSH2 0x8C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x729 PUSH1 0x15 DUP4 PUSH2 0x811 JUMP JUMPDEST SWAP2 POP PUSH2 0x734 DUP3 PUSH2 0x985 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74C PUSH1 0x1A DUP4 PUSH2 0x811 JUMP JUMPDEST SWAP2 POP PUSH2 0x757 DUP3 PUSH2 0x9AE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x76B DUP2 PUSH2 0x909 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x77A DUP2 PUSH2 0x913 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x795 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x70D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x7B4 DUP2 PUSH2 0x71C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x7D4 DUP2 PUSH2 0x73F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x7F0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x762 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x80B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x771 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x82D DUP3 PUSH2 0x913 JUMP JUMPDEST SWAP2 POP PUSH2 0x838 DUP4 PUSH2 0x913 JUMP JUMPDEST SWAP3 POP DUP3 PUSH8 0xFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x855 JUMPI PUSH2 0x854 PUSH2 0x927 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x86B DUP3 PUSH2 0x909 JUMP JUMPDEST SWAP2 POP PUSH2 0x876 DUP4 PUSH2 0x909 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x956 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89C DUP3 PUSH2 0x913 JUMP JUMPDEST SWAP2 POP PUSH2 0x8A7 DUP4 PUSH2 0x913 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x8BA JUMPI PUSH2 0x8B9 PUSH2 0x927 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8D0 DUP3 PUSH2 0x8E9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E2 DUP3 PUSH2 0x8E9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x596F7520617265206E6F7420746865206F776E65720000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E6F7420456E6F7567682046756E64732C2061626F7274696E67000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x9E0 DUP2 PUSH2 0x8C5 JUMP JUMPDEST DUP2 EQ PUSH2 0x9EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x9F7 DUP2 PUSH2 0x8D7 JUMP JUMPDEST DUP2 EQ PUSH2 0xA02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xA0E DUP2 PUSH2 0x909 JUMP JUMPDEST DUP2 EQ PUSH2 0xA19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xA25 DUP2 PUSH2 0x913 JUMP JUMPDEST DUP2 EQ PUSH2 0xA30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD5 CALLDATASIZE LOG2 PUSH1 0xBE 0xB5 0xCA PUSH14 0xEFCDED63408EA449934E2F02535 MSTORE8 0x4D SWAP2 DUP2 TIMESTAMP CALLDATACOPY PUSH6 0x6D166C64736F PUSH13 0x63430008030033000000000000 ", | |
"sourceMap": "57:1172:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1206:14;:12;:14::i;:::-;57:1172;;;;;464:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;735:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1069:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;576:153;;;:::i;:::-;;235:138;;;;;;;;;;;;;:::i;:::-;;379:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;115:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;576:153;653:9;633:30;;:9;:30;626:38;;;;;;;;;;;;712:9;674:15;:27;690:10;674:27;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;576:153::o;464:106::-;523:4;556:7;546;:17;;;;:::i;:::-;539:24;;464:106;;;:::o;735:328::-;831:15;:27;847:10;831:27;;;;;;;;;;;;;;;;;;;;;;;;;820:38;;:7;:38;;;;812:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;968:7;938:15;:27;954:10;938:27;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;907:68;;:15;:27;923:10;907:27;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;900:76;;;;;;;;;;;;1018:7;987:15;:27;1003:10;987:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1035:3;:12;;:21;1048:7;1035:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;735:328;;:::o;1069:93::-;1111:4;1134:21;1127:28;;1069:93;:::o;235:138::-;306:5;;;;;;;;;;292:19;;:10;:19;;;284:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;360:5;;;;;;;;;;347:19;;;379:79;420:7;446:5;;;;;;;;;;;439:12;;379:79;:::o;115:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:139::-;;397:6;384:20;375:29;;413:33;440:5;413:33;:::i;:::-;365:87;;;;:::o;458:137::-;;541:6;528:20;519:29;;557:32;583:5;557:32;:::i;:::-;509:86;;;;:::o;601:262::-;;709:2;697:9;688:7;684:23;680:32;677:2;;;725:1;722;715:12;677:2;768:1;793:53;838:7;829:6;818:9;814:22;793:53;:::i;:::-;783:63;;739:117;667:196;;;;:::o;869:421::-;;;1001:2;989:9;980:7;976:23;972:32;969:2;;;1017:1;1014;1007:12;969:2;1060:1;1085:61;1138:7;1129:6;1118:9;1114:22;1085:61;:::i;:::-;1075:71;;1031:125;1195:2;1221:52;1265:7;1256:6;1245:9;1241:22;1221:52;:::i;:::-;1211:62;;1166:117;959:331;;;;;:::o;1296:262::-;;1404:2;1392:9;1383:7;1379:23;1375:32;1372:2;;;1420:1;1417;1410:12;1372:2;1463:1;1488:53;1533:7;1524:6;1513:9;1509:22;1488:53;:::i;:::-;1478:63;;1434:117;1362:196;;;;:::o;1564:118::-;1651:24;1669:5;1651:24;:::i;:::-;1646:3;1639:37;1629:53;;:::o;1688:366::-;;1851:67;1915:2;1910:3;1851:67;:::i;:::-;1844:74;;1927:93;2016:3;1927:93;:::i;:::-;2045:2;2040:3;2036:12;2029:19;;1834:220;;;:::o;2060:366::-;;2223:67;2287:2;2282:3;2223:67;:::i;:::-;2216:74;;2299:93;2388:3;2299:93;:::i;:::-;2417:2;2412:3;2408:12;2401:19;;2206:220;;;:::o;2432:118::-;2519:24;2537:5;2519:24;:::i;:::-;2514:3;2507:37;2497:53;;:::o;2556:115::-;2641:23;2658:5;2641:23;:::i;:::-;2636:3;2629:36;2619:52;;:::o;2677:222::-;;2808:2;2797:9;2793:18;2785:26;;2821:71;2889:1;2878:9;2874:17;2865:6;2821:71;:::i;:::-;2775:124;;;;:::o;2905:419::-;;3109:2;3098:9;3094:18;3086:26;;3158:9;3152:4;3148:20;3144:1;3133:9;3129:17;3122:47;3186:131;3312:4;3186:131;:::i;:::-;3178:139;;3076:248;;;:::o;3330:419::-;;3534:2;3523:9;3519:18;3511:26;;3583:9;3577:4;3573:20;3569:1;3558:9;3554:17;3547:47;3611:131;3737:4;3611:131;:::i;:::-;3603:139;;3501:248;;;:::o;3755:222::-;;3886:2;3875:9;3871:18;3863:26;;3899:71;3967:1;3956:9;3952:17;3943:6;3899:71;:::i;:::-;3853:124;;;;:::o;3983:218::-;;4112:2;4101:9;4097:18;4089:26;;4125:69;4191:1;4180:9;4176:17;4167:6;4125:69;:::i;:::-;4079:122;;;;:::o;4207:169::-;;4325:6;4320:3;4313:19;4365:4;4360:3;4356:14;4341:29;;4303:73;;;;:::o;4382:254::-;;4440:19;4457:1;4440:19;:::i;:::-;4435:24;;4473:19;4490:1;4473:19;:::i;:::-;4468:24;;4578:1;4558:18;4554:26;4551:1;4548:33;4545:2;;;4584:18;;:::i;:::-;4545:2;4628:1;4625;4621:9;4614:16;;4425:211;;;;:::o;4642:185::-;;4699:20;4717:1;4699:20;:::i;:::-;4694:25;;4733:20;4751:1;4733:20;:::i;:::-;4728:25;;4772:1;4762:2;;4777:18;;:::i;:::-;4762:2;4819:1;4816;4812:9;4807:14;;4684:143;;;;:::o;4833:188::-;;4892:19;4909:1;4892:19;:::i;:::-;4887:24;;4925:19;4942:1;4925:19;:::i;:::-;4920:24;;4963:1;4960;4957:8;4954:2;;;4968:18;;:::i;:::-;4954:2;5013:1;5010;5006:9;4998:17;;4877:144;;;;:::o;5027:96::-;;5093:24;5111:5;5093:24;:::i;:::-;5082:35;;5072:51;;;:::o;5129:104::-;;5203:24;5221:5;5203:24;:::i;:::-;5192:35;;5182:51;;;:::o;5239:126::-;;5316:42;5309:5;5305:54;5294:65;;5284:81;;;:::o;5371:77::-;;5437:5;5426:16;;5416:32;;;:::o;5454:101::-;;5530:18;5523:5;5519:30;5508:41;;5498:57;;;:::o;5561:180::-;5609:77;5606:1;5599:88;5706:4;5703:1;5696:15;5730:4;5727:1;5720:15;5747:180;5795:77;5792:1;5785:88;5892:4;5889:1;5882:15;5916:4;5913:1;5906:15;5933:171;6073:23;6069:1;6061:6;6057:14;6050:47;6039:65;:::o;6110:176::-;6250:28;6246:1;6238:6;6234:14;6227:52;6216:70;:::o;6292:122::-;6365:24;6383:5;6365:24;:::i;:::-;6358:5;6355:35;6345:2;;6404:1;6401;6394:12;6345:2;6335:79;:::o;6420:138::-;6501:32;6527:5;6501:32;:::i;:::-;6494:5;6491:43;6481:2;;6548:1;6545;6538:12;6481:2;6471:87;:::o;6564:122::-;6637:24;6655:5;6637:24;:::i;:::-;6630:5;6627:35;6617:2;;6676:1;6673;6666:12;6617:2;6607:79;:::o;6692:120::-;6764:23;6781:5;6764:23;:::i;:::-;6757:5;6754:34;6744:2;;6802:1;6799;6792:12;6744:2;6734:78;:::o" | |
}, | |
"gasEstimates": { | |
"creation": { | |
"codeDepositCost": "533000", | |
"executionCost": "21434", | |
"totalCost": "554434" | |
}, | |
"external": { | |
"balanceReceived(address)": "1611", | |
"convertWeiToEth(uint256)": "infinite", | |
"destroySmartContract()": "31866", | |
"getBalance()": "384", | |
"getOwner()": "1266", | |
"receiveMoney()": "infinite", | |
"withdrawMoney(address,uint64)": "infinite" | |
} | |
}, | |
"methodIdentifiers": { | |
"balanceReceived(address)": "d18a42e1", | |
"convertWeiToEth(uint256)": "0718b2f8", | |
"destroySmartContract()": "85474728", | |
"getBalance()": "12065fe0", | |
"getOwner()": "893d20e8", | |
"receiveMoney()": "6d26ec18", | |
"withdrawMoney(address,uint64)": "0ad19aeb" | |
} | |
}, | |
"abi": [ | |
{ | |
"inputs": [], | |
"stateMutability": "nonpayable", | |
"type": "constructor" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "balanceReceived", | |
"outputs": [ | |
{ | |
"internalType": "uint64", | |
"name": "", | |
"type": "uint64" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "_amount", | |
"type": "uint256" | |
} | |
], | |
"name": "convertWeiToEth", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "pure", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "destroySmartContract", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "getBalance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "getOwner", | |
"outputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "receiveMoney", | |
"outputs": [], | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address payable", | |
"name": "_to", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint64", | |
"name": "_amount", | |
"type": "uint64" | |
} | |
], | |
"name": "withdrawMoney", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"stateMutability": "payable", | |
"type": "receive" | |
} | |
] | |
} |
{ | |
"compiler": { | |
"version": "0.8.3+commit.8d00100c" | |
}, | |
"language": "Solidity", | |
"output": { | |
"abi": [ | |
{ | |
"inputs": [], | |
"stateMutability": "nonpayable", | |
"type": "constructor" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "balanceReceived", | |
"outputs": [ | |
{ | |
"internalType": "uint64", | |
"name": "", | |
"type": "uint64" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "_amount", | |
"type": "uint256" | |
} | |
], | |
"name": "convertWeiToEth", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "pure", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "destroySmartContract", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "getBalance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "getOwner", | |
"outputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "receiveMoney", | |
"outputs": [], | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address payable", | |
"name": "_to", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint64", | |
"name": "_amount", | |
"type": "uint64" | |
} | |
], | |
"name": "withdrawMoney", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"stateMutability": "payable", | |
"type": "receive" | |
} | |
], | |
"devdoc": { | |
"kind": "dev", | |
"methods": {}, | |
"version": 1 | |
}, | |
"userdoc": { | |
"kind": "user", | |
"methods": {}, | |
"version": 1 | |
} | |
}, | |
"settings": { | |
"compilationTarget": { | |
"gist-2849d9a09aa997989e838e3b269144e9/FunctionExample.sol": "FunctionExample" | |
}, | |
"evmVersion": "istanbul", | |
"libraries": {}, | |
"metadata": { | |
"bytecodeHash": "ipfs" | |
}, | |
"optimizer": { | |
"enabled": false, | |
"runs": 200 | |
}, | |
"remappings": [] | |
}, | |
"sources": { | |
"gist-2849d9a09aa997989e838e3b269144e9/FunctionExample.sol": { | |
"keccak256": "0xcc1c44edc23e9011dc160ee50dc94234f74fa47a2c3a2eefbec14661cc47f143", | |
"license": "MIT", | |
"urls": [ | |
"bzz-raw://333a5b54a9293c7779f4c907eccc627d6eaa6aeb3294e88aa274ff2901718a6d", | |
"dweb:/ipfs/QmTxiJ54qjjSuvDvKTd5p5cZBpfLe3oAeZoAL8TZJK9nyR" | |
] | |
} | |
}, | |
"version": 1 | |
} |
{ | |
"deploy": { | |
"VM:-": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"main:1": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"ropsten:3": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"rinkeby:4": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"kovan:42": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"görli:5": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"Custom": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
} | |
}, | |
"data": { | |
"bytecode": { | |
"generatedSources": [], | |
"linkReferences": {}, | |
"object": "608060405234801561001057600080fd5b5060e28061001f6000396000f3fe60806040526004361060305760003560e01c806312065fe014603557806352a90c4214605d5780636d26ec18146085575b600080fd5b348015604057600080fd5b506047608d565b6040518082815260200191505060405180910390f35b348015606857600080fd5b50606f6095565b6040518082815260200191505060405180910390f35b608b609b565b005b600047905090565b60005481565b34600080828254019250508190555056fea264697066735822122087a35bc62ab79e3e6addd186942e442563e5a44c8d5d0e672582ca263c9b373664736f6c63430007060033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xE2 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x30 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH1 0x35 JUMPI DUP1 PUSH4 0x52A90C42 EQ PUSH1 0x5D JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH1 0x85 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x47 PUSH1 0x8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6F PUSH1 0x95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x8B PUSH1 0x9B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 LOG3 JUMPDEST 0xC6 0x2A 0xB7 SWAP15 RETURNDATACOPY PUSH11 0xDDD186942E442563E5A44C DUP14 0x5D 0xE PUSH8 0x2582CA263C9B3736 PUSH5 0x736F6C6343 STOP SMOD MOD STOP CALLER ", | |
"sourceMap": "59:245:0:-:0;;;;;;;;;;;;;;;;;;;" | |
}, | |
"deployedBytecode": { | |
"generatedSources": [], | |
"immutableReferences": {}, | |
"linkReferences": {}, | |
"object": "60806040526004361060305760003560e01c806312065fe014603557806352a90c4214605d5780636d26ec18146085575b600080fd5b348015604057600080fd5b506047608d565b6040518082815260200191505060405180910390f35b348015606857600080fd5b50606f6095565b6040518082815260200191505060405180910390f35b608b609b565b005b600047905090565b60005481565b34600080828254019250508190555056fea264697066735822122087a35bc62ab79e3e6addd186942e442563e5a44c8d5d0e672582ca263c9b373664736f6c63430007060033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x30 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH1 0x35 JUMPI DUP1 PUSH4 0x52A90C42 EQ PUSH1 0x5D JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH1 0x85 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x47 PUSH1 0x8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6F PUSH1 0x95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x8B PUSH1 0x9B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 LOG3 JUMPDEST 0xC6 0x2A 0xB7 SWAP15 RETURNDATACOPY PUSH11 0xDDD186942E442563E5A44C DUP14 0x5D 0xE PUSH8 0x2582CA263C9B3736 PUSH5 0x736F6C6343 STOP SMOD MOD STOP CALLER ", | |
"sourceMap": "59:245:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;209:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;85:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;119:84;;;:::i;:::-;;209:93;251:4;274:21;267:28;;209:93;:::o;85:27::-;;;;:::o;119:84::-;187:9;168:15;;:28;;;;;;;;;;;119:84::o" | |
}, | |
"gasEstimates": { | |
"creation": { | |
"codeDepositCost": "45200", | |
"executionCost": "99", | |
"totalCost": "45299" | |
}, | |
"external": { | |
"balanceReceived()": "1005", | |
"getBalance()": "193", | |
"receiveMoney()": "20974" | |
} | |
}, | |
"methodIdentifiers": { | |
"balanceReceived()": "52a90c42", | |
"getBalance()": "12065fe0", | |
"receiveMoney()": "6d26ec18" | |
} | |
}, | |
"abi": [ | |
{ | |
"inputs": [], | |
"name": "balanceReceived", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "getBalance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "receiveMoney", | |
"outputs": [], | |
"stateMutability": "payable", | |
"type": "function" | |
} | |
] | |
} |
{ | |
"compiler": { | |
"version": "0.7.6+commit.7338295f" | |
}, | |
"language": "Solidity", | |
"output": { | |
"abi": [ | |
{ | |
"inputs": [], | |
"name": "balanceReceived", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "getBalance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "receiveMoney", | |
"outputs": [], | |
"stateMutability": "payable", | |
"type": "function" | |
} | |
], | |
"devdoc": { | |
"kind": "dev", | |
"methods": {}, | |
"version": 1 | |
}, | |
"userdoc": { | |
"kind": "user", | |
"methods": {}, | |
"version": 1 | |
} | |
}, | |
"settings": { | |
"compilationTarget": { | |
"gist-2849d9a09aa997989e838e3b269144e9/Logic.sol": "Logic" | |
}, | |
"evmVersion": "istanbul", | |
"libraries": {}, | |
"metadata": { | |
"bytecodeHash": "ipfs" | |
}, | |
"optimizer": { | |
"enabled": false, | |
"runs": 200 | |
}, | |
"remappings": [] | |
}, | |
"sources": { | |
"gist-2849d9a09aa997989e838e3b269144e9/Logic.sol": { | |
"keccak256": "0xc31d83048198e84451c2b5333e6d5a3ec459ec5810fe0cc69eddc1553e8ad1f2", | |
"license": "MIT", | |
"urls": [ | |
"bzz-raw://00764f6537fc877575bf0b91afa5a65d346226e1e9b69a6438674aacdd9a3c5e", | |
"dweb:/ipfs/QmWxggQSfkhd8m9hWjWbZVixGt82rnxfBUhJyzmdw6m76W" | |
] | |
} | |
}, | |
"version": 1 | |
} |
{ | |
"deploy": { | |
"VM:-": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"main:1": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"ropsten:3": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"rinkeby:4": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"kovan:42": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"görli:5": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"Custom": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
} | |
}, | |
"data": { | |
"bytecode": { | |
"generatedSources": [], | |
"linkReferences": {}, | |
"object": "608060405234801561001057600080fd5b506109eb806100206000396000f3fe6080604052600436106100705760003560e01c80638ac6bc431161004e5780638ac6bc43146100e0578063cbedbf5a14610109578063d18a42e114610113578063f1730a6b1461015157610070565b806312065fe0146100755780631b52b9de146100a057806354876921146100b7575b600080fd5b34801561008157600080fd5b5061008a61018e565b6040516100979190610748565b60405180910390f35b3480156100ac57600080fd5b506100b5610196565b005b3480156100c357600080fd5b506100de60048036038101906100d99190610674565b610273565b005b3480156100ec57600080fd5b50610107600480360381019061010291906105fc565b6103b2565b005b610111610410565b005b34801561011f57600080fd5b5061013a600480360381019061013591906105d3565b6104d5565b604051610148929190610763565b60405180910390f35b34801561015d57600080fd5b5061017860048036038101906101739190610638565b6104f9565b604051610185919061072d565b60405180910390f35b600047905090565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050600033905060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561026e573d6000803e3d6000fd5b505050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548111156102f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ee9061070d565b60405180910390fd5b6000339050670de0b6b3a76400008261031091906107f3565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254610360919061084d565b925050819055508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156103ad573d6000803e3d6000fd5b505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc670de0b6b3a7640000836103e091906107f3565b9081150290604051600060405180830381858888f1935050505015801561040b573d6000803e3d6000fd5b505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905034816001016000828254610466919061079d565b9250508190555060006040518060400160405280428152602001348152509050808260020160008460000154815260200190815260200160002060008201518160000155602082015181600101559050508160000160008154809291906104cc906108cf565b91905055505050565b60006020528060005260406000206000915090508060000154908060010154905082565b61050161057a565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600083815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905092915050565b604051806040016040528060008152602001600081525090565b6000813590506105a381610970565b92915050565b6000813590506105b881610987565b92915050565b6000813590506105cd8161099e565b92915050565b6000602082840312156105e557600080fd5b60006105f384828501610594565b91505092915050565b6000806040838503121561060f57600080fd5b600061061d858286016105a9565b925050602061062e858286016105be565b9150509250929050565b6000806040838503121561064b57600080fd5b600061065985828601610594565b925050602061066a858286016105be565b9150509250929050565b60006020828403121561068657600080fd5b6000610694848285016105be565b91505092915050565b60006106aa60148361078c565b91506106b582610947565b602082019050919050565b6040820160008201516106d660008501826106ef565b5060208201516106e960208501826106ef565b50505050565b6106f8816108c5565b82525050565b610707816108c5565b82525050565b600060208201905081810360008301526107268161069d565b9050919050565b600060408201905061074260008301846106c0565b92915050565b600060208201905061075d60008301846106fe565b92915050565b600060408201905061077860008301856106fe565b61078560208301846106fe565b9392505050565b600082825260208201905092915050565b60006107a8826108c5565b91506107b3836108c5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156107e8576107e7610918565b5b828201905092915050565b60006107fe826108c5565b9150610809836108c5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561084257610841610918565b5b828202905092915050565b6000610858826108c5565b9150610863836108c5565b92508282101561087657610875610918565b5b828203905092915050565b600061088c826108a5565b9050919050565b600061089e826108a5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006108da826108c5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561090d5761090c610918565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e6f742073756666696369656e742066756e6473000000000000000000000000600082015250565b61097981610881565b811461098457600080fd5b50565b61099081610893565b811461099b57600080fd5b50565b6109a7816108c5565b81146109b257600080fd5b5056fea26469706673582212201b47507f45ba4e7c565eafb4c8291192a2fa0a039d77a0e5ab186ded8c47af2964736f6c63430008040033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9EB DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8AC6BC43 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8AC6BC43 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0xCBEDBF5A EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0xD18A42E1 EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xF1730A6B EQ PUSH2 0x151 JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x1B52B9DE EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x54876921 EQ PUSH2 0xB7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8A PUSH2 0x18E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x196 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD9 SWAP2 SWAP1 PUSH2 0x674 JUMP JUMPDEST PUSH2 0x273 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x107 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x5FC JUMP JUMPDEST PUSH2 0x3B2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x111 PUSH2 0x410 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x5D3 JUMP JUMPDEST PUSH2 0x4D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x148 SWAP3 SWAP2 SWAP1 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x173 SWAP2 SWAP1 PUSH2 0x638 JUMP JUMPDEST PUSH2 0x4F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0x72D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x26E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 GT ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EE SWAP1 PUSH2 0x70D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH8 0xDE0B6B3A7640000 DUP3 PUSH2 0x310 SWAP2 SWAP1 PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x84D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0xDE0B6B3A7640000 DUP4 PUSH2 0x3E0 SWAP2 SWAP1 PUSH2 0x7F3 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x40B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP CALLVALUE DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x466 SWAP2 SWAP1 PUSH2 0x79D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD CALLVALUE DUP2 MSTORE POP SWAP1 POP DUP1 DUP3 PUSH1 0x2 ADD PUSH1 0x0 DUP5 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE SWAP1 POP POP DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x4CC SWAP1 PUSH2 0x8CF JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH2 0x501 PUSH2 0x57A JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5A3 DUP2 PUSH2 0x970 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5B8 DUP2 PUSH2 0x987 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5CD DUP2 PUSH2 0x99E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5F3 DUP5 DUP3 DUP6 ADD PUSH2 0x594 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x60F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x61D DUP6 DUP3 DUP7 ADD PUSH2 0x5A9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x62E DUP6 DUP3 DUP7 ADD PUSH2 0x5BE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x64B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x659 DUP6 DUP3 DUP7 ADD PUSH2 0x594 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x66A DUP6 DUP3 DUP7 ADD PUSH2 0x5BE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x694 DUP5 DUP3 DUP6 ADD PUSH2 0x5BE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AA PUSH1 0x14 DUP4 PUSH2 0x78C JUMP JUMPDEST SWAP2 POP PUSH2 0x6B5 DUP3 PUSH2 0x947 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x6D6 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x6EF JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x6E9 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x6EF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x6F8 DUP2 PUSH2 0x8C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x707 DUP2 PUSH2 0x8C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x726 DUP2 PUSH2 0x69D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x742 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6C0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x75D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x778 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6FE JUMP JUMPDEST PUSH2 0x785 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x6FE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A8 DUP3 PUSH2 0x8C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x7B3 DUP4 PUSH2 0x8C5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x7E8 JUMPI PUSH2 0x7E7 PUSH2 0x918 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FE DUP3 PUSH2 0x8C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x809 DUP4 PUSH2 0x8C5 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x842 JUMPI PUSH2 0x841 PUSH2 0x918 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x858 DUP3 PUSH2 0x8C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x863 DUP4 PUSH2 0x8C5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x876 JUMPI PUSH2 0x875 PUSH2 0x918 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x88C DUP3 PUSH2 0x8A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89E DUP3 PUSH2 0x8A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8DA DUP3 PUSH2 0x8C5 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x90D JUMPI PUSH2 0x90C PUSH2 0x918 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E6F742073756666696369656E742066756E6473000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x979 DUP2 PUSH2 0x881 JUMP JUMPDEST DUP2 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x990 DUP2 PUSH2 0x893 JUMP JUMPDEST DUP2 EQ PUSH2 0x99B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x9A7 DUP2 PUSH2 0x8C5 JUMP JUMPDEST DUP2 EQ PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL SELFBALANCE POP PUSH32 0x45BA4E7C565EAFB4C8291192A2FA0A039D77A0E5AB186DED8C47AF2964736F6C PUSH4 0x43000804 STOP CALLER ", | |
"sourceMap": "56:1624:0:-:0;;;;;;;;;;;;;;;;;;;" | |
}, | |
"deployedBytecode": { | |
"generatedSources": [ | |
{ | |
"ast": { | |
"nodeType": "YulBlock", | |
"src": "0:6813:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "59:87:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "69:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "91:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "78:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "78:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "69:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "134:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "107:26:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "107:33:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "107:33:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "37:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "45:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "53:5:1", | |
"type": "" | |
} | |
], | |
"src": "7:139:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "212:95:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "222:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "244:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "231:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "231:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "222:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "295:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_address_payable", | |
"nodeType": "YulIdentifier", | |
"src": "260:34:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "260:41:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "260:41:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_address_payable", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "190:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "198:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "206:5:1", | |
"type": "" | |
} | |
], | |
"src": "152:155:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "365:87:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "375:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "397:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "384:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "384:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "375:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "440:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "413:26:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "413:33:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "413:33:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "343:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "351:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "359:5:1", | |
"type": "" | |
} | |
], | |
"src": "313:139:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "524:196:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "570:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "579:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "582:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "572:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "572:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "572:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "545:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "554:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "541:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "541:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "566:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "537:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "537:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "534:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "596:117:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "611:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "625:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "615:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "640:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "675:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "686:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "671:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "671:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "695:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "650:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "650:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "640:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "494:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "505:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "517:6:1", | |
"type": "" | |
} | |
], | |
"src": "458:262:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "817:332:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "863:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "872:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "875:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "865:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "865:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "865:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "838:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "847:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "834:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "834:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "859:2:1", | |
"type": "", | |
"value": "64" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "830:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "830:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "827:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "889:125:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "904:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "918:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "908:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "933:71:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "976:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "987:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "972:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "972:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "996:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_address_payable", | |
"nodeType": "YulIdentifier", | |
"src": "943:28:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "943:61:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "933:6:1" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "1024:118:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1039:16:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1053:2:1", | |
"type": "", | |
"value": "32" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "1043:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1069:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1104:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "1115:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1100:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1100:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1124:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "1079:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1079:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value1", | |
"nodeType": "YulIdentifier", | |
"src": "1069:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_address_payablet_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "779:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "790:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "802:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "value1", | |
"nodeType": "YulTypedName", | |
"src": "810:6:1", | |
"type": "" | |
} | |
], | |
"src": "726:423:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1238:324:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1284:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1293:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1296:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "1286:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1286:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1286:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1259:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1268:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "1255:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1255:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1280:2:1", | |
"type": "", | |
"value": "64" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "1251:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1251:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "1248:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "1310:117:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1325:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1339:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "1329:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1354:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1389:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "1400:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1385:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1385:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1409:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "1364:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1364:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "1354:6:1" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "1437:118:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1452:16:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1466:2:1", | |
"type": "", | |
"value": "32" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "1456:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1482:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1517:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "1528:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1513:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1513:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1537:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "1492:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1492:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value1", | |
"nodeType": "YulIdentifier", | |
"src": "1482:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_addresst_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "1200:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "1211:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "1223:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "value1", | |
"nodeType": "YulTypedName", | |
"src": "1231:6:1", | |
"type": "" | |
} | |
], | |
"src": "1155:407:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1634:196:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1680:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1689:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1692:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "1682:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1682:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1682:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1655:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1664:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "1651:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1651:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1676:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "1647:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1647:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "1644:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "1706:117:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1721:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1735:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "1725:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1750:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1785:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "1796:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1781:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1781:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1805:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "1760:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1760:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "1750:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "1604:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "1615:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "1627:6:1", | |
"type": "" | |
} | |
], | |
"src": "1568:262:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1982:220:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1992:74:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2058:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2063:2:1", | |
"type": "", | |
"value": "20" | |
} | |
], | |
"functionName": { | |
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "1999:58:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1999:67:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1992:3:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2164:3:1" | |
} | |
], | |
"functionName": { | |
"name": "store_literal_in_memory_8334b7de2798b4703ad85f331e9363a2fb3a337bfd0a4306c1be0d16f50488db", | |
"nodeType": "YulIdentifier", | |
"src": "2075:88:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2075:93:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2075:93:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2177:19:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2188:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2193:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2184:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2184:12:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "end", | |
"nodeType": "YulIdentifier", | |
"src": "2177:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_t_stringliteral_8334b7de2798b4703ad85f331e9363a2fb3a337bfd0a4306c1be0d16f50488db_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "1970:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "1978:3:1", | |
"type": "" | |
} | |
], | |
"src": "1836:366:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2402:398:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "2412:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2428:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2433:4:1", | |
"type": "", | |
"value": "0x40" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2424:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2424:14:1" | |
}, | |
"variables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "2416:4:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "2448:169:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "2488:43:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2518:5:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2525:4:1", | |
"type": "", | |
"value": "0x00" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2514:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2514:16:1" | |
} | |
], | |
"functionName": { | |
"name": "mload", | |
"nodeType": "YulIdentifier", | |
"src": "2508:5:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2508:23:1" | |
}, | |
"variables": [ | |
{ | |
"name": "memberValue0", | |
"nodeType": "YulTypedName", | |
"src": "2492:12:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "memberValue0", | |
"nodeType": "YulIdentifier", | |
"src": "2578:12:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2596:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2601:4:1", | |
"type": "", | |
"value": "0x00" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2592:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2592:14:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_uint256_to_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "2544:33:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2544:63:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2544:63:1" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "2627:166:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "2664:43:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2694:5:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2701:4:1", | |
"type": "", | |
"value": "0x20" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2690:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2690:16:1" | |
} | |
], | |
"functionName": { | |
"name": "mload", | |
"nodeType": "YulIdentifier", | |
"src": "2684:5:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2684:23:1" | |
}, | |
"variables": [ | |
{ | |
"name": "memberValue0", | |
"nodeType": "YulTypedName", | |
"src": "2668:12:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "memberValue0", | |
"nodeType": "YulIdentifier", | |
"src": "2754:12:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2772:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2777:4:1", | |
"type": "", | |
"value": "0x20" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2768:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2768:14:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_uint256_to_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "2720:33:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2720:63:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2720:63:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_t_struct$_Payment_$6_memory_ptr_to_t_struct$_Payment_$6_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "2389:5:1", | |
"type": "" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "2396:3:1", | |
"type": "" | |
} | |
], | |
"src": "2292:508:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2861:53:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2878:3:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2901:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "2883:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2883:24:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "2871:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2871:37:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2871:37:1" | |
} | |
] | |
}, | |
"name": "abi_encode_t_uint256_to_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "2849:5:1", | |
"type": "" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "2856:3:1", | |
"type": "" | |
} | |
], | |
"src": "2806:108:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2985:53:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "3002:3:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "3025:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "3007:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3007:24:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "2995:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2995:37:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2995:37:1" | |
} | |
] | |
}, | |
"name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "2973:5:1", | |
"type": "" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "2980:3:1", | |
"type": "" | |
} | |
], | |
"src": "2920:118:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "3215:248:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "3225:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3237:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3248:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3233:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3233:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3225:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3272:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3283:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3268:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3268:17:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3291:4:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3297:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "3287:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3287:20:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "3261:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3261:47:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "3261:47:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "3317:139:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3451:4:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_stringliteral_8334b7de2798b4703ad85f331e9363a2fb3a337bfd0a4306c1be0d16f50488db_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "3325:124:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3325:131:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3317:4:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_stringliteral_8334b7de2798b4703ad85f331e9363a2fb3a337bfd0a4306c1be0d16f50488db__to_t_string_memory_ptr__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "3195:9:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "3210:4:1", | |
"type": "" | |
} | |
], | |
"src": "3044:419:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "3611:168:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "3621:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3633:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3644:2:1", | |
"type": "", | |
"value": "64" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3629:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3629:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3621:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "3745:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3758:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3769:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3754:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3754:17:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_struct$_Payment_$6_memory_ptr_to_t_struct$_Payment_$6_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "3657:87:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3657:115:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "3657:115:1" | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_struct$_Payment_$6_memory_ptr__to_t_struct$_Payment_$6_memory_ptr__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "3583:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "3595:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "3606:4:1", | |
"type": "" | |
} | |
], | |
"src": "3469:310:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "3883:124:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "3893:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3905:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3916:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3901:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3901:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3893:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "3973:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3986:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3997:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3982:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3982:17:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "3929:43:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3929:71:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "3929:71:1" | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "3855:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "3867:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "3878:4:1", | |
"type": "" | |
} | |
], | |
"src": "3785:222:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4139:206:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4149:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "4161:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "4172:2:1", | |
"type": "", | |
"value": "64" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "4157:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4157:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "4149:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "4229:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "4242:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "4253:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "4238:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4238:17:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "4185:43:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4185:71:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "4185:71:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value1", | |
"nodeType": "YulIdentifier", | |
"src": "4310:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "4323:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "4334:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "4319:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4319:18:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "4266:43:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4266:72:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "4266:72:1" | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "4103:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "value1", | |
"nodeType": "YulTypedName", | |
"src": "4115:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "4123:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "4134:4:1", | |
"type": "" | |
} | |
], | |
"src": "4013:332:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4447:73:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "4464:3:1" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulIdentifier", | |
"src": "4469:6:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "4457:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4457:19:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "4457:19:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4485:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "4504:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "4509:4:1", | |
"type": "", | |
"value": "0x20" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "4500:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4500:14:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "updated_pos", | |
"nodeType": "YulIdentifier", | |
"src": "4485:11:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "4419:3:1", | |
"type": "" | |
}, | |
{ | |
"name": "length", | |
"nodeType": "YulTypedName", | |
"src": "4424:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "updated_pos", | |
"nodeType": "YulTypedName", | |
"src": "4435:11:1", | |
"type": "" | |
} | |
], | |
"src": "4351:169:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4570:261:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4580:25:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4603:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "4585:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4585:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4580:1:1" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4614:25:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4637:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "4619:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4619:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4614:1:1" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4777:22:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [], | |
"functionName": { | |
"name": "panic_error_0x11", | |
"nodeType": "YulIdentifier", | |
"src": "4779:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4779:18:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "4779:18:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4698:1:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "4705:66:1", | |
"type": "", | |
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4773:1:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "4701:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4701:74:1" | |
} | |
], | |
"functionName": { | |
"name": "gt", | |
"nodeType": "YulIdentifier", | |
"src": "4695:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4695:81:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "4692:2:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4809:16:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4820:1:1" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4823:1:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "4816:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4816:9:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "sum", | |
"nodeType": "YulIdentifier", | |
"src": "4809:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "checked_add_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "x", | |
"nodeType": "YulTypedName", | |
"src": "4557:1:1", | |
"type": "" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulTypedName", | |
"src": "4560:1:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "sum", | |
"nodeType": "YulTypedName", | |
"src": "4566:3:1", | |
"type": "" | |
} | |
], | |
"src": "4526:305:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "4885:300:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4895:25:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4918:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "4900:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4900:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "4895:1:1" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "4929:25:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4952:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "4934:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "4934:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "4929:1:1" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5127:22:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [], | |
"functionName": { | |
"name": "panic_error_0x11", | |
"nodeType": "YulIdentifier", | |
"src": "5129:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5129:18:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "5129:18:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "5039:1:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "5032:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5032:9:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "5025:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5025:17:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "5047:1:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5054:66:1", | |
"type": "", | |
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
}, | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "5122:1:1" | |
} | |
], | |
"functionName": { | |
"name": "div", | |
"nodeType": "YulIdentifier", | |
"src": "5050:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5050:74:1" | |
} | |
], | |
"functionName": { | |
"name": "gt", | |
"nodeType": "YulIdentifier", | |
"src": "5044:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5044:81:1" | |
} | |
], | |
"functionName": { | |
"name": "and", | |
"nodeType": "YulIdentifier", | |
"src": "5021:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5021:105:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "5018:2:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5159:20:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "5174:1:1" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "5177:1:1" | |
} | |
], | |
"functionName": { | |
"name": "mul", | |
"nodeType": "YulIdentifier", | |
"src": "5170:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5170:9:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "product", | |
"nodeType": "YulIdentifier", | |
"src": "5159:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "checked_mul_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "x", | |
"nodeType": "YulTypedName", | |
"src": "4868:1:1", | |
"type": "" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulTypedName", | |
"src": "4871:1:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "product", | |
"nodeType": "YulTypedName", | |
"src": "4877:7:1", | |
"type": "" | |
} | |
], | |
"src": "4837:348:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5236:146:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5246:25:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "5269:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "5251:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5251:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "5246:1:1" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5280:25:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "5303:1:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "5285:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5285:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "5280:1:1" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5327:22:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [], | |
"functionName": { | |
"name": "panic_error_0x11", | |
"nodeType": "YulIdentifier", | |
"src": "5329:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5329:18:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "5329:18:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "5321:1:1" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "5324:1:1" | |
} | |
], | |
"functionName": { | |
"name": "lt", | |
"nodeType": "YulIdentifier", | |
"src": "5318:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5318:8:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "5315:2:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5359:17:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "x", | |
"nodeType": "YulIdentifier", | |
"src": "5371:1:1" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulIdentifier", | |
"src": "5374:1:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "5367:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5367:9:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "diff", | |
"nodeType": "YulIdentifier", | |
"src": "5359:4:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "checked_sub_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "x", | |
"nodeType": "YulTypedName", | |
"src": "5222:1:1", | |
"type": "" | |
}, | |
{ | |
"name": "y", | |
"nodeType": "YulTypedName", | |
"src": "5225:1:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "diff", | |
"nodeType": "YulTypedName", | |
"src": "5231:4:1", | |
"type": "" | |
} | |
], | |
"src": "5191:191:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5433:51:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5443:35:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5472:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint160", | |
"nodeType": "YulIdentifier", | |
"src": "5454:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5454:24:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "5443:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "5415:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "5425:7:1", | |
"type": "" | |
} | |
], | |
"src": "5388:96:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5543:51:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5553:35:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5582:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint160", | |
"nodeType": "YulIdentifier", | |
"src": "5564:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5564:24:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "5553:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_address_payable", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "5525:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "5535:7:1", | |
"type": "" | |
} | |
], | |
"src": "5490:104:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5645:81:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5655:65:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5670:5:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5677:42:1", | |
"type": "", | |
"value": "0xffffffffffffffffffffffffffffffffffffffff" | |
} | |
], | |
"functionName": { | |
"name": "and", | |
"nodeType": "YulIdentifier", | |
"src": "5666:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5666:54:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "5655:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_uint160", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "5627:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "5637:7:1", | |
"type": "" | |
} | |
], | |
"src": "5600:126:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5777:32:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5787:16:1", | |
"value": { | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5798:5:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "5787:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "5759:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "5769:7:1", | |
"type": "" | |
} | |
], | |
"src": "5732:77:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5858:190:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "5868:33:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5895:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "5877:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5877:24:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5868:5:1" | |
} | |
] | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "5991:22:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [], | |
"functionName": { | |
"name": "panic_error_0x11", | |
"nodeType": "YulIdentifier", | |
"src": "5993:16:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5993:18:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "5993:18:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "5916:5:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "5923:66:1", | |
"type": "", | |
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
} | |
], | |
"functionName": { | |
"name": "eq", | |
"nodeType": "YulIdentifier", | |
"src": "5913:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "5913:77:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "5910:2:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "6022:20:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6033:5:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6040:1:1", | |
"type": "", | |
"value": "1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "6029:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6029:13:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "ret", | |
"nodeType": "YulIdentifier", | |
"src": "6022:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "increment_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "5844:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "ret", | |
"nodeType": "YulTypedName", | |
"src": "5854:3:1", | |
"type": "" | |
} | |
], | |
"src": "5815:233:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6082:152:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6099:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6102:77:1", | |
"type": "", | |
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "6092:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6092:88:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6092:88:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6196:1:1", | |
"type": "", | |
"value": "4" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6199:4:1", | |
"type": "", | |
"value": "0x11" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "6189:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6189:15:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6189:15:1" | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6220:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6223:4:1", | |
"type": "", | |
"value": "0x24" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "6213:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6213:15:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6213:15:1" | |
} | |
] | |
}, | |
"name": "panic_error_0x11", | |
"nodeType": "YulFunctionDefinition", | |
"src": "6054:180:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6346:64:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "memPtr", | |
"nodeType": "YulIdentifier", | |
"src": "6368:6:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6376:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "6364:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6364:14:1" | |
}, | |
{ | |
"kind": "string", | |
"nodeType": "YulLiteral", | |
"src": "6380:22:1", | |
"type": "", | |
"value": "Not sufficient funds" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "6357:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6357:46:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6357:46:1" | |
} | |
] | |
}, | |
"name": "store_literal_in_memory_8334b7de2798b4703ad85f331e9363a2fb3a337bfd0a4306c1be0d16f50488db", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "memPtr", | |
"nodeType": "YulTypedName", | |
"src": "6338:6:1", | |
"type": "" | |
} | |
], | |
"src": "6240:170:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6459:79:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6516:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6525:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6528:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "6518:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6518:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6518:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6482:5:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6507:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "6489:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6489:24:1" | |
} | |
], | |
"functionName": { | |
"name": "eq", | |
"nodeType": "YulIdentifier", | |
"src": "6479:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6479:35:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "6472:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6472:43:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "6469:2:1" | |
} | |
] | |
}, | |
"name": "validator_revert_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "6452:5:1", | |
"type": "" | |
} | |
], | |
"src": "6416:122:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6595:87:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6660:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6669:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6672:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "6662:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6662:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6662:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6618:5:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6651:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_address_payable", | |
"nodeType": "YulIdentifier", | |
"src": "6625:25:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6625:32:1" | |
} | |
], | |
"functionName": { | |
"name": "eq", | |
"nodeType": "YulIdentifier", | |
"src": "6615:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6615:43:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "6608:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6608:51:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "6605:2:1" | |
} | |
] | |
}, | |
"name": "validator_revert_t_address_payable", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "6588:5:1", | |
"type": "" | |
} | |
], | |
"src": "6544:138:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6731:79:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "6788:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6797:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "6800:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "6790:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6790:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "6790:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6754:5:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "6779:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "6761:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6761:24:1" | |
} | |
], | |
"functionName": { | |
"name": "eq", | |
"nodeType": "YulIdentifier", | |
"src": "6751:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6751:35:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "6744:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "6744:43:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "6741:2:1" | |
} | |
] | |
}, | |
"name": "validator_revert_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "6724:5:1", | |
"type": "" | |
} | |
], | |
"src": "6688:122:1" | |
} | |
] | |
}, | |
"contents": "{\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_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\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_decode_tuple_t_address_payablet_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_stringliteral_8334b7de2798b4703ad85f331e9363a2fb3a337bfd0a4306c1be0d16f50488db_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_8334b7de2798b4703ad85f331e9363a2fb3a337bfd0a4306c1be0d16f50488db(pos)\n end := add(pos, 32)\n }\n\n // struct MappingsStructExample.Payment -> struct MappingsStructExample.Payment\n function abi_encode_t_struct$_Payment_$6_memory_ptr_to_t_struct$_Payment_$6_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x40)\n\n {\n // timestamp\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_stringliteral_8334b7de2798b4703ad85f331e9363a2fb3a337bfd0a4306c1be0d16f50488db__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_8334b7de2798b4703ad85f331e9363a2fb3a337bfd0a4306c1be0d16f50488db_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_struct$_Payment_$6_memory_ptr__to_t_struct$_Payment_$6_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_struct$_Payment_$6_memory_ptr_to_t_struct$_Payment_$6_memory_ptr_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\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 checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_8334b7de2798b4703ad85f331e9363a2fb3a337bfd0a4306c1be0d16f50488db(memPtr) {\n\n mstore(add(memPtr, 0), \"Not sufficient funds\")\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", | |
"id": 1, | |
"language": "Yul", | |
"name": "#utility.yul" | |
} | |
], | |
"immutableReferences": {}, | |
"linkReferences": {}, | |
"object": "6080604052600436106100705760003560e01c80638ac6bc431161004e5780638ac6bc43146100e0578063cbedbf5a14610109578063d18a42e114610113578063f1730a6b1461015157610070565b806312065fe0146100755780631b52b9de146100a057806354876921146100b7575b600080fd5b34801561008157600080fd5b5061008a61018e565b6040516100979190610748565b60405180910390f35b3480156100ac57600080fd5b506100b5610196565b005b3480156100c357600080fd5b506100de60048036038101906100d99190610674565b610273565b005b3480156100ec57600080fd5b50610107600480360381019061010291906105fc565b6103b2565b005b610111610410565b005b34801561011f57600080fd5b5061013a600480360381019061013591906105d3565b6104d5565b604051610148929190610763565b60405180910390f35b34801561015d57600080fd5b5061017860048036038101906101739190610638565b6104f9565b604051610185919061072d565b60405180910390f35b600047905090565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050600033905060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561026e573d6000803e3d6000fd5b505050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548111156102f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ee9061070d565b60405180910390fd5b6000339050670de0b6b3a76400008261031091906107f3565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254610360919061084d565b925050819055508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156103ad573d6000803e3d6000fd5b505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc670de0b6b3a7640000836103e091906107f3565b9081150290604051600060405180830381858888f1935050505015801561040b573d6000803e3d6000fd5b505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905034816001016000828254610466919061079d565b9250508190555060006040518060400160405280428152602001348152509050808260020160008460000154815260200190815260200160002060008201518160000155602082015181600101559050508160000160008154809291906104cc906108cf565b91905055505050565b60006020528060005260406000206000915090508060000154908060010154905082565b61050161057a565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600083815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905092915050565b604051806040016040528060008152602001600081525090565b6000813590506105a381610970565b92915050565b6000813590506105b881610987565b92915050565b6000813590506105cd8161099e565b92915050565b6000602082840312156105e557600080fd5b60006105f384828501610594565b91505092915050565b6000806040838503121561060f57600080fd5b600061061d858286016105a9565b925050602061062e858286016105be565b9150509250929050565b6000806040838503121561064b57600080fd5b600061065985828601610594565b925050602061066a858286016105be565b9150509250929050565b60006020828403121561068657600080fd5b6000610694848285016105be565b91505092915050565b60006106aa60148361078c565b91506106b582610947565b602082019050919050565b6040820160008201516106d660008501826106ef565b5060208201516106e960208501826106ef565b50505050565b6106f8816108c5565b82525050565b610707816108c5565b82525050565b600060208201905081810360008301526107268161069d565b9050919050565b600060408201905061074260008301846106c0565b92915050565b600060208201905061075d60008301846106fe565b92915050565b600060408201905061077860008301856106fe565b61078560208301846106fe565b9392505050565b600082825260208201905092915050565b60006107a8826108c5565b91506107b3836108c5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156107e8576107e7610918565b5b828201905092915050565b60006107fe826108c5565b9150610809836108c5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561084257610841610918565b5b828202905092915050565b6000610858826108c5565b9150610863836108c5565b92508282101561087657610875610918565b5b828203905092915050565b600061088c826108a5565b9050919050565b600061089e826108a5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006108da826108c5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561090d5761090c610918565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e6f742073756666696369656e742066756e6473000000000000000000000000600082015250565b61097981610881565b811461098457600080fd5b50565b61099081610893565b811461099b57600080fd5b50565b6109a7816108c5565b81146109b257600080fd5b5056fea26469706673582212201b47507f45ba4e7c565eafb4c8291192a2fa0a039d77a0e5ab186ded8c47af2964736f6c63430008040033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8AC6BC43 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8AC6BC43 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0xCBEDBF5A EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0xD18A42E1 EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xF1730A6B EQ PUSH2 0x151 JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x1B52B9DE EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x54876921 EQ PUSH2 0xB7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8A PUSH2 0x18E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x196 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD9 SWAP2 SWAP1 PUSH2 0x674 JUMP JUMPDEST PUSH2 0x273 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x107 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x5FC JUMP JUMPDEST PUSH2 0x3B2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x111 PUSH2 0x410 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x5D3 JUMP JUMPDEST PUSH2 0x4D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x148 SWAP3 SWAP2 SWAP1 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x173 SWAP2 SWAP1 PUSH2 0x638 JUMP JUMPDEST PUSH2 0x4F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0x72D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x26E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 GT ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EE SWAP1 PUSH2 0x70D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH8 0xDE0B6B3A7640000 DUP3 PUSH2 0x310 SWAP2 SWAP1 PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x84D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0xDE0B6B3A7640000 DUP4 PUSH2 0x3E0 SWAP2 SWAP1 PUSH2 0x7F3 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x40B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP CALLVALUE DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x466 SWAP2 SWAP1 PUSH2 0x79D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD CALLVALUE DUP2 MSTORE POP SWAP1 POP DUP1 DUP3 PUSH1 0x2 ADD PUSH1 0x0 DUP5 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE SWAP1 POP POP DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x4CC SWAP1 PUSH2 0x8CF JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH2 0x501 PUSH2 0x57A JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5A3 DUP2 PUSH2 0x970 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5B8 DUP2 PUSH2 0x987 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5CD DUP2 PUSH2 0x99E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5F3 DUP5 DUP3 DUP6 ADD PUSH2 0x594 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x60F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x61D DUP6 DUP3 DUP7 ADD PUSH2 0x5A9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x62E DUP6 DUP3 DUP7 ADD PUSH2 0x5BE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x64B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x659 DUP6 DUP3 DUP7 ADD PUSH2 0x594 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x66A DUP6 DUP3 DUP7 ADD PUSH2 0x5BE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x694 DUP5 DUP3 DUP6 ADD PUSH2 0x5BE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AA PUSH1 0x14 DUP4 PUSH2 0x78C JUMP JUMPDEST SWAP2 POP PUSH2 0x6B5 DUP3 PUSH2 0x947 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x6D6 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x6EF JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x6E9 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x6EF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x6F8 DUP2 PUSH2 0x8C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x707 DUP2 PUSH2 0x8C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x726 DUP2 PUSH2 0x69D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x742 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6C0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x75D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x778 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6FE JUMP JUMPDEST PUSH2 0x785 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x6FE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A8 DUP3 PUSH2 0x8C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x7B3 DUP4 PUSH2 0x8C5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x7E8 JUMPI PUSH2 0x7E7 PUSH2 0x918 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FE DUP3 PUSH2 0x8C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x809 DUP4 PUSH2 0x8C5 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x842 JUMPI PUSH2 0x841 PUSH2 0x918 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x858 DUP3 PUSH2 0x8C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x863 DUP4 PUSH2 0x8C5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x876 JUMPI PUSH2 0x875 PUSH2 0x918 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x88C DUP3 PUSH2 0x8A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89E DUP3 PUSH2 0x8A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8DA DUP3 PUSH2 0x8C5 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x90D JUMPI PUSH2 0x90C PUSH2 0x918 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E6F742073756666696369656E742066756E6473000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x979 DUP2 PUSH2 0x881 JUMP JUMPDEST DUP2 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x990 DUP2 PUSH2 0x893 JUMP JUMPDEST DUP2 EQ PUSH2 0x99B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x9A7 DUP2 PUSH2 0x8C5 JUMP JUMPDEST DUP2 EQ PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL SELFBALANCE POP PUSH32 0x45BA4E7C565EAFB4C8291192A2FA0A039D77A0E5AB186DED8C47AF2964736F6C PUSH4 0x43000804 STOP CALLER ", | |
"sourceMap": "56:1624:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;348:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;977:251;;;;;;;;;;;;;:::i;:::-;;1368:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1234:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;447:355;;;:::i;:::-;;290:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;808:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;348:93;390:4;413:21;406:28;;348:93;:::o;977:251::-;1022:11;1036:15;:27;1052:10;1036:27;;;;;;;;;;;;;;;:40;;;1022:54;;1086:24;1121:10;1086:46;;1185:1;1142:15;:27;1158:10;1142:27;;;;;;;;;;;;;;;:40;;:44;;;;1196:8;:17;;:25;1214:6;1196:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:251;;:::o;1368:310::-;1441:15;:27;1457:10;1441:27;;;;;;;;;;;;;;;:40;;;1430:7;:51;;1422:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;1516:24;1551:10;1516:46;;1627:7;1617;:17;;;;:::i;:::-;1572:15;:27;1588:10;1572:27;;;;;;;;;;;;;;;:40;;;:63;;;;;;;:::i;:::-;;;;;;;;1645:8;:17;;:26;1663:7;1645:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:310;;:::o;1234:128::-;1319:8;:17;;:36;1347:7;1337;:17;;;;:::i;:::-;1319:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1234:128;;:::o;447:355::-;493:29;525:15;:27;541:10;525:27;;;;;;;;;;;;;;;493:59;;592:9;562:13;:26;;;:39;;;;;;;:::i;:::-;;;;;;;;611:22;636:56;;;;;;;;656:15;636:56;;;;681:9;636:56;;;611:81;;752:7;702:13;:21;;:47;724:13;:24;;;702:47;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;;769:13;:24;;;:26;;;;;;;;;:::i;:::-;;;;;;447:355;;:::o;290:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;808:163::-;882:22;;:::i;:::-;923:15;:25;939:8;923:25;;;;;;;;;;;;;;;:33;;:41;957:6;923:41;;;;;;;;;;;916:48;;;;;;;;;;;;;;;;;;;;;;;;;;;808:163;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:139::-;359:5;397:6;384:20;375:29;;413:33;440:5;413:33;:::i;:::-;365:87;;;;:::o;458:262::-;517:6;566:2;554:9;545:7;541:23;537:32;534:2;;;582:1;579;572:12;534:2;625:1;650:53;695:7;686:6;675:9;671:22;650:53;:::i;:::-;640:63;;596:117;524:196;;;;:::o;726:423::-;802:6;810;859:2;847:9;838:7;834:23;830:32;827:2;;;875:1;872;865:12;827:2;918:1;943:61;996:7;987:6;976:9;972:22;943:61;:::i;:::-;933:71;;889:125;1053:2;1079:53;1124:7;1115:6;1104:9;1100:22;1079:53;:::i;:::-;1069:63;;1024:118;817:332;;;;;:::o;1155:407::-;1223:6;1231;1280:2;1268:9;1259:7;1255:23;1251:32;1248:2;;;1296:1;1293;1286:12;1248:2;1339:1;1364:53;1409:7;1400:6;1389:9;1385:22;1364:53;:::i;:::-;1354:63;;1310:117;1466:2;1492:53;1537:7;1528:6;1517:9;1513:22;1492:53;:::i;:::-;1482:63;;1437:118;1238:324;;;;;:::o;1568:262::-;1627:6;1676:2;1664:9;1655:7;1651:23;1647:32;1644:2;;;1692:1;1689;1682:12;1644:2;1735:1;1760:53;1805:7;1796:6;1785:9;1781:22;1760:53;:::i;:::-;1750:63;;1706:117;1634:196;;;;:::o;1836:366::-;1978:3;1999:67;2063:2;2058:3;1999:67;:::i;:::-;1992:74;;2075:93;2164:3;2075:93;:::i;:::-;2193:2;2188:3;2184:12;2177:19;;1982:220;;;:::o;2292:508::-;2433:4;2428:3;2424:14;2525:4;2518:5;2514:16;2508:23;2544:63;2601:4;2596:3;2592:14;2578:12;2544:63;:::i;:::-;2448:169;2701:4;2694:5;2690:16;2684:23;2720:63;2777:4;2772:3;2768:14;2754:12;2720:63;:::i;:::-;2627:166;2402:398;;;:::o;2806:108::-;2883:24;2901:5;2883:24;:::i;:::-;2878:3;2871:37;2861:53;;:::o;2920:118::-;3007:24;3025:5;3007:24;:::i;:::-;3002:3;2995:37;2985:53;;:::o;3044:419::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3297:9;3291:4;3287:20;3283:1;3272:9;3268:17;3261:47;3325:131;3451:4;3325:131;:::i;:::-;3317:139;;3215:248;;;:::o;3469:310::-;3606:4;3644:2;3633:9;3629:18;3621:26;;3657:115;3769:1;3758:9;3754:17;3745:6;3657:115;:::i;:::-;3611:168;;;;:::o;3785:222::-;3878:4;3916:2;3905:9;3901:18;3893:26;;3929:71;3997:1;3986:9;3982:17;3973:6;3929:71;:::i;:::-;3883:124;;;;:::o;4013:332::-;4134:4;4172:2;4161:9;4157:18;4149:26;;4185:71;4253:1;4242:9;4238:17;4229:6;4185:71;:::i;:::-;4266:72;4334:2;4323:9;4319:18;4310:6;4266:72;:::i;:::-;4139:206;;;;;:::o;4351:169::-;4435:11;4469:6;4464:3;4457:19;4509:4;4504:3;4500:14;4485:29;;4447:73;;;;:::o;4526:305::-;4566:3;4585:20;4603:1;4585:20;:::i;:::-;4580:25;;4619:20;4637:1;4619:20;:::i;:::-;4614:25;;4773:1;4705:66;4701:74;4698:1;4695:81;4692:2;;;4779:18;;:::i;:::-;4692:2;4823:1;4820;4816:9;4809:16;;4570:261;;;;:::o;4837:348::-;4877:7;4900:20;4918:1;4900:20;:::i;:::-;4895:25;;4934:20;4952:1;4934:20;:::i;:::-;4929:25;;5122:1;5054:66;5050:74;5047:1;5044:81;5039:1;5032:9;5025:17;5021:105;5018:2;;;5129:18;;:::i;:::-;5018:2;5177:1;5174;5170:9;5159:20;;4885:300;;;;:::o;5191:191::-;5231:4;5251:20;5269:1;5251:20;:::i;:::-;5246:25;;5285:20;5303:1;5285:20;:::i;:::-;5280:25;;5324:1;5321;5318:8;5315:2;;;5329:18;;:::i;:::-;5315:2;5374:1;5371;5367:9;5359:17;;5236:146;;;;:::o;5388:96::-;5425:7;5454:24;5472:5;5454:24;:::i;:::-;5443:35;;5433:51;;;:::o;5490:104::-;5535:7;5564:24;5582:5;5564:24;:::i;:::-;5553:35;;5543:51;;;:::o;5600:126::-;5637:7;5677:42;5670:5;5666:54;5655:65;;5645:81;;;:::o;5732:77::-;5769:7;5798:5;5787:16;;5777:32;;;:::o;5815:233::-;5854:3;5877:24;5895:5;5877:24;:::i;:::-;5868:33;;5923:66;5916:5;5913:77;5910:2;;;5993:18;;:::i;:::-;5910:2;6040:1;6033:5;6029:13;6022:20;;5858:190;;;:::o;6054:180::-;6102:77;6099:1;6092:88;6199:4;6196:1;6189:15;6223:4;6220:1;6213:15;6240:170;6380:22;6376:1;6368:6;6364:14;6357:46;6346:64;:::o;6416:122::-;6489:24;6507:5;6489:24;:::i;:::-;6482:5;6479:35;6469:2;;6528:1;6525;6518:12;6469:2;6459:79;:::o;6544:138::-;6625:32;6651:5;6625:32;:::i;:::-;6618:5;6615:43;6605:2;;6672:1;6669;6662:12;6605:2;6595:87;:::o;6688:122::-;6761:24;6779:5;6761:24;:::i;:::-;6754:5;6751:35;6741:2;;6800:1;6797;6790:12;6741:2;6731:79;:::o" | |
}, | |
"gasEstimates": { | |
"creation": { | |
"codeDepositCost": "507800", | |
"executionCost": "543", | |
"totalCost": "508343" | |
}, | |
"external": { | |
"balanceReceived(address)": "infinite", | |
"getBalance()": "340", | |
"getPaymentAt(address,uint256)": "infinite", | |
"sendMoney()": "infinite", | |
"sendMoneyToAddress(address,uint256)": "infinite", | |
"withdrawAllMoney()": "infinite", | |
"withdrawMoney(uint256)": "infinite" | |
} | |
}, | |
"methodIdentifiers": { | |
"balanceReceived(address)": "d18a42e1", | |
"getBalance()": "12065fe0", | |
"getPaymentAt(address,uint256)": "f1730a6b", | |
"sendMoney()": "cbedbf5a", | |
"sendMoneyToAddress(address,uint256)": "8ac6bc43", | |
"withdrawAllMoney()": "1b52b9de", | |
"withdrawMoney(uint256)": "54876921" | |
} | |
}, | |
"abi": [ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "balanceReceived", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "numberTime", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "totalBalance", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "getBalance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "_address", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "_index", | |
"type": "uint256" | |
} | |
], | |
"name": "getPaymentAt", | |
"outputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "uint256", | |
"name": "timestamp", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "amount", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MappingsStructExample.Payment", | |
"name": "payment", | |
"type": "tuple" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "sendMoney", | |
"outputs": [], | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address payable", | |
"name": "_address", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "_amount", | |
"type": "uint256" | |
} | |
], | |
"name": "sendMoneyToAddress", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "withdrawAllMoney", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "_amount", | |
"type": "uint256" | |
} | |
], | |
"name": "withdrawMoney", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
} | |
] | |
} |
{ | |
"compiler": { | |
"version": "0.8.4+commit.c7e474f2" | |
}, | |
"language": "Solidity", | |
"output": { | |
"abi": [ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "balanceReceived", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "numberTime", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "totalBalance", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "getBalance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "_address", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "_index", | |
"type": "uint256" | |
} | |
], | |
"name": "getPaymentAt", | |
"outputs": [ | |
{ | |
"components": [ | |
{ | |
"internalType": "uint256", | |
"name": "timestamp", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "amount", | |
"type": "uint256" | |
} | |
], | |
"internalType": "struct MappingsStructExample.Payment", | |
"name": "payment", | |
"type": "tuple" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "sendMoney", | |
"outputs": [], | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address payable", | |
"name": "_address", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "_amount", | |
"type": "uint256" | |
} | |
], | |
"name": "sendMoneyToAddress", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "withdrawAllMoney", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "_amount", | |
"type": "uint256" | |
} | |
], | |
"name": "withdrawMoney", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
} | |
], | |
"devdoc": { | |
"kind": "dev", | |
"methods": {}, | |
"version": 1 | |
}, | |
"userdoc": { | |
"kind": "user", | |
"methods": {}, | |
"version": 1 | |
} | |
}, | |
"settings": { | |
"compilationTarget": { | |
"gist-2849d9a09aa997989e838e3b269144e9/MappingStructExample.sol": "MappingsStructExample" | |
}, | |
"evmVersion": "istanbul", | |
"libraries": {}, | |
"metadata": { | |
"bytecodeHash": "ipfs" | |
}, | |
"optimizer": { | |
"enabled": false, | |
"runs": 200 | |
}, | |
"remappings": [] | |
}, | |
"sources": { | |
"gist-2849d9a09aa997989e838e3b269144e9/MappingStructExample.sol": { | |
"keccak256": "0x267d9812ef0424893b6072b908deebe0105ffa9f9efbe3f6a691914db1bcbd48", | |
"license": "MIT", | |
"urls": [ | |
"bzz-raw://5933807daac7f4c2edb33f1f63bc0670777825155b0761da3dc3a51770b0c050", | |
"dweb:/ipfs/QmPeArTMBj8ZDuVSYkRMWRrFfeF9VZhqp8jwfDJwivoPLK" | |
] | |
} | |
}, | |
"version": 1 | |
} |
{ | |
"deploy": { | |
"VM:-": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"main:1": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"ropsten:3": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"rinkeby:4": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"kovan:42": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"görli:5": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"Custom": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
} | |
}, | |
"data": { | |
"bytecode": { | |
"generatedSources": [], | |
"linkReferences": {}, | |
"object": "608060405234801561001057600080fd5b506103fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80635524107714610067578063588ccabd14610083578063634899ce1461009f5780637c668844146100a9578063b92ba3b8146100d9578063de5123bf14610109575b600080fd5b610081600480360381019061007c91906102c3565b610139565b005b61009d600480360381019061009891906102ec565b610167565b005b6100a76101a8565b005b6100c360048036038101906100be91906102c3565b610201565b6040516100d09190610337565b60405180910390f35b6100f360048036038101906100ee919061029a565b610221565b6040516101009190610337565b60405180910390f35b610123600480360381019061011e91906102ec565b610241565b6040516101309190610337565b60405180910390f35b600160008083815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160026000848152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b60006020528060005260406000206000915054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b60026020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60008135905061027f8161039a565b92915050565b600081359050610294816103b1565b92915050565b6000602082840312156102ac57600080fd5b60006102ba84828501610270565b91505092915050565b6000602082840312156102d557600080fd5b60006102e384828501610285565b91505092915050565b600080604083850312156102ff57600080fd5b600061030d85828601610285565b925050602061031e85828601610285565b9150509250929050565b61033181610364565b82525050565b600060208201905061034c6000830184610328565b92915050565b600061035d82610370565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6103a381610352565b81146103ae57600080fd5b50565b6103ba81610390565b81146103c557600080fd5b5056fea2646970667358221220884b733ef8c7d2b4dfb065fd401a4036e29ec95a1f584b59506a9f8b738ae98464736f6c63430008040033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE 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 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x55241077 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x588CCABD EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x634899CE EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x7C668844 EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0xB92BA3B8 EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0xDE5123BF EQ PUSH2 0x109 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x2C3 JUMP JUMPDEST PUSH2 0x139 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x2EC JUMP JUMPDEST PUSH2 0x167 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA7 PUSH2 0x1A8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x2C3 JUMP JUMPDEST PUSH2 0x201 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD0 SWAP2 SWAP1 PUSH2 0x337 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEE SWAP2 SWAP1 PUSH2 0x29A JUMP JUMPDEST PUSH2 0x221 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 SWAP2 SWAP1 PUSH2 0x337 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x123 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x11E SWAP2 SWAP1 PUSH2 0x2EC JUMP JUMPDEST PUSH2 0x241 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x130 SWAP2 SWAP1 PUSH2 0x337 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x27F DUP2 PUSH2 0x39A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x294 DUP2 PUSH2 0x3B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2BA DUP5 DUP3 DUP6 ADD PUSH2 0x270 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2E3 DUP5 DUP3 DUP6 ADD PUSH2 0x285 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x30D DUP6 DUP3 DUP7 ADD PUSH2 0x285 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x31E DUP6 DUP3 DUP7 ADD PUSH2 0x285 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x331 DUP2 PUSH2 0x364 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x34C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x328 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35D DUP3 PUSH2 0x370 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A3 DUP2 PUSH2 0x352 JUMP JUMPDEST DUP2 EQ PUSH2 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3BA DUP2 PUSH2 0x390 JUMP JUMPDEST DUP2 EQ PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP9 0x4B PUSH20 0x3EF8C7D2B4DFB065FD401A4036E29EC95A1F584B MSIZE POP PUSH11 0x9F8B738AE98464736F6C63 NUMBER STOP ADDMOD DIV STOP CALLER ", | |
"sourceMap": "56:499:0:-:0;;;;;;;;;;;;;;;;;;;" | |
}, | |
"deployedBytecode": { | |
"generatedSources": [ | |
{ | |
"ast": { | |
"nodeType": "YulBlock", | |
"src": "0:2243:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "59:87:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "69:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "91:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "78:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "78:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "69:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "134:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "107:26:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "107:33:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "107:33:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "37:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "45:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "53:5:1", | |
"type": "" | |
} | |
], | |
"src": "7:139:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "204:87:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "214:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "236:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "223:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "223:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "214:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "279:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "252:26:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "252:33:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "252:33:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "182:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "190:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "198:5:1", | |
"type": "" | |
} | |
], | |
"src": "152:139:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "363:196:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "409:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "418:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "421:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "411:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "411:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "411:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "384:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "393:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "380:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "380:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "405:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "376:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "376:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "373:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "435:117:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "450:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "464:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "454:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "479:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "514:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "525:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "510:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "510:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "534:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "489:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "489:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "479:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "333:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "344:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "356:6:1", | |
"type": "" | |
} | |
], | |
"src": "297:262:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "631:196:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "677:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "686:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "689:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "679:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "679:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "679:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "652:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "661:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "648:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "648:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "673:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "644:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "644:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "641:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "703:117:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "718:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "732:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "722:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "747:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "782:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "793:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "778:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "778:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "802:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "757:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "757:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "747:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "601:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "612:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "624:6:1", | |
"type": "" | |
} | |
], | |
"src": "565:262:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "916:324:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "962:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "971:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "974:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "964:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "964:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "964:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "937:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "946:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "933:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "933:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "958:2:1", | |
"type": "", | |
"value": "64" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "929:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "929:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "926:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "988:117:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1003:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1017:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "1007:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1032:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1067:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "1078:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1063:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1063:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1087:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "1042:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1042:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "1032:6:1" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "1115:118:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "1130:16:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1144:2:1", | |
"type": "", | |
"value": "32" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "1134:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1160:63:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1195:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "1206:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1191:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1191:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "1215:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "1170:20:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1170:53:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value1", | |
"nodeType": "YulIdentifier", | |
"src": "1160:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_uint256t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "878:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "889:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "901:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "value1", | |
"nodeType": "YulTypedName", | |
"src": "909:6:1", | |
"type": "" | |
} | |
], | |
"src": "833:407:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1305:50:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1322:3:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "1342:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_bool", | |
"nodeType": "YulIdentifier", | |
"src": "1327:14:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1327:21:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "1315:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1315:34:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1315:34:1" | |
} | |
] | |
}, | |
"name": "abi_encode_t_bool_to_t_bool_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "1293:5:1", | |
"type": "" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "1300:3:1", | |
"type": "" | |
} | |
], | |
"src": "1246:109:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1453:118:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1463:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1475:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1486:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1471:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1471:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "1463:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "1537:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "1550:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1561:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1546:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1546:17:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_bool_to_t_bool_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "1499:37:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1499:65:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1499:65:1" | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "1425:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "1437:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "1448:4:1", | |
"type": "" | |
} | |
], | |
"src": "1361:210:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1622:51:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1632:35:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "1661:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint160", | |
"nodeType": "YulIdentifier", | |
"src": "1643:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1643:24:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "1632:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "1604:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "1614:7:1", | |
"type": "" | |
} | |
], | |
"src": "1577:96:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1721:48:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1731:32:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "1756:5:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "1749:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1749:13:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "1742:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1742:21:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "1731:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_bool", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "1703:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "1713:7:1", | |
"type": "" | |
} | |
], | |
"src": "1679:90:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1820:81:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1830:65:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "1845:5:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1852:42:1", | |
"type": "", | |
"value": "0xffffffffffffffffffffffffffffffffffffffff" | |
} | |
], | |
"functionName": { | |
"name": "and", | |
"nodeType": "YulIdentifier", | |
"src": "1841:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1841:54:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "1830:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_uint160", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "1802:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "1812:7:1", | |
"type": "" | |
} | |
], | |
"src": "1775:126:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1952:32:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1962:16:1", | |
"value": { | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "1973:5:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulIdentifier", | |
"src": "1962:7:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "1934:5:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "cleaned", | |
"nodeType": "YulTypedName", | |
"src": "1944:7:1", | |
"type": "" | |
} | |
], | |
"src": "1907:77:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2033:79:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2090:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2099:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2102:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "2092:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2092:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2092:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2056:5:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2081:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "2063:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2063:24:1" | |
} | |
], | |
"functionName": { | |
"name": "eq", | |
"nodeType": "YulIdentifier", | |
"src": "2053:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2053:35:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "2046:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2046:43:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "2043:2:1" | |
} | |
] | |
}, | |
"name": "validator_revert_t_address", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "2026:5:1", | |
"type": "" | |
} | |
], | |
"src": "1990:122:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2161:79:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2218:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2227:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2230:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "2220:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2220:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2220:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2184:5:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "2209:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_uint256", | |
"nodeType": "YulIdentifier", | |
"src": "2191:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2191:24:1" | |
} | |
], | |
"functionName": { | |
"name": "eq", | |
"nodeType": "YulIdentifier", | |
"src": "2181:2:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2181:35:1" | |
} | |
], | |
"functionName": { | |
"name": "iszero", | |
"nodeType": "YulIdentifier", | |
"src": "2174:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2174:43:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "2171:2:1" | |
} | |
] | |
}, | |
"name": "validator_revert_t_uint256", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "2154:5:1", | |
"type": "" | |
} | |
], | |
"src": "2118:122:1" | |
} | |
] | |
}, | |
"contents": "{\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_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\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_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := 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 validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", | |
"id": 1, | |
"language": "Yul", | |
"name": "#utility.yul" | |
} | |
], | |
"immutableReferences": {}, | |
"linkReferences": {}, | |
"object": "608060405234801561001057600080fd5b50600436106100625760003560e01c80635524107714610067578063588ccabd14610083578063634899ce1461009f5780637c668844146100a9578063b92ba3b8146100d9578063de5123bf14610109575b600080fd5b610081600480360381019061007c91906102c3565b610139565b005b61009d600480360381019061009891906102ec565b610167565b005b6100a76101a8565b005b6100c360048036038101906100be91906102c3565b610201565b6040516100d09190610337565b60405180910390f35b6100f360048036038101906100ee919061029a565b610221565b6040516101009190610337565b60405180910390f35b610123600480360381019061011e91906102ec565b610241565b6040516101309190610337565b60405180910390f35b600160008083815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160026000848152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b60006020528060005260406000206000915054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b60026020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60008135905061027f8161039a565b92915050565b600081359050610294816103b1565b92915050565b6000602082840312156102ac57600080fd5b60006102ba84828501610270565b91505092915050565b6000602082840312156102d557600080fd5b60006102e384828501610285565b91505092915050565b600080604083850312156102ff57600080fd5b600061030d85828601610285565b925050602061031e85828601610285565b9150509250929050565b61033181610364565b82525050565b600060208201905061034c6000830184610328565b92915050565b600061035d82610370565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6103a381610352565b81146103ae57600080fd5b50565b6103ba81610390565b81146103c557600080fd5b5056fea2646970667358221220884b733ef8c7d2b4dfb065fd401a4036e29ec95a1f584b59506a9f8b738ae98464736f6c63430008040033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x55241077 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x588CCABD EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x634899CE EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x7C668844 EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0xB92BA3B8 EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0xDE5123BF EQ PUSH2 0x109 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x2C3 JUMP JUMPDEST PUSH2 0x139 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x2EC JUMP JUMPDEST PUSH2 0x167 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA7 PUSH2 0x1A8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x2C3 JUMP JUMPDEST PUSH2 0x201 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD0 SWAP2 SWAP1 PUSH2 0x337 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEE SWAP2 SWAP1 PUSH2 0x29A JUMP JUMPDEST PUSH2 0x221 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 SWAP2 SWAP1 PUSH2 0x337 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x123 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x11E SWAP2 SWAP1 PUSH2 0x2EC JUMP JUMPDEST PUSH2 0x241 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x130 SWAP2 SWAP1 PUSH2 0x337 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x27F DUP2 PUSH2 0x39A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x294 DUP2 PUSH2 0x3B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2BA DUP5 DUP3 DUP6 ADD PUSH2 0x270 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2E3 DUP5 DUP3 DUP6 ADD PUSH2 0x285 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x30D DUP6 DUP3 DUP7 ADD PUSH2 0x285 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x31E DUP6 DUP3 DUP7 ADD PUSH2 0x285 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x331 DUP2 PUSH2 0x364 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x34C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x328 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35D DUP3 PUSH2 0x370 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A3 DUP2 PUSH2 0x352 JUMP JUMPDEST DUP2 EQ PUSH2 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3BA DUP2 PUSH2 0x390 JUMP JUMPDEST DUP2 EQ PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP9 0x4B PUSH20 0x3EF8C7D2B4DFB065FD401A4036E29EC95A1F584B MSIZE POP PUSH11 0x9F8B738AE98464736F6C63 NUMBER STOP ADDMOD DIV STOP CALLER ", | |
"sourceMap": "56:499:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;253:79;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;342:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;464:89;;;:::i;:::-;;84:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;129:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;184:62;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;253:79;321:4;301:9;:17;311:6;301:17;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;253:79;:::o;342:116::-;447:4;412:14;:23;427:7;412:23;;;;;;;;;;;:32;436:7;412:32;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;342:116;;:::o;464:89::-;542:4;511:16;:28;528:10;511:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;464:89::o;84:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;129:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;184:62::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;356:6;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:262::-;624:6;673:2;661:9;652:7;648:23;644:32;641:2;;;689:1;686;679:12;641:2;732:1;757:53;802:7;793:6;782:9;778:22;757:53;:::i;:::-;747:63;;703:117;631:196;;;;:::o;833:407::-;901:6;909;958:2;946:9;937:7;933:23;929:32;926:2;;;974:1;971;964:12;926:2;1017:1;1042:53;1087:7;1078:6;1067:9;1063:22;1042:53;:::i;:::-;1032:63;;988:117;1144:2;1170:53;1215:7;1206:6;1195:9;1191:22;1170:53;:::i;:::-;1160:63;;1115:118;916:324;;;;;:::o;1246:109::-;1327:21;1342:5;1327:21;:::i;:::-;1322:3;1315:34;1305:50;;:::o;1361:210::-;1448:4;1486:2;1475:9;1471:18;1463:26;;1499:65;1561:1;1550:9;1546:17;1537:6;1499:65;:::i;:::-;1453:118;;;;:::o;1577:96::-;1614:7;1643:24;1661:5;1643:24;:::i;:::-;1632:35;;1622:51;;;:::o;1679:90::-;1713:7;1756:5;1749:13;1742:21;1731:32;;1721:48;;;:::o;1775:126::-;1812:7;1852:42;1845:5;1841:54;1830:65;;1820:81;;;:::o;1907:77::-;1944:7;1973:5;1962:16;;1952:32;;;:::o;1990:122::-;2063:24;2081:5;2063:24;:::i;:::-;2056:5;2053:35;2043:2;;2102:1;2099;2092:12;2043:2;2033:79;:::o;2118:122::-;2191:24;2209:5;2191:24;:::i;:::-;2184:5;2181:35;2171:2;;2230:1;2227;2220:12;2171:2;2161:79;:::o" | |
}, | |
"gasEstimates": { | |
"creation": { | |
"codeDepositCost": "204400", | |
"executionCost": "245", | |
"totalCost": "204645" | |
}, | |
"external": { | |
"myAddressMapping(address)": "1611", | |
"myMapping(uint256)": "1540", | |
"setMyAddressToTrue()": "21122", | |
"setSpecialValue(uint256,uint256)": "infinite", | |
"setValue(uint256)": "21329", | |
"specialMapping(uint256,uint256)": "infinite" | |
} | |
}, | |
"methodIdentifiers": { | |
"myAddressMapping(address)": "b92ba3b8", | |
"myMapping(uint256)": "7c668844", | |
"setMyAddressToTrue()": "634899ce", | |
"setSpecialValue(uint256,uint256)": "588ccabd", | |
"setValue(uint256)": "55241077", | |
"specialMapping(uint256,uint256)": "de5123bf" | |
} | |
}, | |
"abi": [ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "myAddressMapping", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"name": "myMapping", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "setMyAddressToTrue", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "_value1", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "_value2", | |
"type": "uint256" | |
} | |
], | |
"name": "setSpecialValue", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "_value", | |
"type": "uint256" | |
} | |
], | |
"name": "setValue", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"name": "specialMapping", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
} | |
] | |
} |
{ | |
"compiler": { | |
"version": "0.8.4+commit.c7e474f2" | |
}, | |
"language": "Solidity", | |
"output": { | |
"abi": [ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "myAddressMapping", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"name": "myMapping", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "setMyAddressToTrue", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "_value1", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "_value2", | |
"type": "uint256" | |
} | |
], | |
"name": "setSpecialValue", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "_value", | |
"type": "uint256" | |
} | |
], | |
"name": "setValue", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"name": "specialMapping", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
} | |
], | |
"devdoc": { | |
"kind": "dev", | |
"methods": {}, | |
"version": 1 | |
}, | |
"userdoc": { | |
"kind": "user", | |
"methods": {}, | |
"version": 1 | |
} | |
}, | |
"settings": { | |
"compilationTarget": { | |
"gist-2849d9a09aa997989e838e3b269144e9/SimpleMapping.sol": "SimplMapping" | |
}, | |
"evmVersion": "istanbul", | |
"libraries": {}, | |
"metadata": { | |
"bytecodeHash": "ipfs" | |
}, | |
"optimizer": { | |
"enabled": false, | |
"runs": 200 | |
}, | |
"remappings": [] | |
}, | |
"sources": { | |
"gist-2849d9a09aa997989e838e3b269144e9/SimpleMapping.sol": { | |
"keccak256": "0x28fe47f8c06f418f0297053d65025bb72f4d7e296a01204ac6cc75cd625ffebc", | |
"license": "MIT", | |
"urls": [ | |
"bzz-raw://2377e121699fdebae1c81bedb8f99074c7a84ea79571d8532116613b760b74b6", | |
"dweb:/ipfs/QmY1yh5kDBxvbfc964prFLBXU84yBrTAgVxqKboBYAw5SS" | |
] | |
} | |
}, | |
"version": 1 | |
} |
//SPDX-License-Identifier: MIT | |
pragma solidity 0.6.12; | |
contract ExceptionExample { | |
mapping(address => uint64) public balanceReceived; | |
function receiveMoney() public payable { | |
assert(msg.value == uint64(msg.value)); | |
balanceReceived[msg.sender] += uint64(msg.value); | |
assert(balanceReceived[msg.sender] >= uint64(msg.value)); | |
} | |
function withdrawMoney(address payable _to, uint64 _amount) public { | |
require(_amount <= balanceReceived[msg.sender], "Not Enough Funds, aborting"); | |
assert(balanceReceived[msg.sender] >= balanceReceived[msg.sender] - _amount); | |
balanceReceived[msg.sender] -= _amount; | |
_to.transfer(_amount); | |
} | |
function getBalance() public view returns(uint) { | |
return address(this).balance; | |
} | |
receive() external payable { | |
receiveMoney(); | |
} | |
} |
//SPDX-License-Identifier: MIT | |
pragma solidity ^0.8.3; | |
contract FunctionExample { | |
address payable owner; | |
mapping(address => uint64) public balanceReceived; | |
constructor() { | |
owner = payable(msg.sender); | |
} | |
function destroySmartContract() public { | |
require(msg.sender == owner, "You are not the owner"); | |
selfdestruct(owner); | |
} | |
function getOwner() public view returns (address) { | |
return owner; | |
} | |
function convertWeiToEth(uint _amount) public pure returns(uint) { | |
return _amount / 1 ether; | |
} | |
function receiveMoney() public payable { | |
assert(msg.value == uint64(msg.value)); | |
balanceReceived[msg.sender] += uint64(msg.value); | |
} | |
function withdrawMoney(address payable _to, uint64 _amount) public { | |
require(_amount <= balanceReceived[msg.sender], "Not Enough Funds, aborting"); | |
assert(balanceReceived[msg.sender] >= balanceReceived[msg.sender] - _amount); | |
balanceReceived[msg.sender] -= _amount; | |
_to.transfer(_amount); | |
} | |
function getBalance() public view returns(uint) { | |
return address(this).balance; | |
} | |
receive() external payable { | |
receiveMoney(); | |
} | |
} |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.7.0; | |
contract Logic { | |
uint public balanceReceived; | |
function receiveMoney() public payable { | |
balanceReceived += msg.value; | |
} | |
function getBalance() public view returns(uint) { | |
return address(this).balance; | |
} | |
} |
//SPDX-License-Identifier: MIT | |
pragma solidity ^0.8.4; | |
contract MappingsStructExample { | |
struct Payment { | |
uint timestamp; | |
uint amount; | |
} | |
struct Balance { | |
uint numberTime; | |
uint totalBalance; | |
mapping (uint => Payment) payment; | |
} | |
mapping (address => Balance) public balanceReceived; | |
function getBalance() public view returns(uint) { | |
return address(this).balance; | |
} | |
function sendMoney() public payable { | |
Balance storage senderBalance = balanceReceived[msg.sender]; | |
senderBalance.totalBalance += msg.value; | |
Payment memory payment = Payment({timestamp: block.timestamp, amount: msg.value}); | |
senderBalance.payment[senderBalance.numberTime] = payment; | |
senderBalance.numberTime++; | |
} | |
function getPaymentAt(address _address, uint _index) public view returns (Payment memory payment) { | |
return balanceReceived[_address].payment[_index]; | |
} | |
function withdrawAllMoney() public { | |
uint amount = balanceReceived[msg.sender].totalBalance; | |
address payable receiver = payable(msg.sender); | |
balanceReceived[msg.sender].totalBalance = 0; | |
receiver.transfer(amount); | |
} | |
function sendMoneyToAddress(address payable _address, uint _amount) public { | |
_address.transfer(_amount * 1 ether); | |
} | |
function withdrawMoney(uint _amount) public { | |
require(_amount <= balanceReceived[msg.sender].totalBalance, "Not sufficient funds"); | |
address payable receiver = payable(msg.sender); | |
balanceReceived[msg.sender].totalBalance -= (_amount * 1 ether); | |
receiver.transfer(_amount); | |
} | |
} |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.7.0; | |
abstract contract Proxy { | |
fallback() external payable virtual { | |
_fallback(); | |
} | |
function _fallback() internal virtual { | |
_beforeFallback(); | |
_delegate(_implementation()); | |
} | |
function _delegate(address implementation) internal virtual { | |
assembly { | |
calldatacopy(0, 0, calldatasize()) | |
// Call the implementation. | |
let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) | |
// Copy the returned data. | |
returndatacopy(0, 0, returndatasize()) | |
switch result | |
case 0 { revert(0, returndatasize()) } | |
default { return(0, returndatasize()) } | |
} | |
} | |
function _implementation() internal view virtual returns(address); | |
function _beforeFallback() internal virtual { | |
} | |
} |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.7.0; | |
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.0/contracts/access/Ownable.sol"; | |
import "./TransparentUpgradableProxy.sol"; | |
contract ProxyAdmin is Ownable { | |
function getProxyImplementation(TransparentUpgradableProxy proxy) public view returns (address) { | |
// bytes4(keccak256("implementation()")) == 0x5c60da1b | |
(bool success, bytes memory returnData) = address(proxy).staticcall(hex"5c60da1b"); | |
require(success); | |
return abi.decode(returnData, (address)); | |
} | |
function getProxyAdmin(TransparentUpgradableProxy proxy) public view returns (address) { | |
// bytes4(keccak256("admin()")) == 0xf851a440 | |
(bool success, bytes memory returnData) = address(proxy).staticcall(hex"f851a440"); | |
require(success); | |
return abi.decode(returnData, (address)); | |
} | |
function changeProxyAdmin(TransparentUpgradableProxy proxy, address newAdmin) public virtual onlyOwner { | |
proxy.changeAdmin(newAdmin); | |
} | |
function upgrade(TransparentUpgradableProxy proxy, address implementation) public virtual onlyOwner { | |
proxy.upgradeTo(implementation); | |
} | |
} |
//SPDX-License-Identifier: MIT | |
pragma solidity ^0.8.4; | |
contract SimplMapping { | |
mapping (uint => bool) public myMapping; | |
mapping (address => bool) public myAddressMapping; | |
mapping (uint => mapping (uint => bool)) public specialMapping; | |
function setValue(uint _value) public { | |
myMapping[_value] = true; | |
} | |
function setSpecialValue(uint _value1, uint _value2) public { | |
specialMapping[_value1][_value2] = true; | |
} | |
function setMyAddressToTrue() public { | |
myAddressMapping[msg.sender] = true; | |
} | |
} |
// SPDX-License-Identifier: GPL-3.0 | |
pragma solidity ^0.8.1; | |
contract StartStopUpdateExample { | |
address public owner; | |
bool public paused = false; | |
constructor() { | |
owner = msg.sender; | |
} | |
function sendMoney() public payable { | |
} | |
function setPaused(bool _value) public { | |
paused = _value; | |
} | |
function withdrawAllMoney(address payable _to) public { | |
require(msg.sender == owner, "You are not owner"); | |
require(paused == false, "Smart contract is paused"); | |
_to.transfer(address(this).balance); | |
} | |
function destroySmartContract(address payable _to) public { | |
require(msg.sender == owner, "You are not the owner"); | |
selfdestruct(_to); | |
} | |
} |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.7.0; | |
contract Test { | |
address proxy; | |
constructor(address _proxy) { | |
proxy = _proxy; | |
} | |
function test() external returns (bytes memory) { | |
bytes memory payload = abi.encodeWithSignature("add(uint256,uint256)", 30, 12); | |
(bool success, bytes memory returnData) = proxy.call(payload); | |
require(success, "call to proxy failed"); | |
return returnData; | |
} | |
} |
// SPDX-License-Identifier: GPL-3.0 | |
pragma solidity 0.8.0; | |
contract TestAddress { | |
address public myAddress; | |
function setAddress(address _address) public { | |
myAddress = _address; | |
} | |
function getBalance() public view returns (uint) { | |
return myAddress.balance; | |
} | |
} |
// SPDX-License-Identifier: GPL-3.0 | |
pragma solidity ^0.8.0; | |
contract TestOverflow { | |
uint8 public myUint8 = 255; | |
function decrement() public { | |
unchecked { | |
myUint8--; | |
} | |
} | |
function increment() public { | |
myUint8++; | |
} | |
} |
//SPDX-License-Idenfitier: MIT | |
pragma solidity 0.8.4; | |
contract WillThrow { | |
function aFunction() public pure { | |
require(false, "Error Message"); | |
} | |
} | |
contract ErrorHandling { | |
event LogError(string name); | |
function sendError() public { | |
WillThrow will = new WillThrow(); | |
try will.aFunction() { | |
} catch Error(string memory _e) { | |
emit LogError(_e); | |
} | |
} | |
} |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.7.0; | |
import "./UpgradableProxy.sol"; | |
contract TransparentUpgradableProxy is UpgradableProxy { | |
bytes32 constant ADMIN_SLOT = keccak256("leave.me.alone.slot"); | |
event AdminChanged(address previousAdmin, address newAdmin); | |
constructor(address _logic, address admin_) UpgradableProxy(_logic) { | |
_setAdmin(admin_); | |
} | |
modifier isAdmin() { | |
if (msg.sender == _admin()) { | |
_; | |
} else { | |
_fallback(); | |
} | |
} | |
function admin() external isAdmin returns (address admin_) { | |
admin_ = _admin(); | |
} | |
function implementation() external isAdmin returns(address implementation_) { | |
implementation_ = _implementation(); | |
} | |
function upgradeTo(address newImplementation) external isAdmin { | |
_upgradeTo(newImplementation); | |
} | |
function changeAdmin(address newAdmin) external virtual isAdmin { | |
require(newAdmin != address(0), "TransparentUpgradableProxy: new admin is address 0"); | |
emit AdminChanged(_admin(), newAdmin); | |
_setAdmin(newAdmin); | |
} | |
function _setAdmin(address newAdmin) private { | |
bytes32 slot = ADMIN_SLOT; | |
assembly { | |
sstore(slot, newAdmin) | |
} | |
} | |
function _admin() internal view virtual returns(address admin) { | |
bytes32 slot = ADMIN_SLOT; | |
assembly { | |
admin := sload(slot) | |
} | |
} | |
function _beforeFallback() internal virtual override { | |
require(msg.sender != _admin(), "Admin cannot fallback to proxy target"); | |
super._beforeFallback(); | |
} | |
} |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.7.0; | |
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.0/contracts/utils/Address.sol"; | |
import "./Proxy.sol"; | |
contract UpgradableProxy is Proxy { | |
bytes32 constant IMPLEMENTATION_SLOT = keccak256("proxy.upgradable.pattern.test.mine"); | |
event Upgraded(address indexed implementation); | |
constructor(address _logic) { | |
_setImplementation(_logic); | |
} | |
function getImplementation() public view returns (address) { | |
return _implementation(); | |
} | |
function _implementation() internal view override returns (address) { | |
address impl; | |
bytes32 slot = IMPLEMENTATION_SLOT; | |
assembly { | |
impl := sload(slot) | |
} | |
return impl; | |
} | |
function _upgradeTo(address newImplementation) internal virtual { | |
_setImplementation(newImplementation); | |
emit Upgraded(newImplementation); | |
} | |
function _setImplementation(address newImplementation) private { | |
require(Address.isContract(newImplementation), "address not a contract"); | |
bytes32 slot = IMPLEMENTATION_SLOT; | |
assembly { | |
sstore(slot, newImplementation) | |
} | |
} | |
function _beforeFallback() internal virtual override { | |
super._beforeFallback(); | |
} | |
} |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.7.0; | |
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/solc-0.7/contracts/math/SafeMath.sol"; | |
contract UpgradedLogic { | |
address proxy; | |
using SafeMath for uint256; | |
uint public balanceReceived; | |
uint public lockTime; | |
event AddedSafely(uint256 result); | |
event Fallback(); | |
function add(uint256 a, uint256 b) external returns (uint256 result) { | |
result = a.add(b); | |
emit AddedSafely(result); | |
} | |
function receiveMoney() public payable { | |
balanceReceived += msg.value; | |
lockTime = block.timestamp + 30 seconds; | |
} | |
function receiveMoney2() public payable { | |
} | |
function getBalance() public view returns(uint) { | |
return address(this).balance; | |
} | |
function widthrawAll() public { | |
if (lockTime < block.timestamp) { | |
address payable to = payable(msg.sender); | |
to.transfer(getBalance()); | |
} | |
} | |
function withdrawTo(address payable _to, uint amount) public { | |
require(amount > 0, "Invalid amount!"); | |
_to.transfer(amount * (1 ether)); | |
} | |
fallback() external { | |
emit Fallback(); | |
} | |
} |
{ | |
"deploy": { | |
"VM:-": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"main:1": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"ropsten:3": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"rinkeby:4": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"kovan:42": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"görli:5": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
}, | |
"Custom": { | |
"linkReferences": {}, | |
"autoDeployLib": true | |
} | |
}, | |
"data": { | |
"bytecode": { | |
"generatedSources": [], | |
"linkReferences": {}, | |
"object": "608060405260008060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506106398061007a6000396000f3fe6080604052600436106100555760003560e01c80630adec93c1461005a57806316c38b3c1461008357806339df43ff146100ac5780635c975abb146100d55780638da5cb5b14610100578063cbedbf5a1461012b575b600080fd5b34801561006657600080fd5b50610081600480360381019061007c919061038a565b610135565b005b34801561008f57600080fd5b506100aa60048036038101906100a591906103b3565b610263565b005b3480156100b857600080fd5b506100d360048036038101906100ce919061038a565b610280565b005b3480156100e157600080fd5b506100ea610327565b6040516100f7919061047e565b60405180910390f35b34801561010c57600080fd5b5061011561033a565b6040516101229190610463565b60405180910390f35b61013361035e565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ba906104d9565b60405180910390fd5b60001515600060149054906101000a900460ff16151514610219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610210906104b9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561025f573d6000803e3d6000fd5b5050565b80600060146101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461030e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030590610499565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b600060149054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b565b60008135905061036f816105d5565b92915050565b600081359050610384816105ec565b92915050565b60006020828403121561039c57600080fd5b60006103aa84828501610360565b91505092915050565b6000602082840312156103c557600080fd5b60006103d384828501610375565b91505092915050565b6103e58161050a565b82525050565b6103f48161052e565b82525050565b60006104076015836104f9565b91506104128261055a565b602082019050919050565b600061042a6018836104f9565b915061043582610583565b602082019050919050565b600061044d6011836104f9565b9150610458826105ac565b602082019050919050565b600060208201905061047860008301846103dc565b92915050565b600060208201905061049360008301846103eb565b92915050565b600060208201905081810360008301526104b2816103fa565b9050919050565b600060208201905081810360008301526104d28161041d565b9050919050565b600060208201905081810360008301526104f281610440565b9050919050565b600082825260208201905092915050565b60006105158261053a565b9050919050565b60006105278261053a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b7f596f7520617265206e6f7420746865206f776e65720000000000000000000000600082015250565b7f536d61727420636f6e7472616374206973207061757365640000000000000000600082015250565b7f596f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6105de8161051c565b81146105e957600080fd5b50565b6105f58161052e565b811461060057600080fd5b5056fea2646970667358221220fe3e4b7bb97da81c28b7db4dc36d299a673090c2d3329a38f7ec6dc13c6f39ff64736f6c63430008010033", | |
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x639 DUP1 PUSH2 0x7A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xADEC93C EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x16C38B3C EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x39DF43FF EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0xCBEDBF5A EQ PUSH2 0x12B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH2 0x135 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA5 SWAP2 SWAP1 PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x263 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH2 0x280 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEA PUSH2 0x327 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP2 SWAP1 PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x115 PUSH2 0x33A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x463 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x133 PUSH2 0x35E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1C3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BA SWAP1 PUSH2 0x4D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x219 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x210 SWAP1 PUSH2 0x4B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x25F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x30E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0x499 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT JUMPDEST PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x36F DUP2 PUSH2 0x5D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x384 DUP2 PUSH2 0x5EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3AA DUP5 DUP3 DUP6 ADD PUSH2 0x360 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3D3 DUP5 DUP3 DUP6 ADD PUSH2 0x375 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3E5 DUP2 PUSH2 0x50A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3F4 DUP2 PUSH2 0x52E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x407 PUSH1 0x15 DUP4 PUSH2 0x4F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x412 DUP3 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42A PUSH1 0x18 DUP4 PUSH2 0x4F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x435 DUP3 PUSH2 0x583 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x44D PUSH1 0x11 DUP4 PUSH2 0x4F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x458 DUP3 PUSH2 0x5AC JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x478 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3DC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x493 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4B2 DUP2 PUSH2 0x3FA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4D2 DUP2 PUSH2 0x41D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F2 DUP2 PUSH2 0x440 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x515 DUP3 PUSH2 0x53A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x527 DUP3 PUSH2 0x53A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F7520617265206E6F7420746865206F776E65720000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x536D61727420636F6E7472616374206973207061757365640000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x596F7520617265206E6F74206F776E6572000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x5DE DUP2 PUSH2 0x51C JUMP JUMPDEST DUP2 EQ PUSH2 0x5E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x5F5 DUP2 PUSH2 0x52E JUMP JUMPDEST DUP2 EQ PUSH2 0x600 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID RETURNDATACOPY 0x4B PUSH28 0xB97DA81C28B7DB4DC36D299A673090C2D3329A38F7EC6DC13C6F39FF PUSH5 0x736F6C6343 STOP ADDMOD ADD STOP CALLER ", | |
"sourceMap": "61:668:0:-:0;;;146:5;125:26;;;;;;;;;;;;;;;;;;;;158:49;;;;;;;;;;190:10;182:5;;:18;;;;;;;;;;;;;;;;;;61:668;;;;;;" | |
}, | |
"deployedBytecode": { | |
"generatedSources": [ | |
{ | |
"ast": { | |
"nodeType": "YulBlock", | |
"src": "0:5335:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "67:95:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "77:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "99:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "86:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "86:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "77:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "150:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_address_payable", | |
"nodeType": "YulIdentifier", | |
"src": "115:34:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "115:41:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "115:41:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_address_payable", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "45:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "53:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "61:5:1", | |
"type": "" | |
} | |
], | |
"src": "7:155:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "217:84:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "227:29:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "249:6:1" | |
} | |
], | |
"functionName": { | |
"name": "calldataload", | |
"nodeType": "YulIdentifier", | |
"src": "236:12:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "236:20:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "227:5:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "289:5:1" | |
} | |
], | |
"functionName": { | |
"name": "validator_revert_t_bool", | |
"nodeType": "YulIdentifier", | |
"src": "265:23:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "265:30:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "265:30:1" | |
} | |
] | |
}, | |
"name": "abi_decode_t_bool", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "195:6:1", | |
"type": "" | |
}, | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "203:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "211:5:1", | |
"type": "" | |
} | |
], | |
"src": "168:133:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "381:204:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "427:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "436:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "439:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "429:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "429:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "429:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "402:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "411:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "398:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "398:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "423:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "394:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "394:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "391:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "453:125:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "468:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "482:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "472:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "497:71:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "540:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "551:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "536:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "536:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "560:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_address_payable", | |
"nodeType": "YulIdentifier", | |
"src": "507:28:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "507:61:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "497:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_address_payable", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "351:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "362:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "374:6:1", | |
"type": "" | |
} | |
], | |
"src": "307:278:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "654:193:1", | |
"statements": [ | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "700:16:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "709:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "712:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "revert", | |
"nodeType": "YulIdentifier", | |
"src": "702:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "702:12:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "702:12:1" | |
} | |
] | |
}, | |
"condition": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "675:7:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "684:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "671:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "671:23:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "696:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "slt", | |
"nodeType": "YulIdentifier", | |
"src": "667:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "667:32:1" | |
}, | |
"nodeType": "YulIf", | |
"src": "664:2:1" | |
}, | |
{ | |
"nodeType": "YulBlock", | |
"src": "726:114:1", | |
"statements": [ | |
{ | |
"nodeType": "YulVariableDeclaration", | |
"src": "741:15:1", | |
"value": { | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "755:1:1", | |
"type": "", | |
"value": "0" | |
}, | |
"variables": [ | |
{ | |
"name": "offset", | |
"nodeType": "YulTypedName", | |
"src": "745:6:1", | |
"type": "" | |
} | |
] | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "770:60:1", | |
"value": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "802:9:1" | |
}, | |
{ | |
"name": "offset", | |
"nodeType": "YulIdentifier", | |
"src": "813:6:1" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "798:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "798:22:1" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulIdentifier", | |
"src": "822:7:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_decode_t_bool", | |
"nodeType": "YulIdentifier", | |
"src": "780:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "780:50:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "770:6:1" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_decode_tuple_t_bool", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "624:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "dataEnd", | |
"nodeType": "YulTypedName", | |
"src": "635:7:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "647:6:1", | |
"type": "" | |
} | |
], | |
"src": "591:256:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "918:53:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "935:3:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "958:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_address", | |
"nodeType": "YulIdentifier", | |
"src": "940:17:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "940:24:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "928:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "928:37:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "928:37:1" | |
} | |
] | |
}, | |
"name": "abi_encode_t_address_to_t_address_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "906:5:1", | |
"type": "" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "913:3:1", | |
"type": "" | |
} | |
], | |
"src": "853:118:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1036:50:1", | |
"statements": [ | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1053:3:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "value", | |
"nodeType": "YulIdentifier", | |
"src": "1073:5:1" | |
} | |
], | |
"functionName": { | |
"name": "cleanup_t_bool", | |
"nodeType": "YulIdentifier", | |
"src": "1058:14:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1058:21:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "1046:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1046:34:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1046:34:1" | |
} | |
] | |
}, | |
"name": "abi_encode_t_bool_to_t_bool_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "value", | |
"nodeType": "YulTypedName", | |
"src": "1024:5:1", | |
"type": "" | |
}, | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "1031:3:1", | |
"type": "" | |
} | |
], | |
"src": "977:109:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1238:220:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1248:74:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1314:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1319:2:1", | |
"type": "", | |
"value": "21" | |
} | |
], | |
"functionName": { | |
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "1255:58:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1255:67:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1248:3:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1420:3:1" | |
} | |
], | |
"functionName": { | |
"name": "store_literal_in_memory_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc", | |
"nodeType": "YulIdentifier", | |
"src": "1331:88:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1331:93:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1331:93:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1433:19:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1444:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1449:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1440:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1440:12:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "end", | |
"nodeType": "YulIdentifier", | |
"src": "1433:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "1226:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "1234:3:1", | |
"type": "" | |
} | |
], | |
"src": "1092:366:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1610:220:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1620:74:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1686:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1691:2:1", | |
"type": "", | |
"value": "24" | |
} | |
], | |
"functionName": { | |
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "1627:58:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1627:67:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1620:3:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1792:3:1" | |
} | |
], | |
"functionName": { | |
"name": "store_literal_in_memory_a2fa24b9536435a27ea675ef0aab25804949fc224b5841714ea52e91975a1290", | |
"nodeType": "YulIdentifier", | |
"src": "1703:88:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1703:93:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "1703:93:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1805:19:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1816:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "1821:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "1812:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1812:12:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "end", | |
"nodeType": "YulIdentifier", | |
"src": "1805:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_t_stringliteral_a2fa24b9536435a27ea675ef0aab25804949fc224b5841714ea52e91975a1290_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "1598:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "1606:3:1", | |
"type": "" | |
} | |
], | |
"src": "1464:366:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "1982:220:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "1992:74:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2058:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2063:2:1", | |
"type": "", | |
"value": "17" | |
} | |
], | |
"functionName": { | |
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "1999:58:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "1999:67:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "1992:3:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2164:3:1" | |
} | |
], | |
"functionName": { | |
"name": "store_literal_in_memory_f8c32aaaa00488538a19bba3a056683f4d3e596d61adb12d975280de5503e1db", | |
"nodeType": "YulIdentifier", | |
"src": "2075:88:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2075:93:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2075:93:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2177:19:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulIdentifier", | |
"src": "2188:3:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2193:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2184:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2184:12:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "end", | |
"nodeType": "YulIdentifier", | |
"src": "2177:3:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_t_stringliteral_f8c32aaaa00488538a19bba3a056683f4d3e596d61adb12d975280de5503e1db_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "pos", | |
"nodeType": "YulTypedName", | |
"src": "1970:3:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "end", | |
"nodeType": "YulTypedName", | |
"src": "1978:3:1", | |
"type": "" | |
} | |
], | |
"src": "1836:366:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2306:124:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2316:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "2328:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2339:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2324:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2324:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "2316:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "2396:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "2409:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2420:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2405:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2405:17:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_address_to_t_address_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "2352:43:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2352:71:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2352:71:1" | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "2278:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "2290:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "2301:4:1", | |
"type": "" | |
} | |
], | |
"src": "2208:222:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2528:118:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2538:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "2550:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2561:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2546:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2546:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "2538:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"name": "value0", | |
"nodeType": "YulIdentifier", | |
"src": "2612:6:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "2625:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2636:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2621:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2621:17:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_bool_to_t_bool_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "2574:37:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2574:65:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2574:65:1" | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "2500:9:1", | |
"type": "" | |
}, | |
{ | |
"name": "value0", | |
"nodeType": "YulTypedName", | |
"src": "2512:6:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "2523:4:1", | |
"type": "" | |
} | |
], | |
"src": "2436:210:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "2823:248:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2833:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "2845:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2856:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2841:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2841:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "2833:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "2880:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "2891:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "2876:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2876:17:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "2899:4:1" | |
}, | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "2905:9:1" | |
} | |
], | |
"functionName": { | |
"name": "sub", | |
"nodeType": "YulIdentifier", | |
"src": "2895:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2895:20:1" | |
} | |
], | |
"functionName": { | |
"name": "mstore", | |
"nodeType": "YulIdentifier", | |
"src": "2869:6:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2869:47:1" | |
}, | |
"nodeType": "YulExpressionStatement", | |
"src": "2869:47:1" | |
}, | |
{ | |
"nodeType": "YulAssignment", | |
"src": "2925:139:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3059:4:1" | |
} | |
], | |
"functionName": { | |
"name": "abi_encode_t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc_to_t_string_memory_ptr_fromStack", | |
"nodeType": "YulIdentifier", | |
"src": "2933:124:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "2933:131:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "2925:4:1" | |
} | |
] | |
} | |
] | |
}, | |
"name": "abi_encode_tuple_t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc__to_t_string_memory_ptr__fromStack_reversed", | |
"nodeType": "YulFunctionDefinition", | |
"parameters": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulTypedName", | |
"src": "2803:9:1", | |
"type": "" | |
} | |
], | |
"returnVariables": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulTypedName", | |
"src": "2818:4:1", | |
"type": "" | |
} | |
], | |
"src": "2652:419:1" | |
}, | |
{ | |
"body": { | |
"nodeType": "YulBlock", | |
"src": "3248:248:1", | |
"statements": [ | |
{ | |
"nodeType": "YulAssignment", | |
"src": "3258:26:1", | |
"value": { | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3270:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3281:2:1", | |
"type": "", | |
"value": "32" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3266:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3266:18:1" | |
}, | |
"variableNames": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3258:4:1" | |
} | |
] | |
}, | |
{ | |
"expression": { | |
"arguments": [ | |
{ | |
"arguments": [ | |
{ | |
"name": "headStart", | |
"nodeType": "YulIdentifier", | |
"src": "3305:9:1" | |
}, | |
{ | |
"kind": "number", | |
"nodeType": "YulLiteral", | |
"src": "3316:1:1", | |
"type": "", | |
"value": "0" | |
} | |
], | |
"functionName": { | |
"name": "add", | |
"nodeType": "YulIdentifier", | |
"src": "3301:3:1" | |
}, | |
"nodeType": "YulFunctionCall", | |
"src": "3301:17:1" | |
}, | |
{ | |
"arguments": [ | |
{ | |
"name": "tail", | |
"nodeType": "YulIdentifier", | |
"src": "3324:4:1" | |
}, | |
{ | |
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)